diff --git a/linux-x86/1.36.0/bin/cargo b/linux-x86/1.36.0/bin/cargo
new file mode 100755
index 0000000..47d6e45
--- /dev/null
+++ b/linux-x86/1.36.0/bin/cargo
Binary files differ
diff --git a/linux-x86/1.36.0/bin/rust-gdb b/linux-x86/1.36.0/bin/rust-gdb
new file mode 100755
index 0000000..23ba93d
--- /dev/null
+++ b/linux-x86/1.36.0/bin/rust-gdb
@@ -0,0 +1,16 @@
+#!/bin/sh
+# Exit if anything fails
+set -e
+
+# Find out where the pretty printer Python module is
+RUSTC_SYSROOT=`rustc --print=sysroot`
+GDB_PYTHON_MODULE_DIRECTORY="$RUSTC_SYSROOT/lib/rustlib/etc"
+
+# Run GDB with the additional arguments that load the pretty printers
+# Set the environment variable `RUST_GDB` to overwrite the call to a
+# different/specific command (defaults to `gdb`).
+RUST_GDB="${RUST_GDB:-gdb}"
+PYTHONPATH="$PYTHONPATH:$GDB_PYTHON_MODULE_DIRECTORY" exec ${RUST_GDB} \
+  --directory="$GDB_PYTHON_MODULE_DIRECTORY" \
+  -iex "add-auto-load-safe-path $GDB_PYTHON_MODULE_DIRECTORY" \
+  "$@"
diff --git a/linux-x86/1.36.0/bin/rust-gdbgui b/linux-x86/1.36.0/bin/rust-gdbgui
new file mode 100755
index 0000000..08d598c
--- /dev/null
+++ b/linux-x86/1.36.0/bin/rust-gdbgui
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+# Exit if anything fails
+set -e
+
+if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ] || [ "$1" = "--help" ]; then
+    echo "
+rust-gdbgui
+===========
+gdbgui - https://gdbgui.com - is a graphical front-end to GDB
+that runs in a browser. This script invokes gdbgui with the Rust
+pretty printers loaded.
+
+Simple usage  : rust-gdbgui target/debug/myprog
+With arguments: rust-gdbgui 'target/debug/myprog arg1 arg2...'
+  (note the quotes)
+
+
+Hints
+=====
+gdbgui won't be able to find the rust 'main' method automatically, so
+in its options make sure to disable the 'Add breakpoint to main after
+loading executable' setting to avoid a 'File not found: main' warning
+on startup.
+
+Instead, type 'main' into gdbgui's file browser and you should get
+auto-completion on the filename. Just pick 'main.rs', add a breakpoint
+by clicking in the line number gutter, and type 'r' or hit the Restart
+icon to start your program running.
+"
+    exit 0
+fi
+
+# Find out where the pretty printer Python module is
+RUSTC_SYSROOT=`rustc --print=sysroot`
+GDB_PYTHON_MODULE_DIRECTORY="$RUSTC_SYSROOT/lib/rustlib/etc"
+
+# Set the environment variable `RUST_GDB` to overwrite the call to a
+# different/specific command (defaults to `gdb`).
+RUST_GDB="${RUST_GDB:-gdb}"
+
+# Set the environment variable `RUST_GDBGUI` to overwrite the call to a
+# different/specific command (defaults to `gdbgui`).
+RUST_GDBGUI="${RUST_GDBGUI:-gdbgui}"
+
+# These arguments get passed through to GDB and make it load the
+# Rust pretty printers.
+GDB_ARGS="--directory=\"$GDB_PYTHON_MODULE_DIRECTORY\" -iex \"add-auto-load-safe-path $GDB_PYTHON_MODULE_DIRECTORY\""
+
+# Finally we execute gdbgui.
+PYTHONPATH="$PYTHONPATH:$GDB_PYTHON_MODULE_DIRECTORY" \
+  exec ${RUST_GDBGUI} \
+  --gdb ${RUST_GDB} \
+  --gdb-args "${GDB_ARGS}" \
+  "${@}"
+
diff --git a/linux-x86/1.36.0/bin/rust-lldb b/linux-x86/1.36.0/bin/rust-lldb
new file mode 100755
index 0000000..424302d
--- /dev/null
+++ b/linux-x86/1.36.0/bin/rust-lldb
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+# Exit if anything fails
+set -e
+
+# Find out where to look for the pretty printer Python module
+RUSTC_SYSROOT=`rustc --print sysroot`
+
+# Find the host triple so we can find lldb in rustlib.
+host=`rustc -vV | sed -n -e 's/^host: //p'`
+
+lldb=lldb
+if [ -f "$RUSTC_SYSROOT/lib/rustlib/$host/bin/lldb" ]; then
+    lldb="$RUSTC_SYSROOT/lib/rustlib/$host/bin/lldb"
+else
+    LLDB_VERSION=`"$lldb" --version 2>/dev/null | head -1 | cut -d. -f1`
+
+    if [ "$LLDB_VERSION" = "lldb-350" ]
+    then
+        echo "***"
+	echo \
+"WARNING: This version of LLDB has known issues with Rust and cannot \
+display the contents of local variables!"
+        echo "***"
+    fi
+fi
+
+# Prepare commands that will be loaded before any file on the command line has been loaded
+script_import="command script import \"$RUSTC_SYSROOT/lib/rustlib/etc/lldb_rust_formatters.py\""
+category_definition="type summary add --no-value --python-function lldb_rust_formatters.print_val -x \".*\" --category Rust"
+category_enable="type category enable Rust"
+
+# Call LLDB with the commands added to the argument list
+exec "$lldb" --one-line-before-file="$script_import" \
+    --one-line-before-file="$category_definition" \
+    --one-line-before-file="$category_enable" \
+    "$@"
diff --git a/linux-x86/1.36.0/bin/rustc b/linux-x86/1.36.0/bin/rustc
new file mode 100755
index 0000000..3cf0002
--- /dev/null
+++ b/linux-x86/1.36.0/bin/rustc
Binary files differ
diff --git a/linux-x86/1.36.0/bin/rustdoc b/linux-x86/1.36.0/bin/rustdoc
new file mode 100755
index 0000000..c277bce
--- /dev/null
+++ b/linux-x86/1.36.0/bin/rustdoc
Binary files differ
diff --git a/linux-x86/1.36.0/etc/bash_completion.d/cargo b/linux-x86/1.36.0/etc/bash_completion.d/cargo
new file mode 100644
index 0000000..793c5c0
--- /dev/null
+++ b/linux-x86/1.36.0/etc/bash_completion.d/cargo
@@ -0,0 +1,266 @@
+# Required for bash versions < 4.1
+# Default bash version is 3.2 on latest macOS. See #6874
+shopt -s extglob
+
+command -v cargo >/dev/null 2>&1 &&
+_cargo()
+{
+	local cur prev words cword
+	_get_comp_words_by_ref cur prev words cword
+
+	COMPREPLY=()
+
+	# Skip past - and + options to find the command.
+	local nwords=${#words[@]}
+	local cmd_i cmd dd_i
+	for (( cmd_i=1; cmd_i<$nwords; cmd_i++ ));
+	do
+		if [[ ! "${words[$cmd_i]}" =~ ^[+-] ]]; then
+			cmd="${words[$cmd_i]}"
+			break
+		fi
+	done
+	# Find the location of the -- separator.
+	for (( dd_i=1; dd_i<$nwords-1; dd_i++ ));
+	do
+		if [[ "${words[$dd_i]}" = "--" ]]; then
+			break
+		fi
+	done
+
+	local vcs='git hg none pijul fossil'
+	local color='auto always never'
+	local msg_format='human json short'
+
+	local opt_help='-h --help'
+	local opt_verbose='-v --verbose'
+	local opt_quiet='-q --quiet'
+	local opt_color='--color'
+	local opt_common="$opt_help $opt_verbose $opt_quiet $opt_color"
+	local opt_pkg_spec='-p --package --all --exclude'
+	local opt_pkg='-p --package'
+	local opt_feat='--features --all-features --no-default-features'
+	local opt_mani='--manifest-path'
+	local opt_jobs='-j --jobs'
+	local opt_force='-f --force'
+	local opt_test='--test --bench'
+	local opt_lock='--frozen --locked'
+	local opt_targets="--lib --bin --bins --example --examples --test --tests --bench --benches --all-targets"
+
+	local opt___nocmd="$opt_common -V --version --list --explain"
+	local opt__bench="$opt_common $opt_pkg_spec $opt_feat $opt_mani $opt_lock $opt_jobs $opt_test $opt_targets --message-format --target --no-run --no-fail-fast --target-dir"
+	local opt__build="$opt_common $opt_pkg_spec $opt_feat $opt_mani $opt_lock $opt_jobs $opt_test $opt_targets --message-format --target --release --target-dir"
+	local opt__check="$opt_common $opt_pkg_spec $opt_feat $opt_mani $opt_lock $opt_jobs $opt_test $opt_targets --message-format --target --release --profile --target-dir"
+	local opt__clean="$opt_common $opt_pkg $opt_mani $opt_lock --target --release --doc --target-dir"
+	local opt__doc="$opt_common $opt_pkg_spec $opt_feat $opt_mani $opt_lock $opt_jobs --message-format --bin --bins --lib --target --open --no-deps --release --document-private-items --target-dir"
+	local opt__fetch="$opt_common $opt_mani $opt_lock"
+	local opt__fix="$opt_common $opt_pkg_spec $opt_feat $opt_mani $opt_jobs $opt_targets $opt_lock --release --target --message-format --prepare-for --broken-code --edition --edition-idioms --allow-no-vcs --allow-dirty --allow-staged --profile --target-dir"
+	local opt__generate_lockfile="${opt__fetch}"
+	local opt__git_checkout="$opt_common $opt_lock --reference --url"
+	local opt__help="$opt_help"
+	local opt__init="$opt_common $opt_lock --bin --lib --name --vcs --edition --registry"
+	local opt__install="$opt_common $opt_feat $opt_jobs $opt_lock $opt_force --bin --bins --branch --debug --example --examples --git --list --path --rev --root --tag --version --registry --target"
+	local opt__locate_project="$opt_mani -h --help"
+	local opt__login="$opt_common $opt_lock --host --registry"
+	local opt__metadata="$opt_common $opt_feat $opt_mani $opt_lock --format-version=1 --no-deps"
+	local opt__new="$opt_common $opt_lock --vcs --bin --lib --name --edition --registry"
+	local opt__owner="$opt_common $opt_lock -a --add -r --remove -l --list --index --token --registry"
+	local opt__package="$opt_common $opt_mani $opt_feat $opt_lock $opt_jobs --allow-dirty -l --list --no-verify --no-metadata --target --target-dir"
+	local opt__pkgid="${opt__fetch} $opt_pkg"
+	local opt__publish="$opt_common $opt_mani $opt_feat $opt_lock $opt_jobs --allow-dirty --dry-run --host --token --no-verify --index --registry --target --target-dir"
+	local opt__read_manifest="$opt_help $opt_quiet $opt_verbose $opt_mani $opt_color "
+	local opt__run="$opt_common $opt_pkg $opt_feat $opt_mani $opt_lock $opt_jobs --message-format --target --bin --example --release --target-dir"
+	local opt__rustc="$opt_common $opt_pkg $opt_feat $opt_mani $opt_lock $opt_jobs $opt_test $opt_targets --message-format --profile --target --release --target-dir"
+	local opt__rustdoc="$opt_common $opt_pkg $opt_feat $opt_mani $opt_lock $opt_jobs $opt_test $opt_targets --message-format --target --release --open --target-dir"
+	local opt__search="$opt_common $opt_lock --host --limit --index --limit --registry"
+	local opt__test="$opt_common $opt_pkg_spec $opt_feat $opt_mani $opt_lock $opt_jobs $opt_test $opt_targets --message-format --doc --target --no-run --release --no-fail-fast --target-dir"
+	local opt__uninstall="$opt_common $opt_lock $opt_pkg_spec --bin --root"
+	local opt__update="$opt_common $opt_pkg_spec $opt_mani $opt_lock --aggressive --precise --dry-run"
+	local opt__verify_project="${opt__fetch}"
+	local opt__version="$opt_help $opt_verbose $opt_color"
+	local opt__yank="$opt_common $opt_lock --vers --undo --index --token --registry"
+	local opt__libtest="--help --include-ignored --ignored --test --bench --list --logfile --nocapture --test-threads --skip -q --quiet --exact --color --format"
+
+	if [[ $cword -gt $dd_i ]]; then
+		# Completion after -- separator.
+		if [[ "${cmd}" = @(test|bench) ]]; then
+			COMPREPLY=( $( compgen -W "${opt__libtest}" -- "$cur" ) )
+		else
+			# Fallback to filename completion, useful with `cargo run`.
+			_filedir
+		fi
+	elif [[ $cword -le $cmd_i ]]; then
+		# Completion before or at the command.
+		if [[ "$cur" == -* ]]; then
+			COMPREPLY=( $( compgen -W "${opt___nocmd}" -- "$cur" ) )
+		elif [[ "$cur" == +* ]]; then
+			COMPREPLY=( $( compgen -W "$(_toolchains)" -- "$cur" ) )
+		else
+			COMPREPLY=( $( compgen -W "$__cargo_commands" -- "$cur" ) )
+		fi
+	else
+		case "${prev}" in
+			--vcs)
+				COMPREPLY=( $( compgen -W "$vcs" -- "$cur" ) )
+				;;
+			--color)
+				COMPREPLY=( $( compgen -W "$color" -- "$cur" ) )
+				;;
+			--message-format)
+				COMPREPLY=( $( compgen -W "$msg_format" -- "$cur" ) )
+				;;
+			--manifest-path)
+				_filedir toml
+				;;
+			--bin)
+				COMPREPLY=( $( compgen -W "$(_bin_names)" -- "$cur" ) )
+				;;
+			--test)
+				COMPREPLY=( $( compgen -W "$(_test_names)" -- "$cur" ) )
+				;;
+			--bench)
+				COMPREPLY=( $( compgen -W "$(_benchmark_names)" -- "$cur" ) )
+				;;
+			--example)
+				COMPREPLY=( $( compgen -W "$(_get_examples)" -- "$cur" ) )
+				;;
+			--target)
+				COMPREPLY=( $( compgen -W "$(_get_targets)" -- "$cur" ) )
+				;;
+			--target-dir)
+				_filedir -d
+				;;
+			help)
+				COMPREPLY=( $( compgen -W "$__cargo_commands" -- "$cur" ) )
+				;;
+			*)
+				local opt_var=opt__${cmd//-/_}
+				if [[ -z "${!opt_var}" ]]; then
+					# Fallback to filename completion.
+					_filedir
+				else
+					COMPREPLY=( $( compgen -W "${!opt_var}" -- "$cur" ) )
+				fi
+				;;
+		esac
+	fi
+
+	# compopt does not work in bash version 3
+
+	return 0
+} &&
+complete -F _cargo cargo
+
+__cargo_commands=$(cargo --list 2>/dev/null | awk 'NR>1 {print $1}')
+
+_locate_manifest(){
+	local manifest=`cargo locate-project 2>/dev/null`
+	# regexp-replace manifest '\{"root":"|"\}' ''
+	echo ${manifest:9:${#manifest}-11}
+}
+
+# Extracts the values of "name" from the array given in $1 and shows them as
+# command line options for completion
+_get_names_from_array()
+{
+	local manifest=$(_locate_manifest)
+	if [[ -z $manifest ]]; then
+		return 0
+	fi
+
+	local last_line
+	local -a names
+	local in_block=false
+	local block_name=$1
+	while read line
+	do
+		if [[ $last_line == "[[$block_name]]" ]]; then
+			in_block=true
+		else
+			if [[ $last_line =~ .*\[\[.* ]]; then
+				in_block=false
+			fi
+		fi
+
+		if [[ $in_block == true ]]; then
+			if [[ $line =~ .*name.*\= ]]; then
+				line=${line##*=}
+				line=${line%%\"}
+				line=${line##*\"}
+				names+=($line)
+			fi
+		fi
+
+		last_line=$line
+	done < $manifest
+	echo "${names[@]}"
+}
+
+#Gets the bin names from the manifest file
+_bin_names()
+{
+	_get_names_from_array "bin"
+}
+
+#Gets the test names from the manifest file
+_test_names()
+{
+	_get_names_from_array "test"
+}
+
+#Gets the bench names from the manifest file
+_benchmark_names()
+{
+	_get_names_from_array "bench"
+}
+
+_get_examples(){
+	local manifest=$(_locate_manifest)
+	[ -z "$manifest" ] && return 0
+
+	local files=("${manifest%/*}"/examples/*.rs)
+	local names=("${files[@]##*/}")
+	local names=("${names[@]%.*}")
+	# "*" means no examples found
+	if [[ "${names[@]}" != "*" ]]; then
+		echo "${names[@]}"
+	fi
+}
+
+_get_targets(){
+	local result=()
+	local targets=$(rustup target list)
+	while read line
+	do
+		if [[ "$line" =~ default|installed ]]; then
+			result+=("${line%% *}")
+		fi
+	done <<< "$targets"
+	echo "${result[@]}"
+}
+
+_toolchains(){
+	local result=()
+	local toolchains=$(rustup toolchain list)
+	local channels="nightly|beta|stable|[0-9]\.[0-9]{1,2}\.[0-9]"
+	local date="[0-9]{4}-[0-9]{2}-[0-9]{2}"
+	while read line
+	do
+		# Strip " (default)"
+		line=${line%% *}
+		if [[ "$line" =~ ^($channels)(-($date))?(-.*) ]]; then
+			if [[ -z ${BASH_REMATCH[3]} ]]; then
+				result+=("+${BASH_REMATCH[1]}")
+			else
+				# channel-date
+				result+=("+${BASH_REMATCH[1]}-${BASH_REMATCH[3]}")
+			fi
+			result+=("+$line")
+		else
+			result+=("+$line")
+		fi
+	done <<< "$toolchains"
+	echo "${result[@]}"
+}
+
+# vim:ft=sh
diff --git a/linux-x86/1.36.0/last_build.info b/linux-x86/1.36.0/last_build.info
new file mode 100644
index 0000000..c7ff9c2
--- /dev/null
+++ b/linux-x86/1.36.0/last_build.info
@@ -0,0 +1 @@
+aosp-rust-toolchain linux @ 5856450/0
\ No newline at end of file
diff --git a/linux-x86/1.36.0/lib/libLLVM-8-rust-1.36.0-dev.so b/linux-x86/1.36.0/lib/libLLVM-8-rust-1.36.0-dev.so
new file mode 100644
index 0000000..9a856ac
--- /dev/null
+++ b/linux-x86/1.36.0/lib/libLLVM-8-rust-1.36.0-dev.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/libarena-15b8108102fe7b6c.so b/linux-x86/1.36.0/lib/libarena-15b8108102fe7b6c.so
new file mode 100644
index 0000000..dd2a3d5
--- /dev/null
+++ b/linux-x86/1.36.0/lib/libarena-15b8108102fe7b6c.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/libfmt_macros-52aee68cff723c5f.so b/linux-x86/1.36.0/lib/libfmt_macros-52aee68cff723c5f.so
new file mode 100644
index 0000000..da8428d
--- /dev/null
+++ b/linux-x86/1.36.0/lib/libfmt_macros-52aee68cff723c5f.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/libgraphviz-f246a4e4ae7648c6.so b/linux-x86/1.36.0/lib/libgraphviz-f246a4e4ae7648c6.so
new file mode 100644
index 0000000..d05563e
--- /dev/null
+++ b/linux-x86/1.36.0/lib/libgraphviz-f246a4e4ae7648c6.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc-3300e8e198113593.so b/linux-x86/1.36.0/lib/librustc-3300e8e198113593.so
new file mode 100644
index 0000000..4ab3166
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc-3300e8e198113593.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_allocator-abe85bca310bc21d.so b/linux-x86/1.36.0/lib/librustc_allocator-abe85bca310bc21d.so
new file mode 100644
index 0000000..43b631b
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_allocator-abe85bca310bc21d.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_borrowck-3c766a6adca9d997.so b/linux-x86/1.36.0/lib/librustc_borrowck-3c766a6adca9d997.so
new file mode 100644
index 0000000..6f3755b
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_borrowck-3c766a6adca9d997.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_codegen_ssa-07d1cc36fe3fdfcb.so b/linux-x86/1.36.0/lib/librustc_codegen_ssa-07d1cc36fe3fdfcb.so
new file mode 100644
index 0000000..8661ae4
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_codegen_ssa-07d1cc36fe3fdfcb.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_codegen_utils-4aefae014d544759.so b/linux-x86/1.36.0/lib/librustc_codegen_utils-4aefae014d544759.so
new file mode 100644
index 0000000..f00e362
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_codegen_utils-4aefae014d544759.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_cratesio_shim-2dbcd6bcbc099574.so b/linux-x86/1.36.0/lib/librustc_cratesio_shim-2dbcd6bcbc099574.so
new file mode 100644
index 0000000..f7b3e26
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_cratesio_shim-2dbcd6bcbc099574.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_data_structures-6334ac37df3ad4d0.so b/linux-x86/1.36.0/lib/librustc_data_structures-6334ac37df3ad4d0.so
new file mode 100644
index 0000000..f66e0d1
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_data_structures-6334ac37df3ad4d0.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_driver-497048fa9308ab62.so b/linux-x86/1.36.0/lib/librustc_driver-497048fa9308ab62.so
new file mode 100644
index 0000000..f2d59d9
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_driver-497048fa9308ab62.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_errors-7f34485564358c7d.so b/linux-x86/1.36.0/lib/librustc_errors-7f34485564358c7d.so
new file mode 100644
index 0000000..ea44eef
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_errors-7f34485564358c7d.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_fs_util-fb70fd313a88f5eb.so b/linux-x86/1.36.0/lib/librustc_fs_util-fb70fd313a88f5eb.so
new file mode 100644
index 0000000..25c427d
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_fs_util-fb70fd313a88f5eb.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_incremental-d6b93b07cb2f71e0.so b/linux-x86/1.36.0/lib/librustc_incremental-d6b93b07cb2f71e0.so
new file mode 100644
index 0000000..90f8717
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_incremental-d6b93b07cb2f71e0.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_interface-c039b1a1b4c709b9.so b/linux-x86/1.36.0/lib/librustc_interface-c039b1a1b4c709b9.so
new file mode 100644
index 0000000..336b01a
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_interface-c039b1a1b4c709b9.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_lint-abbc7529ae1f7ec8.so b/linux-x86/1.36.0/lib/librustc_lint-abbc7529ae1f7ec8.so
new file mode 100644
index 0000000..52087a8
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_lint-abbc7529ae1f7ec8.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_macros-cbdde55a5f6f5849.so b/linux-x86/1.36.0/lib/librustc_macros-cbdde55a5f6f5849.so
new file mode 100644
index 0000000..5ad2fd0
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_macros-cbdde55a5f6f5849.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_metadata-e725f90b480b86c2.so b/linux-x86/1.36.0/lib/librustc_metadata-e725f90b480b86c2.so
new file mode 100644
index 0000000..917e956
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_metadata-e725f90b480b86c2.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_mir-6132102e5483a753.so b/linux-x86/1.36.0/lib/librustc_mir-6132102e5483a753.so
new file mode 100644
index 0000000..335510c
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_mir-6132102e5483a753.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_passes-d689cb1c3dd3a92e.so b/linux-x86/1.36.0/lib/librustc_passes-d689cb1c3dd3a92e.so
new file mode 100644
index 0000000..c0a0f17
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_passes-d689cb1c3dd3a92e.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_plugin-1153e370d3785b58.so b/linux-x86/1.36.0/lib/librustc_plugin-1153e370d3785b58.so
new file mode 100644
index 0000000..15cfc54
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_plugin-1153e370d3785b58.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_privacy-46f29c0760f20fc7.so b/linux-x86/1.36.0/lib/librustc_privacy-46f29c0760f20fc7.so
new file mode 100644
index 0000000..9eee5de
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_privacy-46f29c0760f20fc7.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_resolve-236b80197c0dddd3.so b/linux-x86/1.36.0/lib/librustc_resolve-236b80197c0dddd3.so
new file mode 100644
index 0000000..6c87f5a
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_resolve-236b80197c0dddd3.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_save_analysis-463771dbc9817d4e.so b/linux-x86/1.36.0/lib/librustc_save_analysis-463771dbc9817d4e.so
new file mode 100644
index 0000000..4118693
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_save_analysis-463771dbc9817d4e.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_target-0770aec96e330b62.so b/linux-x86/1.36.0/lib/librustc_target-0770aec96e330b62.so
new file mode 100644
index 0000000..204a339
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_target-0770aec96e330b62.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_traits-ff3ef7222101b30b.so b/linux-x86/1.36.0/lib/librustc_traits-ff3ef7222101b30b.so
new file mode 100644
index 0000000..5a2cb7c
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_traits-ff3ef7222101b30b.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/librustc_typeck-4fe67c0fc753abdc.so b/linux-x86/1.36.0/lib/librustc_typeck-4fe67c0fc753abdc.so
new file mode 100644
index 0000000..fe51c5f
--- /dev/null
+++ b/linux-x86/1.36.0/lib/librustc_typeck-4fe67c0fc753abdc.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/libserialize-43fdcd250d11ff59.so b/linux-x86/1.36.0/lib/libserialize-43fdcd250d11ff59.so
new file mode 100644
index 0000000..2ba74f4
--- /dev/null
+++ b/linux-x86/1.36.0/lib/libserialize-43fdcd250d11ff59.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/libstd-71500d2f6a24a380.so b/linux-x86/1.36.0/lib/libstd-71500d2f6a24a380.so
new file mode 100644
index 0000000..7f39334
--- /dev/null
+++ b/linux-x86/1.36.0/lib/libstd-71500d2f6a24a380.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/libsyntax-d8dc76a7a18f8f1e.so b/linux-x86/1.36.0/lib/libsyntax-d8dc76a7a18f8f1e.so
new file mode 100644
index 0000000..9d4ed1a
--- /dev/null
+++ b/linux-x86/1.36.0/lib/libsyntax-d8dc76a7a18f8f1e.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/libsyntax_ext-5c124e15bc9737c8.so b/linux-x86/1.36.0/lib/libsyntax_ext-5c124e15bc9737c8.so
new file mode 100644
index 0000000..063937d
--- /dev/null
+++ b/linux-x86/1.36.0/lib/libsyntax_ext-5c124e15bc9737c8.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/libsyntax_pos-b50e75edc77b635b.so b/linux-x86/1.36.0/lib/libsyntax_pos-b50e75edc77b635b.so
new file mode 100644
index 0000000..87c7ac8
--- /dev/null
+++ b/linux-x86/1.36.0/lib/libsyntax_pos-b50e75edc77b635b.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/libterm-c1dbb00662fc9c94.so b/linux-x86/1.36.0/lib/libterm-c1dbb00662fc9c94.so
new file mode 100644
index 0000000..f22f8ec
--- /dev/null
+++ b/linux-x86/1.36.0/lib/libterm-c1dbb00662fc9c94.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/libtest-e12b97740bbe44df.so b/linux-x86/1.36.0/lib/libtest-e12b97740bbe44df.so
new file mode 100644
index 0000000..92dd6a0
--- /dev/null
+++ b/linux-x86/1.36.0/lib/libtest-e12b97740bbe44df.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/liballoc-350717e989e96610.rlib b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/liballoc-350717e989e96610.rlib
new file mode 100644
index 0000000..6e1b69d
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/liballoc-350717e989e96610.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libbacktrace_sys-63f8ca1a70a2e6d9.rlib b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libbacktrace_sys-63f8ca1a70a2e6d9.rlib
new file mode 100644
index 0000000..aedbfe4
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libbacktrace_sys-63f8ca1a70a2e6d9.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libcompiler_builtins-4bb405269e28536e.rlib b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libcompiler_builtins-4bb405269e28536e.rlib
new file mode 100644
index 0000000..11ddbe6
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libcompiler_builtins-4bb405269e28536e.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libcore-48027e7c54c6c260.rlib b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libcore-48027e7c54c6c260.rlib
new file mode 100644
index 0000000..7321fa1
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libcore-48027e7c54c6c260.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libgetopts-a6a1a33d083a01df.rlib b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libgetopts-a6a1a33d083a01df.rlib
new file mode 100644
index 0000000..6b81e6e
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libgetopts-a6a1a33d083a01df.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libhashbrown-f30027a2d4c11fb9.rlib b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libhashbrown-f30027a2d4c11fb9.rlib
new file mode 100644
index 0000000..d36d815
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libhashbrown-f30027a2d4c11fb9.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/liblibc-c9696e9c8091df22.rlib b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/liblibc-c9696e9c8091df22.rlib
new file mode 100644
index 0000000..bd43de6
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/liblibc-c9696e9c8091df22.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libpanic_abort-657e836680377c20.rlib b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libpanic_abort-657e836680377c20.rlib
new file mode 100644
index 0000000..b06fc3b
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libpanic_abort-657e836680377c20.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libpanic_unwind-c524fcd590d73f80.rlib b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libpanic_unwind-c524fcd590d73f80.rlib
new file mode 100644
index 0000000..791f0b0
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libpanic_unwind-c524fcd590d73f80.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libproc_macro-0039d1ebb4ca4988.rlib b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libproc_macro-0039d1ebb4ca4988.rlib
new file mode 100644
index 0000000..8ecd78a
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libproc_macro-0039d1ebb4ca4988.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/librustc_demangle-d6f9829aedbc1969.rlib b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/librustc_demangle-d6f9829aedbc1969.rlib
new file mode 100644
index 0000000..0d64ab9
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/librustc_demangle-d6f9829aedbc1969.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/librustc_std_workspace_alloc-e27b3a259bac03c7.rlib b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/librustc_std_workspace_alloc-e27b3a259bac03c7.rlib
new file mode 100644
index 0000000..621b97a
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/librustc_std_workspace_alloc-e27b3a259bac03c7.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/librustc_std_workspace_core-6e742c4724cdd5aa.rlib b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/librustc_std_workspace_core-6e742c4724cdd5aa.rlib
new file mode 100644
index 0000000..6560a16
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/librustc_std_workspace_core-6e742c4724cdd5aa.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libstd-5670ffe63dd60caa.rlib b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libstd-5670ffe63dd60caa.rlib
new file mode 100644
index 0000000..04e07dc
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libstd-5670ffe63dd60caa.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libstd-5670ffe63dd60caa.so b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libstd-5670ffe63dd60caa.so
new file mode 100755
index 0000000..853ad63
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libstd-5670ffe63dd60caa.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libterm-c1dbb00662fc9c94.rlib b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libterm-c1dbb00662fc9c94.rlib
new file mode 100644
index 0000000..fb29837
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libterm-c1dbb00662fc9c94.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libterm-c1dbb00662fc9c94.so b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libterm-c1dbb00662fc9c94.so
new file mode 100755
index 0000000..6467587
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libterm-c1dbb00662fc9c94.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libtest-e12b97740bbe44df.rlib b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libtest-e12b97740bbe44df.rlib
new file mode 100644
index 0000000..916eab8
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libtest-e12b97740bbe44df.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libtest-e12b97740bbe44df.so b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libtest-e12b97740bbe44df.so
new file mode 100755
index 0000000..3472e17
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libtest-e12b97740bbe44df.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libunicode_width-cc96e3e219087296.rlib b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libunicode_width-cc96e3e219087296.rlib
new file mode 100644
index 0000000..47443fe
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libunicode_width-cc96e3e219087296.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libunwind-6460f2c7cfc35d55.rlib b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libunwind-6460f2c7cfc35d55.rlib
new file mode 100644
index 0000000..0d34029
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/aarch64-linux-android/lib/libunwind-6460f2c7cfc35d55.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/liballoc-350717e989e96610.rlib b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/liballoc-350717e989e96610.rlib
new file mode 100644
index 0000000..9fe4ac1
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/liballoc-350717e989e96610.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libbacktrace_sys-63f8ca1a70a2e6d9.rlib b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libbacktrace_sys-63f8ca1a70a2e6d9.rlib
new file mode 100644
index 0000000..c3aeab1
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libbacktrace_sys-63f8ca1a70a2e6d9.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libcompiler_builtins-4bb405269e28536e.rlib b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libcompiler_builtins-4bb405269e28536e.rlib
new file mode 100644
index 0000000..f51824e
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libcompiler_builtins-4bb405269e28536e.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libcore-48027e7c54c6c260.rlib b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libcore-48027e7c54c6c260.rlib
new file mode 100644
index 0000000..e3539bb
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libcore-48027e7c54c6c260.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libgetopts-a6a1a33d083a01df.rlib b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libgetopts-a6a1a33d083a01df.rlib
new file mode 100644
index 0000000..63b3030
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libgetopts-a6a1a33d083a01df.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libhashbrown-f30027a2d4c11fb9.rlib b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libhashbrown-f30027a2d4c11fb9.rlib
new file mode 100644
index 0000000..3cc25d5
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libhashbrown-f30027a2d4c11fb9.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/liblibc-c9696e9c8091df22.rlib b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/liblibc-c9696e9c8091df22.rlib
new file mode 100644
index 0000000..dc2f6d4
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/liblibc-c9696e9c8091df22.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libpanic_abort-657e836680377c20.rlib b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libpanic_abort-657e836680377c20.rlib
new file mode 100644
index 0000000..246fe3c
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libpanic_abort-657e836680377c20.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libpanic_unwind-c524fcd590d73f80.rlib b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libpanic_unwind-c524fcd590d73f80.rlib
new file mode 100644
index 0000000..f22f830
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libpanic_unwind-c524fcd590d73f80.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libproc_macro-0039d1ebb4ca4988.rlib b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libproc_macro-0039d1ebb4ca4988.rlib
new file mode 100644
index 0000000..89470c5
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libproc_macro-0039d1ebb4ca4988.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/librustc_demangle-d6f9829aedbc1969.rlib b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/librustc_demangle-d6f9829aedbc1969.rlib
new file mode 100644
index 0000000..963f77b
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/librustc_demangle-d6f9829aedbc1969.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/librustc_std_workspace_alloc-e27b3a259bac03c7.rlib b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/librustc_std_workspace_alloc-e27b3a259bac03c7.rlib
new file mode 100644
index 0000000..ab2cc35
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/librustc_std_workspace_alloc-e27b3a259bac03c7.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/librustc_std_workspace_core-6e742c4724cdd5aa.rlib b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/librustc_std_workspace_core-6e742c4724cdd5aa.rlib
new file mode 100644
index 0000000..e866d95
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/librustc_std_workspace_core-6e742c4724cdd5aa.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libstd-5670ffe63dd60caa.rlib b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libstd-5670ffe63dd60caa.rlib
new file mode 100644
index 0000000..c31fa96
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libstd-5670ffe63dd60caa.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libstd-5670ffe63dd60caa.so b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libstd-5670ffe63dd60caa.so
new file mode 100755
index 0000000..833ff69
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libstd-5670ffe63dd60caa.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libterm-c1dbb00662fc9c94.rlib b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libterm-c1dbb00662fc9c94.rlib
new file mode 100644
index 0000000..172fe99
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libterm-c1dbb00662fc9c94.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libterm-c1dbb00662fc9c94.so b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libterm-c1dbb00662fc9c94.so
new file mode 100755
index 0000000..08c0707
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libterm-c1dbb00662fc9c94.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libtest-e12b97740bbe44df.rlib b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libtest-e12b97740bbe44df.rlib
new file mode 100644
index 0000000..1126add
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libtest-e12b97740bbe44df.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libtest-e12b97740bbe44df.so b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libtest-e12b97740bbe44df.so
new file mode 100755
index 0000000..20c1e1a
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libtest-e12b97740bbe44df.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libunicode_width-cc96e3e219087296.rlib b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libunicode_width-cc96e3e219087296.rlib
new file mode 100644
index 0000000..ecb282c
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libunicode_width-cc96e3e219087296.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libunwind-6460f2c7cfc35d55.rlib b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libunwind-6460f2c7cfc35d55.rlib
new file mode 100644
index 0000000..00229ad
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/arm-linux-androideabi/lib/libunwind-6460f2c7cfc35d55.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/components b/linux-x86/1.36.0/lib/rustlib/components
new file mode 100644
index 0000000..f3a2b27
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/components
@@ -0,0 +1,5 @@
+rust-std-x86_64-unknown-linux-gnu
+rust-std-aarch64-linux-android
+rust-std-arm-linux-androideabi
+cargo
+rustc
diff --git a/linux-x86/1.36.0/lib/rustlib/etc/debugger_pretty_printers_common.py b/linux-x86/1.36.0/lib/rustlib/etc/debugger_pretty_printers_common.py
new file mode 100644
index 0000000..385ce8e
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/etc/debugger_pretty_printers_common.py
@@ -0,0 +1,399 @@
+"""
+This module provides an abstraction layer over common Rust pretty printing
+functionality needed by both GDB and LLDB.
+"""
+
+import re
+
+# Type codes that indicate the kind of type as it appears in DWARF debug
+# information. This code alone is not sufficient to determine the Rust type.
+# For example structs, tuples, fat pointers, or enum variants will all have
+# DWARF_TYPE_CODE_STRUCT.
+DWARF_TYPE_CODE_STRUCT = 1
+DWARF_TYPE_CODE_UNION  = 2
+DWARF_TYPE_CODE_PTR    = 3
+DWARF_TYPE_CODE_ARRAY  = 4
+DWARF_TYPE_CODE_ENUM   = 5
+
+# These constants specify the most specific kind of type that could be
+# determined for a given value.
+TYPE_KIND_UNKNOWN           = -1
+TYPE_KIND_EMPTY             = 0
+TYPE_KIND_SLICE             = 1
+TYPE_KIND_REGULAR_STRUCT    = 2
+TYPE_KIND_TUPLE             = 3
+TYPE_KIND_TUPLE_STRUCT      = 4
+TYPE_KIND_CSTYLE_VARIANT    = 5
+TYPE_KIND_TUPLE_VARIANT     = 6
+TYPE_KIND_STRUCT_VARIANT    = 7
+TYPE_KIND_STR_SLICE         = 8
+TYPE_KIND_STD_VEC           = 9
+TYPE_KIND_STD_STRING        = 10
+TYPE_KIND_REGULAR_ENUM      = 11
+TYPE_KIND_COMPRESSED_ENUM   = 12
+TYPE_KIND_SINGLETON_ENUM    = 13
+TYPE_KIND_CSTYLE_ENUM       = 14
+TYPE_KIND_PTR               = 15
+TYPE_KIND_FIXED_SIZE_VEC    = 16
+TYPE_KIND_REGULAR_UNION     = 17
+TYPE_KIND_OS_STRING         = 18
+TYPE_KIND_STD_VECDEQUE      = 19
+TYPE_KIND_STD_BTREESET      = 20
+TYPE_KIND_STD_BTREEMAP      = 21
+
+ENCODED_ENUM_PREFIX = "RUST$ENCODED$ENUM$"
+ENUM_DISR_FIELD_NAME = "RUST$ENUM$DISR"
+
+# Slice related constants
+SLICE_FIELD_NAME_DATA_PTR = "data_ptr"
+SLICE_FIELD_NAME_LENGTH = "length"
+SLICE_FIELD_NAMES = [SLICE_FIELD_NAME_DATA_PTR, SLICE_FIELD_NAME_LENGTH]
+
+# std::Vec<> related constants
+STD_VEC_FIELD_NAME_LENGTH = "len"
+STD_VEC_FIELD_NAME_BUF = "buf"
+STD_VEC_FIELD_NAMES = [STD_VEC_FIELD_NAME_BUF,
+                       STD_VEC_FIELD_NAME_LENGTH]
+
+# std::collections::VecDeque<> related constants
+STD_VECDEQUE_FIELD_NAME_TAIL = "tail"
+STD_VECDEQUE_FIELD_NAME_HEAD = "head"
+STD_VECDEQUE_FIELD_NAME_BUF = "buf"
+STD_VECDEQUE_FIELD_NAMES = [STD_VECDEQUE_FIELD_NAME_TAIL,
+                            STD_VECDEQUE_FIELD_NAME_HEAD,
+                            STD_VECDEQUE_FIELD_NAME_BUF]
+
+# std::collections::BTreeSet<> related constants
+STD_BTREESET_FIELD_NAMES = ["map"]
+
+# std::collections::BTreeMap<> related constants
+STD_BTREEMAP_FIELD_NAMES = ["root", "length"]
+
+# std::String related constants
+STD_STRING_FIELD_NAMES = ["vec"]
+
+# std::ffi::OsString related constants
+OS_STRING_FIELD_NAMES = ["inner"]
+
+
+class Type(object):
+    """
+    This class provides a common interface for type-oriented operations.
+    Sub-classes are supposed to wrap a debugger-specific type-object and
+    provide implementations for the abstract methods in this class.
+    """
+
+    def __init__(self):
+        self.__type_kind = None
+
+    def get_unqualified_type_name(self):
+        """
+        Implementations of this method should return the unqualified name of the
+        type-object they are wrapping. Some examples:
+
+        'int' -> 'int'
+        'std::vec::Vec<std::string::String>' -> 'Vec<std::string::String>'
+        '&std::option::Option<std::string::String>' -> '&std::option::Option<std::string::String>'
+
+        As you can see, type arguments stay fully qualified.
+        """
+        raise NotImplementedError("Override this method")
+
+    def get_dwarf_type_kind(self):
+        """
+        Implementations of this method should return the correct
+        DWARF_TYPE_CODE_* value for the wrapped type-object.
+        """
+        raise NotImplementedError("Override this method")
+
+    def get_fields(self):
+        """
+        Implementations of this method should return a list of field-objects of
+        this type. For Rust-enums (i.e. with DWARF_TYPE_CODE_UNION) these field-
+        objects represent the variants of the enum. Field-objects must have a
+        `name` attribute that gives their name as specified in DWARF.
+        """
+        assert ((self.get_dwarf_type_kind() == DWARF_TYPE_CODE_STRUCT) or
+                (self.get_dwarf_type_kind() == DWARF_TYPE_CODE_UNION))
+        raise NotImplementedError("Override this method")
+
+    def get_wrapped_value(self):
+        """
+        Returns the debugger-specific type-object wrapped by this object. This
+        is sometimes needed for doing things like pointer-arithmetic in GDB.
+        """
+        raise NotImplementedError("Override this method")
+
+    def get_type_kind(self):
+        """This method returns the TYPE_KIND_* value for this type-object."""
+        if self.__type_kind is None:
+            dwarf_type_code = self.get_dwarf_type_kind()
+
+            if dwarf_type_code == DWARF_TYPE_CODE_STRUCT:
+                self.__type_kind = self.__classify_struct()
+            elif dwarf_type_code == DWARF_TYPE_CODE_UNION:
+                self.__type_kind = self.__classify_union()
+            elif dwarf_type_code == DWARF_TYPE_CODE_PTR:
+                self.__type_kind = TYPE_KIND_PTR
+            elif dwarf_type_code == DWARF_TYPE_CODE_ARRAY:
+                self.__type_kind = TYPE_KIND_FIXED_SIZE_VEC
+            else:
+                self.__type_kind = TYPE_KIND_UNKNOWN
+        return self.__type_kind
+
+    def __classify_struct(self):
+        assert self.get_dwarf_type_kind() == DWARF_TYPE_CODE_STRUCT
+
+        unqualified_type_name = self.get_unqualified_type_name()
+
+        # STR SLICE
+        if unqualified_type_name == "&str":
+            return TYPE_KIND_STR_SLICE
+
+        # REGULAR SLICE
+        if (unqualified_type_name.startswith(("&[", "&mut [")) and
+            unqualified_type_name.endswith("]") and
+            self.__conforms_to_field_layout(SLICE_FIELD_NAMES)):
+            return TYPE_KIND_SLICE
+
+        fields = self.get_fields()
+        field_count = len(fields)
+
+        # EMPTY STRUCT
+        if field_count == 0:
+            return TYPE_KIND_EMPTY
+
+        # STD VEC
+        if (unqualified_type_name.startswith("Vec<") and
+            self.__conforms_to_field_layout(STD_VEC_FIELD_NAMES)):
+            return TYPE_KIND_STD_VEC
+
+        # STD COLLECTION VECDEQUE
+        if (unqualified_type_name.startswith("VecDeque<") and
+            self.__conforms_to_field_layout(STD_VECDEQUE_FIELD_NAMES)):
+            return TYPE_KIND_STD_VECDEQUE
+
+        # STD COLLECTION BTREESET
+        if (unqualified_type_name.startswith("BTreeSet<") and
+                self.__conforms_to_field_layout(STD_BTREESET_FIELD_NAMES)):
+            return TYPE_KIND_STD_BTREESET
+
+        # STD COLLECTION BTREEMAP
+        if (unqualified_type_name.startswith("BTreeMap<") and
+                self.__conforms_to_field_layout(STD_BTREEMAP_FIELD_NAMES)):
+            return TYPE_KIND_STD_BTREEMAP
+
+        # STD STRING
+        if (unqualified_type_name.startswith("String") and
+            self.__conforms_to_field_layout(STD_STRING_FIELD_NAMES)):
+            return TYPE_KIND_STD_STRING
+
+        # OS STRING
+        if (unqualified_type_name == "OsString" and
+            self.__conforms_to_field_layout(OS_STRING_FIELD_NAMES)):
+            return TYPE_KIND_OS_STRING
+
+        # ENUM VARIANTS
+        if fields[0].name == ENUM_DISR_FIELD_NAME:
+            if field_count == 1:
+                return TYPE_KIND_CSTYLE_VARIANT
+            elif self.__all_fields_conform_to_tuple_field_naming(1):
+                return TYPE_KIND_TUPLE_VARIANT
+            else:
+                return TYPE_KIND_STRUCT_VARIANT
+
+        # TUPLE
+        if self.__all_fields_conform_to_tuple_field_naming(0):
+            if unqualified_type_name.startswith("("):
+                return TYPE_KIND_TUPLE
+            else:
+                return TYPE_KIND_TUPLE_STRUCT
+
+        # REGULAR STRUCT
+        return TYPE_KIND_REGULAR_STRUCT
+
+
+    def __classify_union(self):
+        assert self.get_dwarf_type_kind() == DWARF_TYPE_CODE_UNION
+
+        union_members = self.get_fields()
+        union_member_count = len(union_members)
+        if union_member_count == 0:
+            return TYPE_KIND_EMPTY
+
+        first_variant_name = union_members[0].name
+        if first_variant_name is None:
+            if union_member_count == 1:
+                return TYPE_KIND_SINGLETON_ENUM
+            else:
+                return TYPE_KIND_REGULAR_ENUM
+        elif first_variant_name.startswith(ENCODED_ENUM_PREFIX):
+            assert union_member_count == 1
+            return TYPE_KIND_COMPRESSED_ENUM
+        else:
+            return TYPE_KIND_REGULAR_UNION
+
+
+    def __conforms_to_field_layout(self, expected_fields):
+        actual_fields = self.get_fields()
+        actual_field_count = len(actual_fields)
+
+        if actual_field_count != len(expected_fields):
+            return False
+
+        for i in range(0, actual_field_count):
+            if actual_fields[i].name != expected_fields[i]:
+                return False
+
+        return True
+
+    def __all_fields_conform_to_tuple_field_naming(self, start_index):
+        fields = self.get_fields()
+        field_count = len(fields)
+
+        for i in range(start_index, field_count):
+            field_name = fields[i].name
+            if (field_name is None) or (re.match(r"__\d+$", field_name) is None):
+                return False
+        return True
+
+
+class Value(object):
+    """
+    This class provides a common interface for value-oriented operations.
+    Sub-classes are supposed to wrap a debugger-specific value-object and
+    provide implementations for the abstract methods in this class.
+    """
+    def __init__(self, ty):
+        self.type = ty
+
+    def get_child_at_index(self, index):
+        """Returns the value of the field, array element or variant at the given index"""
+        raise NotImplementedError("Override this method")
+
+    def as_integer(self):
+        """
+        Try to convert the wrapped value into a Python integer. This should
+        always succeed for values that are pointers or actual integers.
+        """
+        raise NotImplementedError("Override this method")
+
+    def get_wrapped_value(self):
+        """
+        Returns the debugger-specific value-object wrapped by this object. This
+        is sometimes needed for doing things like pointer-arithmetic in GDB.
+        """
+        raise NotImplementedError("Override this method")
+
+
+class EncodedEnumInfo(object):
+    """
+    This class provides facilities for handling enum values with compressed
+    encoding where a non-null field in one variant doubles as the discriminant.
+    """
+
+    def __init__(self, enum_val):
+        assert enum_val.type.get_type_kind() == TYPE_KIND_COMPRESSED_ENUM
+        variant_name = enum_val.type.get_fields()[0].name
+        last_separator_index = variant_name.rfind("$")
+        start_index = len(ENCODED_ENUM_PREFIX)
+        indices_substring = variant_name[start_index:last_separator_index].split("$")
+        self.__enum_val = enum_val
+        self.__disr_field_indices = [int(index) for index in indices_substring]
+        self.__null_variant_name = variant_name[last_separator_index + 1:]
+
+    def is_null_variant(self):
+        ty = self.__enum_val.type
+        sole_variant_val = self.__enum_val.get_child_at_index(0)
+        discriminant_val = sole_variant_val
+        for disr_field_index in self.__disr_field_indices:
+            discriminant_val = discriminant_val.get_child_at_index(disr_field_index)
+
+        # If the discriminant field is a fat pointer we have to consider the
+        # first word as the true discriminant
+        if discriminant_val.type.get_dwarf_type_kind() == DWARF_TYPE_CODE_STRUCT:
+            discriminant_val = discriminant_val.get_child_at_index(0)
+
+        return discriminant_val.as_integer() == 0
+
+    def get_non_null_variant_val(self):
+        return self.__enum_val.get_child_at_index(0)
+
+    def get_null_variant_name(self):
+        return self.__null_variant_name
+
+
+def get_discriminant_value_as_integer(enum_val):
+    assert enum_val.type.get_dwarf_type_kind() == DWARF_TYPE_CODE_UNION
+    # we can take any variant here because the discriminant has to be the same
+    # for all of them.
+    variant_val = enum_val.get_child_at_index(0)
+    disr_val = variant_val.get_child_at_index(0)
+    return disr_val.as_integer()
+
+
+def extract_length_ptr_and_cap_from_std_vec(vec_val):
+    assert vec_val.type.get_type_kind() == TYPE_KIND_STD_VEC
+    length_field_index = STD_VEC_FIELD_NAMES.index(STD_VEC_FIELD_NAME_LENGTH)
+    buf_field_index = STD_VEC_FIELD_NAMES.index(STD_VEC_FIELD_NAME_BUF)
+
+    length = vec_val.get_child_at_index(length_field_index).as_integer()
+    buf = vec_val.get_child_at_index(buf_field_index)
+
+    vec_ptr_val = buf.get_child_at_index(0)
+    capacity = buf.get_child_at_index(1).as_integer()
+    data_ptr = vec_ptr_val.get_child_at_index(0)
+    assert data_ptr.type.get_dwarf_type_kind() == DWARF_TYPE_CODE_PTR
+    return (length, data_ptr, capacity)
+
+
+def extract_tail_head_ptr_and_cap_from_std_vecdeque(vec_val):
+    assert vec_val.type.get_type_kind() == TYPE_KIND_STD_VECDEQUE
+    tail_field_index = STD_VECDEQUE_FIELD_NAMES.index(STD_VECDEQUE_FIELD_NAME_TAIL)
+    head_field_index = STD_VECDEQUE_FIELD_NAMES.index(STD_VECDEQUE_FIELD_NAME_HEAD)
+    buf_field_index = STD_VECDEQUE_FIELD_NAMES.index(STD_VECDEQUE_FIELD_NAME_BUF)
+
+    tail = vec_val.get_child_at_index(tail_field_index).as_integer()
+    head = vec_val.get_child_at_index(head_field_index).as_integer()
+    buf = vec_val.get_child_at_index(buf_field_index)
+
+    vec_ptr_val = buf.get_child_at_index(0)
+    capacity = buf.get_child_at_index(1).as_integer()
+    data_ptr = vec_ptr_val.get_child_at_index(0)
+    assert data_ptr.type.get_dwarf_type_kind() == DWARF_TYPE_CODE_PTR
+    return (tail, head, data_ptr, capacity)
+
+def extract_length_and_ptr_from_slice(slice_val):
+    assert (slice_val.type.get_type_kind() == TYPE_KIND_SLICE or
+            slice_val.type.get_type_kind() == TYPE_KIND_STR_SLICE)
+
+    length_field_index = SLICE_FIELD_NAMES.index(SLICE_FIELD_NAME_LENGTH)
+    ptr_field_index = SLICE_FIELD_NAMES.index(SLICE_FIELD_NAME_DATA_PTR)
+
+    length = slice_val.get_child_at_index(length_field_index).as_integer()
+    data_ptr = slice_val.get_child_at_index(ptr_field_index)
+
+    assert data_ptr.type.get_dwarf_type_kind() == DWARF_TYPE_CODE_PTR
+    return (length, data_ptr)
+
+UNQUALIFIED_TYPE_MARKERS = frozenset(["(", "[", "&", "*"])
+
+def extract_type_name(qualified_type_name):
+    """Extracts the type name from a fully qualified path"""
+    if qualified_type_name[0] in UNQUALIFIED_TYPE_MARKERS:
+        return qualified_type_name
+
+    end_of_search = qualified_type_name.find("<")
+    if end_of_search < 0:
+        end_of_search = len(qualified_type_name)
+
+    index = qualified_type_name.rfind("::", 0, end_of_search)
+    if index < 0:
+        return qualified_type_name
+    else:
+        return qualified_type_name[index + 2:]
+
+try:
+    compat_str = unicode  # Python 2
+except NameError:
+    compat_str = str
diff --git a/linux-x86/1.36.0/lib/rustlib/etc/gdb_load_rust_pretty_printers.py b/linux-x86/1.36.0/lib/rustlib/etc/gdb_load_rust_pretty_printers.py
new file mode 100644
index 0000000..c551346
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/etc/gdb_load_rust_pretty_printers.py
@@ -0,0 +1,2 @@
+import gdb_rust_pretty_printing
+gdb_rust_pretty_printing.register_printers(gdb.current_objfile())
diff --git a/linux-x86/1.36.0/lib/rustlib/etc/gdb_rust_pretty_printing.py b/linux-x86/1.36.0/lib/rustlib/etc/gdb_rust_pretty_printing.py
new file mode 100644
index 0000000..a6b0972
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/etc/gdb_rust_pretty_printing.py
@@ -0,0 +1,445 @@
+import gdb
+import re
+import sys
+import debugger_pretty_printers_common as rustpp
+
+# We want a version of `range` which doesn't allocate an intermediate list,
+# specifically it should use a lazy iterator. In Python 2 this was `xrange`, but
+# if we're running with Python 3 then we need to use `range` instead.
+if sys.version_info[0] >= 3:
+    xrange = range
+
+rust_enabled = 'set language rust' in gdb.execute('complete set language ru', to_string = True)
+
+# The btree pretty-printers fail in a confusing way unless
+# https://sourceware.org/bugzilla/show_bug.cgi?id=21763 is fixed.
+# This fix went in 8.1, so check for that.
+# See https://github.com/rust-lang/rust/issues/56730
+gdb_81 = False
+_match = re.search('([0-9]+)\\.([0-9]+)', gdb.VERSION)
+if _match:
+    if int(_match.group(1)) > 8 or (int(_match.group(1)) == 8 and int(_match.group(2)) >= 1):
+        gdb_81 = True
+
+#===============================================================================
+# GDB Pretty Printing Module for Rust
+#===============================================================================
+
+class GdbType(rustpp.Type):
+
+    def __init__(self, ty):
+        super(GdbType, self).__init__()
+        self.ty = ty
+        self.fields = None
+
+    def get_unqualified_type_name(self):
+        tag = self.ty.tag
+
+        if tag is None:
+            return tag
+
+        return rustpp.extract_type_name(tag).replace("&'static ", "&")
+
+    def get_dwarf_type_kind(self):
+        if self.ty.code == gdb.TYPE_CODE_STRUCT:
+            return rustpp.DWARF_TYPE_CODE_STRUCT
+
+        if self.ty.code == gdb.TYPE_CODE_UNION:
+            return rustpp.DWARF_TYPE_CODE_UNION
+
+        if self.ty.code == gdb.TYPE_CODE_PTR:
+            return rustpp.DWARF_TYPE_CODE_PTR
+
+        if self.ty.code == gdb.TYPE_CODE_ENUM:
+            return rustpp.DWARF_TYPE_CODE_ENUM
+
+    def get_fields(self):
+        assert ((self.get_dwarf_type_kind() == rustpp.DWARF_TYPE_CODE_STRUCT) or
+                (self.get_dwarf_type_kind() == rustpp.DWARF_TYPE_CODE_UNION))
+        if self.fields is None:
+            self.fields = list(self.ty.fields())
+        return self.fields
+
+    def get_wrapped_value(self):
+        return self.ty
+
+
+class GdbValue(rustpp.Value):
+    def __init__(self, gdb_val):
+        super(GdbValue, self).__init__(GdbType(gdb_val.type))
+        self.gdb_val = gdb_val
+        self.children = {}
+
+    def get_child_at_index(self, index):
+        child = self.children.get(index)
+        if child is None:
+            gdb_field = get_field_at_index(self.gdb_val, index)
+            child = GdbValue(self.gdb_val[gdb_field])
+            self.children[index] = child
+        return child
+
+    def as_integer(self):
+        if self.gdb_val.type.code == gdb.TYPE_CODE_PTR:
+            as_str = rustpp.compat_str(self.gdb_val).split()[0]
+            return int(as_str, 0)
+        return int(self.gdb_val)
+
+    def get_wrapped_value(self):
+        return self.gdb_val
+
+
+def register_printers(objfile):
+    """Registers Rust pretty printers for the given objfile"""
+    objfile.pretty_printers.append(rust_pretty_printer_lookup_function)
+
+
+def rust_pretty_printer_lookup_function(gdb_val):
+    """
+    Returns the correct Rust pretty printer for the given value
+    if there is one
+    """
+
+    val = GdbValue(gdb_val)
+    type_kind = val.type.get_type_kind()
+
+    if type_kind == rustpp.TYPE_KIND_SLICE:
+        return RustSlicePrinter(val)
+
+    if type_kind == rustpp.TYPE_KIND_STD_VEC:
+        return RustStdVecPrinter(val)
+
+    if type_kind == rustpp.TYPE_KIND_STD_VECDEQUE:
+        return RustStdVecDequePrinter(val)
+
+    if type_kind == rustpp.TYPE_KIND_STD_BTREESET and gdb_81:
+        return RustStdBTreeSetPrinter(val)
+
+    if type_kind == rustpp.TYPE_KIND_STD_BTREEMAP and gdb_81:
+        return RustStdBTreeMapPrinter(val)
+
+    if type_kind == rustpp.TYPE_KIND_STD_STRING:
+        return RustStdStringPrinter(val)
+
+    if type_kind == rustpp.TYPE_KIND_OS_STRING:
+        return RustOsStringPrinter(val)
+
+    # Checks after this point should only be for "compiler" types --
+    # things that gdb's Rust language support knows about.
+    if rust_enabled:
+        return None
+
+    if type_kind == rustpp.TYPE_KIND_EMPTY:
+        return RustEmptyPrinter(val)
+
+    if type_kind == rustpp.TYPE_KIND_REGULAR_STRUCT:
+        return RustStructPrinter(val,
+                                 omit_first_field = False,
+                                 omit_type_name = False,
+                                 is_tuple_like = False)
+
+    if type_kind == rustpp.TYPE_KIND_STRUCT_VARIANT:
+        return RustStructPrinter(val,
+                                 omit_first_field = True,
+                                 omit_type_name = False,
+                                 is_tuple_like = False)
+
+    if type_kind == rustpp.TYPE_KIND_STR_SLICE:
+        return RustStringSlicePrinter(val)
+
+    if type_kind == rustpp.TYPE_KIND_TUPLE:
+        return RustStructPrinter(val,
+                                 omit_first_field = False,
+                                 omit_type_name = True,
+                                 is_tuple_like = True)
+
+    if type_kind == rustpp.TYPE_KIND_TUPLE_STRUCT:
+        return RustStructPrinter(val,
+                                 omit_first_field = False,
+                                 omit_type_name = False,
+                                 is_tuple_like = True)
+
+    if type_kind == rustpp.TYPE_KIND_CSTYLE_VARIANT:
+        return RustCStyleVariantPrinter(val.get_child_at_index(0))
+
+    if type_kind == rustpp.TYPE_KIND_TUPLE_VARIANT:
+        return RustStructPrinter(val,
+                                 omit_first_field = True,
+                                 omit_type_name = False,
+                                 is_tuple_like = True)
+
+    if type_kind == rustpp.TYPE_KIND_SINGLETON_ENUM:
+        variant = get_field_at_index(gdb_val, 0)
+        return rust_pretty_printer_lookup_function(gdb_val[variant])
+
+    if type_kind == rustpp.TYPE_KIND_REGULAR_ENUM:
+        # This is a regular enum, extract the discriminant
+        discriminant_val = rustpp.get_discriminant_value_as_integer(val)
+        variant = get_field_at_index(gdb_val, discriminant_val)
+        return rust_pretty_printer_lookup_function(gdb_val[variant])
+
+    if type_kind == rustpp.TYPE_KIND_COMPRESSED_ENUM:
+        encoded_enum_info = rustpp.EncodedEnumInfo(val)
+        if encoded_enum_info.is_null_variant():
+            return IdentityPrinter(encoded_enum_info.get_null_variant_name())
+
+        non_null_val = encoded_enum_info.get_non_null_variant_val()
+        return rust_pretty_printer_lookup_function(non_null_val.get_wrapped_value())
+
+    # No pretty printer has been found
+    return None
+
+
+#=------------------------------------------------------------------------------
+# Pretty Printer Classes
+#=------------------------------------------------------------------------------
+class RustEmptyPrinter(object):
+    def __init__(self, val):
+        self.__val = val
+
+    def to_string(self):
+        return self.__val.type.get_unqualified_type_name()
+
+
+class RustStructPrinter(object):
+    def __init__(self, val, omit_first_field, omit_type_name, is_tuple_like):
+        self.__val = val
+        self.__omit_first_field = omit_first_field
+        self.__omit_type_name = omit_type_name
+        self.__is_tuple_like = is_tuple_like
+
+    def to_string(self):
+        if self.__omit_type_name:
+            return None
+        return self.__val.type.get_unqualified_type_name()
+
+    def children(self):
+        cs = []
+        wrapped_value = self.__val.get_wrapped_value()
+
+        for number, field in enumerate(self.__val.type.get_fields()):
+            field_value = wrapped_value[field.name]
+            if self.__is_tuple_like:
+                cs.append((str(number), field_value))
+            else:
+                cs.append((field.name, field_value))
+
+        if self.__omit_first_field:
+            cs = cs[1:]
+
+        return cs
+
+    def display_hint(self):
+        if self.__is_tuple_like:
+            return "array"
+        else:
+            return ""
+
+
+class RustSlicePrinter(object):
+    def __init__(self, val):
+        self.__val = val
+
+    @staticmethod
+    def display_hint():
+        return "array"
+
+    def to_string(self):
+        (length, data_ptr) = rustpp.extract_length_and_ptr_from_slice(self.__val)
+        return (self.__val.type.get_unqualified_type_name() +
+                ("(len: %i)" % length))
+
+    def children(self):
+        (length, data_ptr) = rustpp.extract_length_and_ptr_from_slice(self.__val)
+        assert data_ptr.type.get_dwarf_type_kind() == rustpp.DWARF_TYPE_CODE_PTR
+        raw_ptr = data_ptr.get_wrapped_value()
+
+        for index in xrange(0, length):
+            yield (str(index), (raw_ptr + index).dereference())
+
+
+class RustStringSlicePrinter(object):
+    def __init__(self, val):
+        self.__val = val
+
+    def to_string(self):
+        (length, data_ptr) = rustpp.extract_length_and_ptr_from_slice(self.__val)
+        raw_ptr = data_ptr.get_wrapped_value()
+        return raw_ptr.lazy_string(encoding="utf-8", length=length)
+
+    def display_hint(self):
+        return "string"
+
+
+class RustStdVecPrinter(object):
+    def __init__(self, val):
+        self.__val = val
+
+    @staticmethod
+    def display_hint():
+        return "array"
+
+    def to_string(self):
+        (length, data_ptr, cap) = rustpp.extract_length_ptr_and_cap_from_std_vec(self.__val)
+        return (self.__val.type.get_unqualified_type_name() +
+                ("(len: %i, cap: %i)" % (length, cap)))
+
+    def children(self):
+        (length, data_ptr, cap) = rustpp.extract_length_ptr_and_cap_from_std_vec(self.__val)
+        gdb_ptr = data_ptr.get_wrapped_value()
+        for index in xrange(0, length):
+            yield (str(index), (gdb_ptr + index).dereference())
+
+
+class RustStdVecDequePrinter(object):
+    def __init__(self, val):
+        self.__val = val
+
+    @staticmethod
+    def display_hint():
+        return "array"
+
+    def to_string(self):
+        (tail, head, data_ptr, cap) = \
+            rustpp.extract_tail_head_ptr_and_cap_from_std_vecdeque(self.__val)
+        if head >= tail:
+            size = head - tail
+        else:
+            size = cap + head - tail
+        return (self.__val.type.get_unqualified_type_name() +
+                ("(len: %i, cap: %i)" % (size, cap)))
+
+    def children(self):
+        (tail, head, data_ptr, cap) = \
+            rustpp.extract_tail_head_ptr_and_cap_from_std_vecdeque(self.__val)
+        gdb_ptr = data_ptr.get_wrapped_value()
+        if head >= tail:
+            size = head - tail
+        else:
+            size = cap + head - tail
+        for index in xrange(0, size):
+            yield (str(index), (gdb_ptr + ((tail + index) % cap)).dereference())
+
+
+# Yield each key (and optionally value) from a BoxedNode.
+def children_of_node(boxed_node, height, want_values):
+    node_ptr = boxed_node['ptr']['pointer']
+    if height > 0:
+        type_name = str(node_ptr.type.target()).replace('LeafNode', 'InternalNode')
+        node_type = gdb.lookup_type(type_name)
+        node_ptr = node_ptr.cast(node_type.pointer())
+        leaf = node_ptr['data']
+    else:
+        leaf = node_ptr.dereference()
+    keys = leaf['keys']
+    if want_values:
+        values = leaf['vals']
+    length = int(leaf['len'])
+    for i in xrange(0, length + 1):
+        if height > 0:
+            child_ptr = node_ptr['edges'][i]['value']['value']
+            for child in children_of_node(child_ptr, height - 1, want_values):
+                yield child
+        if i < length:
+            if want_values:
+                yield (keys[i]['value']['value'], values[i]['value']['value'])
+            else:
+                yield keys[i]['value']['value']
+
+class RustStdBTreeSetPrinter(object):
+    def __init__(self, val):
+        self.__val = val
+
+    @staticmethod
+    def display_hint():
+        return "array"
+
+    def to_string(self):
+        return (self.__val.type.get_unqualified_type_name() +
+                ("(len: %i)" % self.__val.get_wrapped_value()['map']['length']))
+
+    def children(self):
+        root = self.__val.get_wrapped_value()['map']['root']
+        node_ptr = root['node']
+        i = 0
+        for child in children_of_node(node_ptr, root['height'], False):
+            yield (str(i), child)
+            i = i + 1
+
+
+class RustStdBTreeMapPrinter(object):
+    def __init__(self, val):
+        self.__val = val
+
+    @staticmethod
+    def display_hint():
+        return "map"
+
+    def to_string(self):
+        return (self.__val.type.get_unqualified_type_name() +
+                ("(len: %i)" % self.__val.get_wrapped_value()['length']))
+
+    def children(self):
+        root = self.__val.get_wrapped_value()['root']
+        node_ptr = root['node']
+        i = 0
+        for child in children_of_node(node_ptr, root['height'], True):
+            yield (str(i), child[0])
+            yield (str(i), child[1])
+            i = i + 1
+
+
+class RustStdStringPrinter(object):
+    def __init__(self, val):
+        self.__val = val
+
+    def to_string(self):
+        vec = self.__val.get_child_at_index(0)
+        (length, data_ptr, cap) = rustpp.extract_length_ptr_and_cap_from_std_vec(vec)
+        return data_ptr.get_wrapped_value().lazy_string(encoding="utf-8",
+                                                        length=length)
+
+    def display_hint(self):
+        return "string"
+
+
+class RustOsStringPrinter(object):
+    def __init__(self, val):
+        self.__val = val
+
+    def to_string(self):
+        buf = self.__val.get_child_at_index(0)
+        vec = buf.get_child_at_index(0)
+        if vec.type.get_unqualified_type_name() == "Wtf8Buf":
+            vec = vec.get_child_at_index(0)
+
+        (length, data_ptr, cap) = rustpp.extract_length_ptr_and_cap_from_std_vec(
+            vec)
+        return data_ptr.get_wrapped_value().lazy_string(length=length)
+
+    def display_hint(self):
+        return "string"
+
+class RustCStyleVariantPrinter(object):
+    def __init__(self, val):
+        assert val.type.get_dwarf_type_kind() == rustpp.DWARF_TYPE_CODE_ENUM
+        self.__val = val
+
+    def to_string(self):
+        return str(self.__val.get_wrapped_value())
+
+
+class IdentityPrinter(object):
+    def __init__(self, string):
+        self.string = string
+
+    def to_string(self):
+        return self.string
+
+
+def get_field_at_index(gdb_val, index):
+    i = 0
+    for field in gdb_val.type.fields():
+        if i == index:
+            return field
+        i += 1
+    return None
diff --git a/linux-x86/1.36.0/lib/rustlib/etc/lldb_rust_formatters.py b/linux-x86/1.36.0/lib/rustlib/etc/lldb_rust_formatters.py
new file mode 100644
index 0000000..fdc1c4f
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/etc/lldb_rust_formatters.py
@@ -0,0 +1,301 @@
+import lldb
+import re
+import debugger_pretty_printers_common as rustpp
+
+#===============================================================================
+# LLDB Pretty Printing Module for Rust
+#===============================================================================
+
+class LldbType(rustpp.Type):
+
+    def __init__(self, ty):
+        super(LldbType, self).__init__()
+        self.ty = ty
+        self.fields = None
+
+    def get_unqualified_type_name(self):
+        qualified_name = self.ty.GetName()
+
+        if qualified_name is None:
+            return qualified_name
+
+        return rustpp.extract_type_name(qualified_name).replace("&'static ", "&")
+
+    def get_dwarf_type_kind(self):
+        type_class = self.ty.GetTypeClass()
+
+        if type_class == lldb.eTypeClassStruct:
+            return rustpp.DWARF_TYPE_CODE_STRUCT
+
+        if type_class == lldb.eTypeClassUnion:
+            return rustpp.DWARF_TYPE_CODE_UNION
+
+        if type_class == lldb.eTypeClassPointer:
+            return rustpp.DWARF_TYPE_CODE_PTR
+
+        if type_class == lldb.eTypeClassArray:
+            return rustpp.DWARF_TYPE_CODE_ARRAY
+
+        if type_class == lldb.eTypeClassEnumeration:
+            return rustpp.DWARF_TYPE_CODE_ENUM
+
+        return None
+
+    def get_fields(self):
+        assert ((self.get_dwarf_type_kind() == rustpp.DWARF_TYPE_CODE_STRUCT) or
+                (self.get_dwarf_type_kind() == rustpp.DWARF_TYPE_CODE_UNION))
+        if self.fields is None:
+            self.fields = list(self.ty.fields)
+        return self.fields
+
+    def get_wrapped_value(self):
+        return self.ty
+
+
+class LldbValue(rustpp.Value):
+    def __init__(self, lldb_val):
+        ty = lldb_val.type
+        wty = LldbType(ty)
+        super(LldbValue, self).__init__(wty)
+        self.lldb_val = lldb_val
+        self.children = {}
+
+    def get_child_at_index(self, index):
+        child = self.children.get(index)
+        if child is None:
+            lldb_field = self.lldb_val.GetChildAtIndex(index)
+            child = LldbValue(lldb_field)
+            self.children[index] = child
+        return child
+
+    def as_integer(self):
+        return self.lldb_val.GetValueAsUnsigned()
+
+    def get_wrapped_value(self):
+        return self.lldb_val
+
+
+def print_val(lldb_val, internal_dict):
+    val = LldbValue(lldb_val)
+    type_kind = val.type.get_type_kind()
+
+    if (type_kind == rustpp.TYPE_KIND_REGULAR_STRUCT or
+        type_kind == rustpp.TYPE_KIND_REGULAR_UNION or
+        type_kind == rustpp.TYPE_KIND_EMPTY):
+        return print_struct_val(val,
+                                internal_dict,
+                                omit_first_field = False,
+                                omit_type_name = False,
+                                is_tuple_like = False)
+
+    if type_kind == rustpp.TYPE_KIND_STRUCT_VARIANT:
+        return print_struct_val(val,
+                                internal_dict,
+                                omit_first_field = True,
+                                omit_type_name = False,
+                                is_tuple_like = False)
+
+    if type_kind == rustpp.TYPE_KIND_SLICE:
+        return print_vec_slice_val(val, internal_dict)
+
+    if type_kind == rustpp.TYPE_KIND_STR_SLICE:
+        return print_str_slice_val(val, internal_dict)
+
+    if type_kind == rustpp.TYPE_KIND_STD_VEC:
+        return print_std_vec_val(val, internal_dict)
+
+    if type_kind == rustpp.TYPE_KIND_STD_STRING:
+        return print_std_string_val(val, internal_dict)
+
+    if type_kind == rustpp.TYPE_KIND_TUPLE:
+        return print_struct_val(val,
+                                internal_dict,
+                                omit_first_field = False,
+                                omit_type_name = True,
+                                is_tuple_like = True)
+
+    if type_kind == rustpp.TYPE_KIND_TUPLE_STRUCT:
+        return print_struct_val(val,
+                                internal_dict,
+                                omit_first_field = False,
+                                omit_type_name = False,
+                                is_tuple_like = True)
+
+    if type_kind == rustpp.TYPE_KIND_CSTYLE_VARIANT:
+        return val.type.get_unqualified_type_name()
+
+    if type_kind == rustpp.TYPE_KIND_TUPLE_VARIANT:
+        return print_struct_val(val,
+                                internal_dict,
+                                omit_first_field = True,
+                                omit_type_name = False,
+                                is_tuple_like = True)
+
+    if type_kind == rustpp.TYPE_KIND_SINGLETON_ENUM:
+        return print_val(lldb_val.GetChildAtIndex(0), internal_dict)
+
+    if type_kind == rustpp.TYPE_KIND_PTR:
+        return print_pointer_val(val, internal_dict)
+
+    if type_kind == rustpp.TYPE_KIND_FIXED_SIZE_VEC:
+        return print_fixed_size_vec_val(val, internal_dict)
+
+    if type_kind == rustpp.TYPE_KIND_REGULAR_ENUM:
+        # This is a regular enum, extract the discriminant
+        discriminant_val = rustpp.get_discriminant_value_as_integer(val)
+        return print_val(lldb_val.GetChildAtIndex(discriminant_val), internal_dict)
+
+    if type_kind == rustpp.TYPE_KIND_COMPRESSED_ENUM:
+        encoded_enum_info = rustpp.EncodedEnumInfo(val)
+        if encoded_enum_info.is_null_variant():
+            return encoded_enum_info.get_null_variant_name()
+
+        non_null_val = encoded_enum_info.get_non_null_variant_val()
+        return print_val(non_null_val.get_wrapped_value(), internal_dict)
+
+    # No pretty printer has been found
+    return lldb_val.GetValue()
+
+
+#=--------------------------------------------------------------------------------------------------
+# Type-Specialized Printing Functions
+#=--------------------------------------------------------------------------------------------------
+
+def print_struct_val(val, internal_dict, omit_first_field, omit_type_name, is_tuple_like):
+    """
+    Prints a struct, tuple, or tuple struct value with Rust syntax.
+    Ignores any fields before field_start_index.
+    """
+    assert (val.type.get_dwarf_type_kind() == rustpp.DWARF_TYPE_CODE_STRUCT or
+            val.type.get_dwarf_type_kind() == rustpp.DWARF_TYPE_CODE_UNION)
+
+    if omit_type_name:
+        type_name = ""
+    else:
+        type_name = val.type.get_unqualified_type_name()
+
+    if is_tuple_like:
+        template = "%(type_name)s(%(body)s)"
+        separator = ", "
+    else:
+        template = "%(type_name)s {\n%(body)s\n}"
+        separator = ", \n"
+
+    fields = val.type.get_fields()
+
+    def render_child(child_index):
+        this = ""
+        if not is_tuple_like:
+            field_name = fields[child_index].name
+            this += field_name + ": "
+
+        field_val = val.get_child_at_index(child_index)
+
+        if not field_val.get_wrapped_value().IsValid():
+            field = fields[child_index]
+            # LLDB is not good at handling zero-sized values, so we have to help
+            # it a little
+            if field.GetType().GetByteSize() == 0:
+                return this + rustpp.extract_type_name(field.GetType().GetName())
+            else:
+                return this + "<invalid value>"
+
+        return this + print_val(field_val.get_wrapped_value(), internal_dict)
+
+    if omit_first_field:
+        field_start_index = 1
+    else:
+        field_start_index = 0
+
+    body = separator.join([render_child(idx) for idx in range(field_start_index, len(fields))])
+
+    return template % {"type_name": type_name,
+                       "body": body}
+
+def print_pointer_val(val, internal_dict):
+    """Prints a pointer value with Rust syntax"""
+    assert val.type.get_dwarf_type_kind() == rustpp.DWARF_TYPE_CODE_PTR
+    sigil = "&"
+    type_name = val.type.get_unqualified_type_name()
+    if type_name and type_name[0:1] in ["&", "*"]:
+        sigil = type_name[0:1]
+
+    return sigil + hex(val.as_integer())
+
+
+def print_fixed_size_vec_val(val, internal_dict):
+    assert val.type.get_dwarf_type_kind() == rustpp.DWARF_TYPE_CODE_ARRAY
+    lldb_val = val.get_wrapped_value()
+
+    output = "["
+
+    for i in range(lldb_val.num_children):
+        output += print_val(lldb_val.GetChildAtIndex(i), internal_dict)
+        if i != lldb_val.num_children - 1:
+            output += ", "
+
+    output += "]"
+    return output
+
+
+def print_vec_slice_val(val, internal_dict):
+    (length, data_ptr) = rustpp.extract_length_and_ptr_from_slice(val)
+    return "&[%s]" % print_array_of_values(val.get_wrapped_value().GetName(),
+                                           data_ptr,
+                                           length,
+                                           internal_dict)
+
+
+def print_std_vec_val(val, internal_dict):
+    (length, data_ptr, cap) = rustpp.extract_length_ptr_and_cap_from_std_vec(val)
+    return "vec![%s]" % print_array_of_values(val.get_wrapped_value().GetName(),
+                                              data_ptr,
+                                              length,
+                                              internal_dict)
+
+def print_str_slice_val(val, internal_dict):
+    (length, data_ptr) = rustpp.extract_length_and_ptr_from_slice(val)
+    return read_utf8_string(data_ptr, length)
+
+def print_std_string_val(val, internal_dict):
+    vec = val.get_child_at_index(0)
+    (length, data_ptr, cap) = rustpp.extract_length_ptr_and_cap_from_std_vec(vec)
+    return read_utf8_string(data_ptr, length)
+
+#=--------------------------------------------------------------------------------------------------
+# Helper Functions
+#=--------------------------------------------------------------------------------------------------
+
+def print_array_of_values(array_name, data_ptr_val, length, internal_dict):
+    """Prints a contiguous memory range, interpreting it as values of the
+       pointee-type of data_ptr_val."""
+
+    data_ptr_type = data_ptr_val.type
+    assert data_ptr_type.get_dwarf_type_kind() == rustpp.DWARF_TYPE_CODE_PTR
+
+    element_type = data_ptr_type.get_wrapped_value().GetPointeeType()
+    element_type_size = element_type.GetByteSize()
+
+    start_address = data_ptr_val.as_integer()
+    raw_value = data_ptr_val.get_wrapped_value()
+
+    def render_element(i):
+        address = start_address + i * element_type_size
+        element_val = raw_value.CreateValueFromAddress(array_name + ("[%s]" % i),
+                                                       address,
+                                                       element_type)
+        return print_val(element_val, internal_dict)
+
+    return ', '.join([render_element(i) for i in range(length)])
+
+
+def read_utf8_string(ptr_val, byte_count):
+    if byte_count == 0:
+        return '""'
+    error = lldb.SBError()
+    process = ptr_val.get_wrapped_value().GetProcess()
+    data = process.ReadMemory(ptr_val.as_integer(), byte_count, error)
+    if error.Success():
+        return '"%s"' % data.decode(encoding='UTF-8')
+    else:
+        return '<error: %s>' % error.GetCString()
diff --git a/linux-x86/1.36.0/lib/rustlib/install.log b/linux-x86/1.36.0/lib/rustlib/install.log
new file mode 100644
index 0000000..47e1578
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/install.log
@@ -0,0 +1,272 @@
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib"
+$ echo "3" > "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/rust-installer-version"
+install: creating uninstall script at /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/uninstall.sh
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/install.sh /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/uninstall.sh
+install: installing component 'rustc'
+$ echo "rustc" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/components"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-APACHE
+install: backing up existing file at /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-APACHE
+$ mv -f /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-APACHE /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-APACHE.old
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/share/doc/rust/LICENSE-APACHE /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-APACHE
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-APACHE
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-APACHE" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/COPYRIGHT
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/share/doc/rust/COPYRIGHT /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/COPYRIGHT
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/COPYRIGHT
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/COPYRIGHT" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-MIT
+install: backing up existing file at /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-MIT
+$ mv -f /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-MIT /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-MIT.old
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/share/doc/rust/LICENSE-MIT /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-MIT
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-MIT
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-MIT" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/README.md
+install: backing up existing file at /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/README.md
+$ mv -f /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/README.md /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/README.md.old
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/share/doc/rust/README.md /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/README.md
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/README.md
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/README.md" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/rustc.1
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/share/man/man1/rustc.1 /usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/rustc.1
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/rustc.1
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/rustc.1" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/rustdoc.1
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/share/man/man1/rustdoc.1 /usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/rustdoc.1
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/rustdoc.1
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/rustdoc.1" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libgraphviz-f246a4e4ae7648c6.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/libgraphviz-f246a4e4ae7648c6.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libgraphviz-f246a4e4ae7648c6.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libgraphviz-f246a4e4ae7648c6.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libgraphviz-f246a4e4ae7648c6.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_interface-c039b1a1b4c709b9.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_interface-c039b1a1b4c709b9.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_interface-c039b1a1b4c709b9.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_interface-c039b1a1b4c709b9.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_interface-c039b1a1b4c709b9.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libtest-e12b97740bbe44df.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/libtest-e12b97740bbe44df.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libtest-e12b97740bbe44df.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libtest-e12b97740bbe44df.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libtest-e12b97740bbe44df.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_fs_util-fb70fd313a88f5eb.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_fs_util-fb70fd313a88f5eb.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_fs_util-fb70fd313a88f5eb.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_fs_util-fb70fd313a88f5eb.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_fs_util-fb70fd313a88f5eb.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_codegen_utils-4aefae014d544759.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_codegen_utils-4aefae014d544759.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_codegen_utils-4aefae014d544759.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_codegen_utils-4aefae014d544759.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_codegen_utils-4aefae014d544759.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_cratesio_shim-2dbcd6bcbc099574.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_cratesio_shim-2dbcd6bcbc099574.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_cratesio_shim-2dbcd6bcbc099574.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_cratesio_shim-2dbcd6bcbc099574.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_cratesio_shim-2dbcd6bcbc099574.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libterm-c1dbb00662fc9c94.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/libterm-c1dbb00662fc9c94.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libterm-c1dbb00662fc9c94.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libterm-c1dbb00662fc9c94.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libterm-c1dbb00662fc9c94.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc-3300e8e198113593.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc-3300e8e198113593.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc-3300e8e198113593.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc-3300e8e198113593.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc-3300e8e198113593.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_lint-abbc7529ae1f7ec8.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_lint-abbc7529ae1f7ec8.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_lint-abbc7529ae1f7ec8.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_lint-abbc7529ae1f7ec8.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_lint-abbc7529ae1f7ec8.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_errors-7f34485564358c7d.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_errors-7f34485564358c7d.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_errors-7f34485564358c7d.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_errors-7f34485564358c7d.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_errors-7f34485564358c7d.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_borrowck-3c766a6adca9d997.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_borrowck-3c766a6adca9d997.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_borrowck-3c766a6adca9d997.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_borrowck-3c766a6adca9d997.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_borrowck-3c766a6adca9d997.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_macros-cbdde55a5f6f5849.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_macros-cbdde55a5f6f5849.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_macros-cbdde55a5f6f5849.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_macros-cbdde55a5f6f5849.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_macros-cbdde55a5f6f5849.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_allocator-abe85bca310bc21d.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_allocator-abe85bca310bc21d.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_allocator-abe85bca310bc21d.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_allocator-abe85bca310bc21d.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_allocator-abe85bca310bc21d.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_typeck-4fe67c0fc753abdc.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_typeck-4fe67c0fc753abdc.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_typeck-4fe67c0fc753abdc.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_typeck-4fe67c0fc753abdc.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_typeck-4fe67c0fc753abdc.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_incremental-d6b93b07cb2f71e0.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_incremental-d6b93b07cb2f71e0.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_incremental-d6b93b07cb2f71e0.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_incremental-d6b93b07cb2f71e0.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_incremental-d6b93b07cb2f71e0.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libLLVM-8-rust-1.36.0-dev.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/libLLVM-8-rust-1.36.0-dev.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libLLVM-8-rust-1.36.0-dev.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libLLVM-8-rust-1.36.0-dev.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libLLVM-8-rust-1.36.0-dev.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_driver-497048fa9308ab62.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_driver-497048fa9308ab62.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_driver-497048fa9308ab62.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_driver-497048fa9308ab62.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_driver-497048fa9308ab62.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_traits-ff3ef7222101b30b.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_traits-ff3ef7222101b30b.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_traits-ff3ef7222101b30b.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_traits-ff3ef7222101b30b.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_traits-ff3ef7222101b30b.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_data_structures-6334ac37df3ad4d0.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_data_structures-6334ac37df3ad4d0.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_data_structures-6334ac37df3ad4d0.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_data_structures-6334ac37df3ad4d0.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_data_structures-6334ac37df3ad4d0.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_passes-d689cb1c3dd3a92e.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_passes-d689cb1c3dd3a92e.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_passes-d689cb1c3dd3a92e.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_passes-d689cb1c3dd3a92e.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_passes-d689cb1c3dd3a92e.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_plugin-1153e370d3785b58.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_plugin-1153e370d3785b58.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_plugin-1153e370d3785b58.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_plugin-1153e370d3785b58.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_plugin-1153e370d3785b58.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_resolve-236b80197c0dddd3.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_resolve-236b80197c0dddd3.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_resolve-236b80197c0dddd3.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_resolve-236b80197c0dddd3.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_resolve-236b80197c0dddd3.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libstd-71500d2f6a24a380.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/libstd-71500d2f6a24a380.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libstd-71500d2f6a24a380.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libstd-71500d2f6a24a380.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libstd-71500d2f6a24a380.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libfmt_macros-52aee68cff723c5f.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/libfmt_macros-52aee68cff723c5f.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libfmt_macros-52aee68cff723c5f.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libfmt_macros-52aee68cff723c5f.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libfmt_macros-52aee68cff723c5f.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_metadata-e725f90b480b86c2.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_metadata-e725f90b480b86c2.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_metadata-e725f90b480b86c2.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_metadata-e725f90b480b86c2.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_metadata-e725f90b480b86c2.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libsyntax-d8dc76a7a18f8f1e.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/libsyntax-d8dc76a7a18f8f1e.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libsyntax-d8dc76a7a18f8f1e.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libsyntax-d8dc76a7a18f8f1e.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libsyntax-d8dc76a7a18f8f1e.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_save_analysis-463771dbc9817d4e.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_save_analysis-463771dbc9817d4e.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_save_analysis-463771dbc9817d4e.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_save_analysis-463771dbc9817d4e.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_save_analysis-463771dbc9817d4e.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_target-0770aec96e330b62.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_target-0770aec96e330b62.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_target-0770aec96e330b62.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_target-0770aec96e330b62.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_target-0770aec96e330b62.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_codegen_ssa-07d1cc36fe3fdfcb.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_codegen_ssa-07d1cc36fe3fdfcb.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_codegen_ssa-07d1cc36fe3fdfcb.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_codegen_ssa-07d1cc36fe3fdfcb.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_codegen_ssa-07d1cc36fe3fdfcb.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_privacy-46f29c0760f20fc7.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_privacy-46f29c0760f20fc7.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_privacy-46f29c0760f20fc7.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_privacy-46f29c0760f20fc7.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_privacy-46f29c0760f20fc7.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libserialize-43fdcd250d11ff59.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/libserialize-43fdcd250d11ff59.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libserialize-43fdcd250d11ff59.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libserialize-43fdcd250d11ff59.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libserialize-43fdcd250d11ff59.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libarena-15b8108102fe7b6c.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/libarena-15b8108102fe7b6c.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libarena-15b8108102fe7b6c.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libarena-15b8108102fe7b6c.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libarena-15b8108102fe7b6c.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_mir-6132102e5483a753.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/librustc_mir-6132102e5483a753.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_mir-6132102e5483a753.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_mir-6132102e5483a753.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_mir-6132102e5483a753.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libsyntax_pos-b50e75edc77b635b.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/libsyntax_pos-b50e75edc77b635b.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libsyntax_pos-b50e75edc77b635b.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libsyntax_pos-b50e75edc77b635b.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libsyntax_pos-b50e75edc77b635b.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/debugger_pretty_printers_common.py
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/rustlib/etc/debugger_pretty_printers_common.py /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/debugger_pretty_printers_common.py
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/debugger_pretty_printers_common.py
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/debugger_pretty_printers_common.py" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/gdb_rust_pretty_printing.py
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/rustlib/etc/gdb_rust_pretty_printing.py /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/gdb_rust_pretty_printing.py
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/gdb_rust_pretty_printing.py
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/gdb_rust_pretty_printing.py" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/gdb_load_rust_pretty_printers.py
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/rustlib/etc/gdb_load_rust_pretty_printers.py /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/gdb_load_rust_pretty_printers.py
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/gdb_load_rust_pretty_printers.py
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/gdb_load_rust_pretty_printers.py" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/lldb_rust_formatters.py
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/rustlib/etc/lldb_rust_formatters.py /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/lldb_rust_formatters.py
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/lldb_rust_formatters.py
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/lldb_rust_formatters.py" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends/librustc_codegen_llvm-llvm.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends/librustc_codegen_llvm-llvm.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends/librustc_codegen_llvm-llvm.so
+$ chmod 755 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends/librustc_codegen_llvm-llvm.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends/librustc_codegen_llvm-llvm.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libLLVM-8-rust-1.36.0-dev.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/rustlib/x86_64-unknown-linux-gnu/lib/libLLVM-8-rust-1.36.0-dev.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libLLVM-8-rust-1.36.0-dev.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libLLVM-8-rust-1.36.0-dev.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libLLVM-8-rust-1.36.0-dev.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libsyntax_ext-5c124e15bc9737c8.so
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/lib/libsyntax_ext-5c124e15bc9737c8.so /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libsyntax_ext-5c124e15bc9737c8.so
+$ chmod 644 /usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libsyntax_ext-5c124e15bc9737c8.so
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libsyntax_ext-5c124e15bc9737c8.so" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/bin"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rust-lldb
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/bin/rust-lldb /usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rust-lldb
+$ chmod 755 /usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rust-lldb
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rust-lldb" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/bin"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rustc
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/bin/rustc /usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rustc
+$ chmod 755 /usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rustc
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rustc" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/bin"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rust-gdbgui
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/bin/rust-gdbgui /usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rust-gdbgui
+$ chmod 755 /usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rust-gdbgui
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rust-gdbgui" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/bin"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rust-gdb
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/bin/rust-gdb /usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rust-gdb
+$ chmod 755 /usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rust-gdb
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rust-gdb" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
+$ umask 022 && mkdir -p "/usr/local/google/buildbot/src/android/rust-toolchain/out/bin"
+install: copying file /usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rustdoc
+$ cp /usr/local/google/buildbot/src/android/rust-toolchain/toolchain/rustc/build/tmp/dist/rustc-1.36.0-dev-x86_64-unknown-linux-gnu/rustc/bin/rustdoc /usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rustdoc
+$ chmod 755 /usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rustdoc
+$ echo "file:/usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rustdoc" >> "/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/manifest-rustc"
diff --git a/linux-x86/1.36.0/lib/rustlib/manifest-cargo b/linux-x86/1.36.0/lib/rustlib/manifest-cargo
new file mode 100644
index 0000000..5610436
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/manifest-cargo
@@ -0,0 +1,37 @@
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-APACHE
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-THIRD-PARTY
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-MIT
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/README.md
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-run.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-package.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-search.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-rustc.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-owner.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-verify-project.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-build.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-init.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-metadata.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-pkgid.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-login.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-fetch.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-test.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-install.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-bench.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-uninstall.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-locate-project.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-publish.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-rustdoc.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-check.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-update.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-new.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-yank.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-version.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-doc.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-fix.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-generate-lockfile.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-help.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/cargo-clean.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/zsh/site-functions/_cargo
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/etc/bash_completion.d/cargo
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/bin/cargo
diff --git a/linux-x86/1.36.0/lib/rustlib/manifest-rust-std-aarch64-linux-android b/linux-x86/1.36.0/lib/rustlib/manifest-rust-std-aarch64-linux-android
new file mode 100644
index 0000000..cc6076b
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/manifest-rust-std-aarch64-linux-android
@@ -0,0 +1,21 @@
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/libpanic_unwind-c524fcd590d73f80.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/libhashbrown-f30027a2d4c11fb9.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/libtest-e12b97740bbe44df.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/libstd-5670ffe63dd60caa.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/librustc_std_workspace_core-6e742c4724cdd5aa.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/libcompiler_builtins-4bb405269e28536e.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/libterm-c1dbb00662fc9c94.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/libbacktrace_sys-63f8ca1a70a2e6d9.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/libstd-5670ffe63dd60caa.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/libterm-c1dbb00662fc9c94.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/liblibc-c9696e9c8091df22.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/liballoc-350717e989e96610.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/librustc_demangle-d6f9829aedbc1969.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/libproc_macro-0039d1ebb4ca4988.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/libcore-48027e7c54c6c260.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/libunicode_width-cc96e3e219087296.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/libpanic_abort-657e836680377c20.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/librustc_std_workspace_alloc-e27b3a259bac03c7.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/libunwind-6460f2c7cfc35d55.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/libgetopts-a6a1a33d083a01df.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/aarch64-linux-android/lib/libtest-e12b97740bbe44df.rlib
diff --git a/linux-x86/1.36.0/lib/rustlib/manifest-rust-std-arm-linux-androideabi b/linux-x86/1.36.0/lib/rustlib/manifest-rust-std-arm-linux-androideabi
new file mode 100644
index 0000000..41a0631
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/manifest-rust-std-arm-linux-androideabi
@@ -0,0 +1,21 @@
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/libpanic_unwind-c524fcd590d73f80.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/libhashbrown-f30027a2d4c11fb9.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/libtest-e12b97740bbe44df.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/libstd-5670ffe63dd60caa.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/librustc_std_workspace_core-6e742c4724cdd5aa.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/libcompiler_builtins-4bb405269e28536e.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/libterm-c1dbb00662fc9c94.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/libbacktrace_sys-63f8ca1a70a2e6d9.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/libstd-5670ffe63dd60caa.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/libterm-c1dbb00662fc9c94.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/liblibc-c9696e9c8091df22.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/liballoc-350717e989e96610.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/librustc_demangle-d6f9829aedbc1969.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/libproc_macro-0039d1ebb4ca4988.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/libcore-48027e7c54c6c260.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/libunicode_width-cc96e3e219087296.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/libpanic_abort-657e836680377c20.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/librustc_std_workspace_alloc-e27b3a259bac03c7.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/libunwind-6460f2c7cfc35d55.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/libgetopts-a6a1a33d083a01df.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/arm-linux-androideabi/lib/libtest-e12b97740bbe44df.rlib
diff --git a/linux-x86/1.36.0/lib/rustlib/manifest-rust-std-x86_64-unknown-linux-gnu b/linux-x86/1.36.0/lib/rustlib/manifest-rust-std-x86_64-unknown-linux-gnu
new file mode 100644
index 0000000..2b66807
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/manifest-rust-std-x86_64-unknown-linux-gnu
@@ -0,0 +1,123 @@
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libvoid-25cc79745defbedc.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-da20f4d4f83469fe.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_apfloat-e9f2e7995c8d5fb0.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-a68d88c8cfa0d338.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-c524fcd590d73f80.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libparking_lot-4fc563ce07fb2e82.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libeither-9f09c65ee280f5f7.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-f30027a2d4c11fb9.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libsmallvec-fe98416c7ac028dc.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgraphviz-f246a4e4ae7648c6.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblog-e4e651657749ed92.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_lsan-958f06ef3edb698e.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_interface-c039b1a1b4c709b9.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-e12b97740bbe44df.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_fs_util-fb70fd313a88f5eb.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_codegen_utils-4aefae014d544759.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-6e742c4724cdd5aa.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-71500d2f6a24a380.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_xorshift-0374f252fd70a8a8.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-4bb405269e28536e.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_cratesio_shim-2dbcd6bcbc099574.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcrc32fast-77a50dbe352298aa.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhumantime-92530863fdf2daaa.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libterm-c1dbb00662fc9c94.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-3300e8e198113593.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_tsan-ce171fe19071ced9.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserde_json-8d550a68b0c39e30.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libatty-07673873b631b877.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6364cb93eedf37d0.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_lint-abbc7529ae1f7ec8.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_sys-c20ac9cbf047e1dd.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libremove_dir_all-ce82537d21f7cdf4.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_errors-7f34485564358c7d.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libchalk_macros-2118a4af817b586e.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcrossbeam_epoch-fe365af71a498cf4.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libscopeguard-87bcc833189e4f90.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libnodrop-ef2f0adb09317be4.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librls_span-388057c97d791fc0.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblog_settings-0af8afd35f1ce612.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libowning_ref-807fda27c7bb201d.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_borrowck-3c766a6adca9d997.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libflate2-139b19e649ca5cd3.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_macros-cbdde55a5f6f5849.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_allocator-abe85bca310bc21d.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_typeck-4fe67c0fc753abdc.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_incremental-d6b93b07cb2f71e0.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-63f8ca1a70a2e6d9.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_hc-2640b4429632e0f1.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-b9c9787cc88f73d9.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_driver-497048fa9308ab62.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_traits-ff3ef7222101b30b.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libterm-c1dbb00662fc9c94.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-c9696e9c8091df22.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace-7a7322c73f3c3cc6.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_data_structures-6334ac37df3ad4d0.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemoffset-212db432ada80b72.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbyteorder-ebfa7bb547e5541b.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libitoa-0b06f18ace3223b6.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-350717e989e96610.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libparking_lot_core-d1f1633311122fbb.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_asan-98eed6b8728a005d.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libryu-4a20c93bd8253e00.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_msan-1c1a96a396401dde.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_passes-d689cb1c3dd3a92e.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librls_data-274044375f5be448.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libscoped_tls-af4fa57ee445b02b.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserde-bb2ee07afa357acf.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_chacha-e9c5331ef6b762f0.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-d6f9829aedbc1969.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libproc_macro-0039d1ebb4ca4988.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libarrayvec-3bcab11b5feb8d1c.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmeasureme-5ab6ab6b18dc0a73.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand-99530f372e8b6398.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpolonius_engine-362b1f6e527cc8c2.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_plugin-1153e370d3785b58.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblazy_static-8c681f903c95ea09.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libnum_cpus-17073120482b69bb.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-48027e7c54c6c260.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_resolve-236b80197c0dddd3.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_pcg-b39109cf86741ebe.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcrossbeam_utils-fbf7aa320d6de640.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-71500d2f6a24a380.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblock_api-487816e75817fca5.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtempfile-228598f03a40ba24.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_hash-4f61417e0cd45572.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-cc96e3e219087296.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtermcolor-14da1e99e4710ea4.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbitflags-f643a02f1c13e39b.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libdatafrog-efd5e0749e15af3a.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libchalk_engine-7a376ac85f001c6d.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libfmt_macros-52aee68cff723c5f.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemmap-5574c9ff56499f18.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-310e9dbe009032de.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_metadata-e725f90b480b86c2.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libsyntax-d8dc76a7a18f8f1e.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_save_analysis-463771dbc9817d4e.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_core-0ae11d1ff504267f.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libjobserver-e98c573cf98e8c29.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcrossbeam_deque-6bf5151b8eef7382.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_target-0770aec96e330b62.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_abort-657e836680377c20.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libena-c647e314d3e9649b.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_codegen_ssa-07d1cc36fe3fdfcb.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_privacy-46f29c0760f20fc7.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcc-437be2bfd9b76cc7.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_isaac-175eaf1242ec7dcb.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserialize-43fdcd250d11ff59.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserialize-43fdcd250d11ff59.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_rayon_core-66b99d3a9cd6b16a.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libarena-15b8108102fe7b6c.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-e27b3a259bac03c7.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_rayon-7275d0646e7e9844.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_mir-6132102e5483a753.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-6460f2c7cfc35d55.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libenv_logger-20710b59695948dc.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libquick_error-fcf6efdced657ce7.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-a6a1a33d083a01df.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-e12b97740bbe44df.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libsyntax_pos-b50e75edc77b635b.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunreachable-ffcab976bd65d036.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstable_deref_trait-d188b0f436e934fe.rlib
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libsyntax_ext-5c124e15bc9737c8.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblazy_static-45a335de3f5bf91e.rlib
diff --git a/linux-x86/1.36.0/lib/rustlib/manifest-rustc b/linux-x86/1.36.0/lib/rustlib/manifest-rustc
new file mode 100644
index 0000000..319720e
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/manifest-rustc
@@ -0,0 +1,52 @@
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-APACHE
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/COPYRIGHT
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/LICENSE-MIT
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/doc/rust/README.md
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/rustc.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/share/man/man1/rustdoc.1
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libgraphviz-f246a4e4ae7648c6.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_interface-c039b1a1b4c709b9.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libtest-e12b97740bbe44df.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_fs_util-fb70fd313a88f5eb.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_codegen_utils-4aefae014d544759.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_cratesio_shim-2dbcd6bcbc099574.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libterm-c1dbb00662fc9c94.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc-3300e8e198113593.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_lint-abbc7529ae1f7ec8.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_errors-7f34485564358c7d.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_borrowck-3c766a6adca9d997.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_macros-cbdde55a5f6f5849.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_allocator-abe85bca310bc21d.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_typeck-4fe67c0fc753abdc.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_incremental-d6b93b07cb2f71e0.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libLLVM-8-rust-1.36.0-dev.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_driver-497048fa9308ab62.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_traits-ff3ef7222101b30b.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_data_structures-6334ac37df3ad4d0.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_passes-d689cb1c3dd3a92e.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_plugin-1153e370d3785b58.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_resolve-236b80197c0dddd3.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libstd-71500d2f6a24a380.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libfmt_macros-52aee68cff723c5f.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_metadata-e725f90b480b86c2.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libsyntax-d8dc76a7a18f8f1e.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_save_analysis-463771dbc9817d4e.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_target-0770aec96e330b62.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_codegen_ssa-07d1cc36fe3fdfcb.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_privacy-46f29c0760f20fc7.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libserialize-43fdcd250d11ff59.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libarena-15b8108102fe7b6c.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/librustc_mir-6132102e5483a753.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libsyntax_pos-b50e75edc77b635b.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/debugger_pretty_printers_common.py
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/gdb_rust_pretty_printing.py
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/gdb_load_rust_pretty_printers.py
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/etc/lldb_rust_formatters.py
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends/librustc_codegen_llvm-llvm.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/rustlib/x86_64-unknown-linux-gnu/lib/libLLVM-8-rust-1.36.0-dev.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/lib/libsyntax_ext-5c124e15bc9737c8.so
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rust-lldb
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rustc
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rust-gdbgui
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rust-gdb
+file:/usr/local/google/buildbot/src/android/rust-toolchain/out/bin/rustdoc
diff --git a/linux-x86/1.36.0/lib/rustlib/rust-installer-version b/linux-x86/1.36.0/lib/rustlib/rust-installer-version
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/rust-installer-version
@@ -0,0 +1 @@
+3
diff --git a/linux-x86/1.36.0/lib/rustlib/uninstall.sh b/linux-x86/1.36.0/lib/rustlib/uninstall.sh
new file mode 100755
index 0000000..9c70b5f
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/uninstall.sh
@@ -0,0 +1,987 @@
+#!/bin/bash
+# Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+# file at the top-level directory of this distribution and at
+# http://rust-lang.org/COPYRIGHT.
+#
+# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+# option. This file may not be copied, modified, or distributed
+# except according to those terms.
+
+# No undefined variables
+set -u
+
+init_logging() {
+    local _abs_libdir="$1"
+    local _logfile="$_abs_libdir/$TEMPLATE_REL_MANIFEST_DIR/install.log"
+    rm -f "$_logfile"
+    need_ok "failed to remove old installation log"
+    touch "$_logfile"
+    need_ok "failed to create installation log"
+    LOGFILE="$_logfile"
+}
+
+log_line() {
+    local _line="$1"
+
+    if [ -n "${LOGFILE-}" -a -e "${LOGFILE-}" ]; then
+	echo "$_line" >> "$LOGFILE"
+	# Ignore errors, which may happen e.g. after the manifest dir is deleted
+    fi
+}
+
+msg() {
+    local _line="install: ${1-}"
+    echo "$_line"
+    log_line "$_line"
+}
+
+verbose_msg() {
+    if [ -n "${CFG_VERBOSE-}" ]; then
+	msg "${1-}"
+    else
+	log_line "install: ${1-}"
+    fi
+}
+
+step_msg() {
+    msg
+    msg "$1"
+    msg
+}
+
+verbose_step_msg() {
+    if [ -n "${CFG_VERBOSE-}" ]; then
+	msg
+	msg "$1"
+	msg
+    else
+	log_line ""
+	log_line "install: $1"
+	log_line ""
+    fi
+}
+
+warn() {
+    local _line="install: WARNING: $1"
+    echo "$_line" >&2
+    log_line "$_line"
+}
+
+err() {
+    local _line="install: error: $1"
+    echo "$_line" >&2
+    log_line "$_line"
+    exit 1
+}
+
+# A non-user error that is likely to result in a corrupted install
+critical_err() {
+    local _line="install: error: $1. see logs at '${LOGFILE-}'"
+    echo "$_line" >&2
+    log_line "$_line"
+    exit 1
+}
+
+need_ok() {
+    if [ $? -ne 0 ]
+    then
+        err "$1"
+    fi
+}
+
+critical_need_ok() {
+    if [ $? -ne 0 ]
+    then
+        critical_err "$1"
+    fi
+}
+
+want_ok() {
+    if [ $? -ne 0 ]; then
+	warn "$1"
+    fi
+}
+
+assert_nz() {
+    if [ -z "$1" ]; then err "assert_nz $2"; fi
+}
+
+need_cmd() {
+    if command -v $1 >/dev/null 2>&1
+    then verbose_msg "found $1"
+    else err "need $1"
+    fi
+}
+
+run() {
+    local _line="\$ $*"
+    "$@"
+    local _retval=$?
+    log_line "$_line"
+    return $_retval
+}
+
+write_to_file() {
+    local _msg="$1"
+    local _file="$2"
+    local _line="$ echo \"$_msg\" > \"$_file\""
+    echo "$_msg" > "$_file"
+    local _retval=$?
+    log_line "$_line"
+    return $_retval
+}
+
+append_to_file() {
+    local _msg="$1"
+    local _file="$2"
+    local _line="$ echo \"$_msg\" >> \"$_file\""
+    echo "$_msg" >> "$_file"
+    local _retval=$?
+    log_line "$_line"
+    return $_retval
+}
+
+make_dir_recursive() {
+    local _dir="$1"
+    local _line="$ umask 022 && mkdir -p \"$_dir\""
+    umask 022 && mkdir -p "$_dir"
+    local _retval=$?
+    log_line "$_line"
+    return $_retval
+}
+
+putvar() {
+    local t
+    local tlen
+    eval t=\$$1
+    eval tlen=\${#$1}
+}
+
+valopt() {
+    VAL_OPTIONS="$VAL_OPTIONS $1"
+
+    local op=$1
+    local default=$2
+    shift
+    shift
+    local doc="$*"
+    if [ $HELP -eq 0 ]
+    then
+        local uop=$(echo $op | tr '[:lower:]' '[:upper:]' | tr '\-' '\_')
+        local v="CFG_${uop}"
+        eval $v="$default"
+        for arg in $CFG_ARGS
+        do
+            if echo "$arg" | grep -q -- "--$op="
+            then
+                local val=$(echo "$arg" | cut -f2 -d=)
+                eval $v=$val
+            fi
+        done
+        putvar $v
+    else
+        if [ -z "$default" ]
+        then
+            default="<none>"
+        fi
+        op="${op}=[${default}]"
+        printf "    --%-30s %s\n" "$op" "$doc"
+    fi
+}
+
+opt() {
+    BOOL_OPTIONS="$BOOL_OPTIONS $1"
+
+    local op=$1
+    local default=$2
+    shift
+    shift
+    local doc="$*"
+    local flag=""
+
+    if [ $default -eq 0 ]
+    then
+        flag="enable"
+    else
+        flag="disable"
+        doc="don't $doc"
+    fi
+
+    if [ $HELP -eq 0 ]
+    then
+        for arg in $CFG_ARGS
+        do
+            if [ "$arg" = "--${flag}-${op}" ]
+            then
+                op=$(echo $op | tr 'a-z-' 'A-Z_')
+                flag=$(echo $flag | tr 'a-z' 'A-Z')
+                local v="CFG_${flag}_${op}"
+                eval $v=1
+                putvar $v
+            fi
+        done
+    else
+        if [ ! -z "${META-}" ]
+        then
+            op="$op=<$META>"
+        fi
+        printf "    --%-30s %s\n" "$flag-$op" "$doc"
+     fi
+}
+
+flag() {
+    BOOL_OPTIONS="$BOOL_OPTIONS $1"
+
+    local op=$1
+    shift
+    local doc="$*"
+
+    if [ $HELP -eq 0 ]
+    then
+        for arg in $CFG_ARGS
+        do
+            if [ "$arg" = "--${op}" ]
+            then
+                op=$(echo $op | tr 'a-z-' 'A-Z_')
+                local v="CFG_${op}"
+                eval $v=1
+                putvar $v
+            fi
+        done
+    else
+        if [ ! -z "${META-}" ]
+        then
+            op="$op=<$META>"
+        fi
+        printf "    --%-30s %s\n" "$op" "$doc"
+     fi
+}
+
+validate_opt () {
+    for arg in $CFG_ARGS
+    do
+        local is_arg_valid=0
+        for option in $BOOL_OPTIONS
+        do
+            if test --disable-$option = $arg
+            then
+                is_arg_valid=1
+            fi
+            if test --enable-$option = $arg
+            then
+                is_arg_valid=1
+            fi
+            if test --$option = $arg
+            then
+                is_arg_valid=1
+            fi
+        done
+        for option in $VAL_OPTIONS
+        do
+            if echo "$arg" | grep -q -- "--$option="
+            then
+                is_arg_valid=1
+            fi
+        done
+        if [ "$arg" = "--help" ]
+        then
+            echo
+            echo "No more help available for Configure options,"
+            echo "check the Wiki or join our IRC channel"
+            break
+        else
+            if test $is_arg_valid -eq 0
+            then
+                err "Option '$arg' is not recognized"
+            fi
+        fi
+    done
+}
+
+absolutify() {
+    local file_path="$1"
+    local file_path_dirname="$(dirname "$file_path")"
+    local file_path_basename="$(basename "$file_path")"
+    local file_abs_path="$(abs_path "$file_path_dirname")"
+    local file_path="$file_abs_path/$file_path_basename"
+    # This is the return value
+    RETVAL="$file_path"
+}
+
+# Prints the absolute path of a directory to stdout
+abs_path() {
+    local path="$1"
+    # Unset CDPATH because it causes havok: it makes the destination unpredictable
+    # and triggers 'cd' to print the path to stdout. Route `cd`'s output to /dev/null
+    # for good measure.
+    (unset CDPATH && cd "$path" > /dev/null && pwd)
+}
+
+uninstall_legacy() {
+    local _abs_libdir="$1"
+
+    local _uninstalled_something=false
+
+    # Replace commas in legacy manifest list with spaces
+    _legacy_manifest_dirs=`echo "$TEMPLATE_LEGACY_MANIFEST_DIRS" | sed "s/,/ /g"`
+
+    # Uninstall from legacy manifests
+    local _md
+    for _md in $_legacy_manifest_dirs; do
+	# First, uninstall from the installation prefix.
+	# Errors are warnings - try to rm everything in the manifest even if some fail.
+	if [ -f "$_abs_libdir/$_md/manifest" ]
+	then
+
+	    # iterate through installed manifest and remove files
+	    local _p;
+	    while read _p; do
+		# the installed manifest contains absolute paths
+		msg "removing legacy file $_p"
+		if [ -f "$_p" ]
+		then
+		    run rm -f "$_p"
+		    want_ok "failed to remove $_p"
+		else
+		    warn "supposedly installed file $_p does not exist!"
+		fi
+	    done < "$_abs_libdir/$_md/manifest"
+
+	    # If we fail to remove $md below, then the
+	    # installed manifest will still be full; the installed manifest
+	    # needs to be empty before install.
+	    msg "removing legacy manifest $_abs_libdir/$_md/manifest"
+	    run rm -f "$_abs_libdir/$_md/manifest"
+	    # For the above reason, this is a hard error
+	    need_ok "failed to remove installed manifest"
+
+	    # Remove $template_rel_manifest_dir directory
+	    msg "removing legacy manifest dir $_abs_libdir/$_md"
+	    run rm -R "$_abs_libdir/$_md"
+	    want_ok "failed to remove $_md"
+
+	    _uninstalled_something=true
+	fi
+    done
+
+    RETVAL="$_uninstalled_something"
+}
+
+uninstall_components() {
+    local _abs_libdir="$1"
+    local _dest_prefix="$2"
+    local _components="$3"
+
+    # We're going to start by uninstalling existing components. This
+    local _uninstalled_something=false
+
+    # First, try removing any 'legacy' manifests from before
+    # rust-installer
+    uninstall_legacy "$_abs_libdir"
+    assert_nz "$RETVAL", "RETVAL"
+    if [ "$RETVAL" = true ]; then
+	_uninstalled_something=true;
+    fi
+
+    # Load the version of the installed installer
+    local _installed_version=
+    if [ -f "$abs_libdir/$TEMPLATE_REL_MANIFEST_DIR/rust-installer-version" ]; then
+	_installed_version=`cat "$_abs_libdir/$TEMPLATE_REL_MANIFEST_DIR/rust-installer-version"`
+
+	# Sanity check
+	if [ ! -n "$_installed_version" ]; then critical_err "rust installer version is empty"; fi
+    fi
+
+    # If there's something installed, then uninstall
+    if [ -n "$_installed_version" ]; then
+	# Check the version of the installed installer
+	case "$_installed_version" in
+
+	    # If this is a previous version, then upgrade in place to the
+	    # current version before uninstalling.
+	    2 )
+		# The only change between version 2 -> 3 is that components are placed
+		# in subdirectories of the installer tarball. There are no changes
+		# to the installed data format, so nothing to do.
+		;;
+
+	    # This is the current version. Nothing need to be done except uninstall.
+	    "$TEMPLATE_RUST_INSTALLER_VERSION")
+		;;
+
+	    # If this is an unknown (future) version then bail.
+	    * )
+		echo "The copy of $TEMPLATE_PRODUCT_NAME at $_dest_prefix was installed using an"
+		echo "unknown version ($_installed_version) of rust-installer."
+		echo "Uninstall it first with the installer used for the original installation"
+		echo "before continuing."
+		exit 1
+		;;
+	esac
+
+	local _md="$_abs_libdir/$TEMPLATE_REL_MANIFEST_DIR"
+	local _installed_components="$(cat "$_md/components")"
+
+	# Uninstall (our components only) before reinstalling
+	local _available_component
+	for _available_component in $_components; do
+	    local _installed_component
+	    for _installed_component in $_installed_components; do
+		if [ "$_available_component" = "$_installed_component" ]; then
+		    msg "uninstalling component '$_available_component'"
+		    local _component_manifest="$_md/manifest-$_installed_component"
+
+		    # Sanity check: there should be a component manifest
+		    if [ ! -f "$_component_manifest" ]; then
+			critical_err "installed component '$_installed_component' has no manifest"
+		    fi
+
+		    # Iterate through installed component manifest and remove files
+		    local _directive
+		    while read _directive; do
+
+			local _command=`echo $_directive | cut -f1 -d:`
+			local _file=`echo $_directive | cut -f2 -d:`
+
+			# Sanity checks
+			if [ ! -n "$_command" ]; then critical_err "malformed installation directive"; fi
+			if [ ! -n "$_file" ]; then critical_err "malformed installation directive"; fi
+
+			case "$_command" in
+			    file)
+				verbose_msg "removing file $_file"
+				if [ -f "$_file" ]; then
+				    run rm -f "$_file"
+				    want_ok "failed to remove $_file"
+				else
+				    warn "supposedly installed file $_file does not exist!"
+				fi
+				;;
+
+			    dir)
+				verbose_msg "removing directory $_file"
+				run rm -r "$_file"
+				want_ok "unable to remove directory $_file"
+				;;
+
+			    *)
+				critical_err "unknown installation directive"
+				;;
+			esac
+
+		    done < "$_component_manifest"
+
+		    # Remove the installed component manifest
+		    verbose_msg "removing component manifest $_component_manifest"
+		    run rm "$_component_manifest"
+		    # This is a hard error because the installation is unrecoverable
+		    critical_need_ok "failed to remove installed manifest for component '$_installed_component'"
+
+		    # Update the installed component list
+		    local _modified_components="$(sed "/^$_installed_component\$/d" "$_md/components")"
+		    write_to_file "$_modified_components" "$_md/components"
+		    critical_need_ok "failed to update installed component list"
+		fi
+	    done
+	done
+
+	# If there are no remaining components delete the manifest directory,
+	# but only if we're doing an uninstall - if we're doing an install,
+	# then leave the manifest directory around to hang onto the logs,
+	# and any files not managed by the installer.
+	if [ -n "${CFG_UNINSTALL-}" ]; then
+	    local _remaining_components="$(cat "$_md/components")"
+	    if [ ! -n "$_remaining_components" ]; then
+		verbose_msg "removing manifest directory $_md"
+		run rm -r "$_md"
+		want_ok "failed to remove $_md"
+
+		maybe_unconfigure_ld
+	    fi
+	fi
+
+	_uninstalled_something=true
+    fi
+
+    # There's no installed version. If we were asked to uninstall, then that's a problem.
+    if [ -n "${CFG_UNINSTALL-}" -a "$_uninstalled_something" = false ]
+    then
+	err "unable to find installation manifest at $CFG_LIBDIR/$TEMPLATE_REL_MANIFEST_DIR"
+    fi
+}
+
+install_components() {
+    local _src_dir="$1"
+    local _abs_libdir="$2"
+    local _dest_prefix="$3"
+    local _components="$4"
+
+    local _component
+    for _component in $_components; do
+
+	msg "installing component '$_component'"
+
+	# The file name of the manifest we're installing from
+	local _input_manifest="$_src_dir/$_component/manifest.in"
+
+	# Sanity check: do we have our input manifests?
+	if [ ! -f "$_input_manifest" ]; then
+	    critical_err "manifest for $_component does not exist at $_input_manifest"
+	fi
+
+	# The installed manifest directory
+	local _md="$_abs_libdir/$TEMPLATE_REL_MANIFEST_DIR"
+
+	# The file name of the manifest we're going to create during install
+	local _installed_manifest="$_md/manifest-$_component"
+
+	# Create the installed manifest, which we will fill in with absolute file paths
+	touch "$_installed_manifest"
+	critical_need_ok "failed to create installed manifest"
+
+	# Add this component to the installed component list
+	append_to_file "$_component" "$_md/components"
+	critical_need_ok "failed to update components list for $_component"
+
+	# Now install, iterate through the new manifest and copy files
+	local _directive
+	while read _directive; do
+
+	    local _command=`echo $_directive | cut -f1 -d:`
+	    local _file=`echo $_directive | cut -f2 -d:`
+
+	    # Sanity checks
+	    if [ ! -n "$_command" ]; then critical_err "malformed installation directive"; fi
+	    if [ ! -n "$_file" ]; then critical_err "malformed installation directive"; fi
+
+	    # Decide the destination of the file
+	    local _file_install_path="$_dest_prefix/$_file"
+
+	    if echo "$_file" | grep "^etc/" > /dev/null
+	    then
+		local _f="$(echo "$_file" | sed 's/^etc\///')"
+		_file_install_path="$CFG_SYSCONFDIR/$_f"
+	    fi
+
+	    if echo "$_file" | grep "^bin/" > /dev/null
+	    then
+		local _f="$(echo "$_file" | sed 's/^bin\///')"
+		_file_install_path="$CFG_BINDIR/$_f"
+	    fi
+
+	    if echo "$_file" | grep "^lib/" > /dev/null
+	    then
+		local _f="$(echo "$_file" | sed 's/^lib\///')"
+		_file_install_path="$CFG_LIBDIR/$_f"
+	    fi
+
+	    if echo "$_file" | grep "^share" > /dev/null
+	    then
+		local _f="$(echo "$_file" | sed 's/^share\///')"
+		_file_install_path="$CFG_DATADIR/$_f"
+	    fi
+
+	    if echo "$_file" | grep "^share/man/" > /dev/null
+	    then
+		local _f="$(echo "$_file" | sed 's/^share\/man\///')"
+		_file_install_path="$CFG_MANDIR/$_f"
+	    fi
+
+            # HACK: Try to support overriding --docdir.  Paths with the form
+            # "share/doc/$product/" can be redirected to a single --docdir
+            # path. If the following detects that --docdir has been specified
+            # then it will replace everything preceeding the "$product" path
+            # component. The problem here is that the combined rust installer
+            # contains two "products": rust and cargo; so the contents of those
+            # directories will both be dumped into the same directory; and the
+            # contents of those directories are _not_ disjoint. Since this feature
+            # is almost entirely to support 'make install' anyway I don't expect
+            # this problem to be a big deal in practice.
+            if [ "$CFG_DOCDIR" != "<default>" ]
+            then
+	        if echo "$_file" | grep "^share/doc/" > /dev/null
+	        then
+		    local _f="$(echo "$_file" | sed 's/^share\/doc\/[^/]*\///')"
+		    _file_install_path="$CFG_DOCDIR/$_f"
+	        fi
+            fi
+
+	    # Make sure there's a directory for it
+	    make_dir_recursive "$(dirname "$_file_install_path")"
+	    critical_need_ok "directory creation failed"
+
+	    # Make the path absolute so we can uninstall it later without
+	    # starting from the installation cwd
+	    absolutify "$_file_install_path"
+	    _file_install_path="$RETVAL"
+	    assert_nz "$_file_install_path" "file_install_path"
+
+	    case "$_command" in
+		file )
+
+		    verbose_msg "copying file $_file_install_path"
+
+		    maybe_backup_path "$_file_install_path"
+
+		    if echo "$_file" | grep "^bin/" > /dev/null || test -x "$_src_dir/$_component/$_file"
+		    then
+			run cp "$_src_dir/$_component/$_file" "$_file_install_path"
+			run chmod 755 "$_file_install_path"
+		    else
+			run cp "$_src_dir/$_component/$_file" "$_file_install_path"
+			run chmod 644 "$_file_install_path"
+		    fi
+		    critical_need_ok "file creation failed"
+
+		    # Update the manifest
+		    append_to_file "file:$_file_install_path" "$_installed_manifest"
+		    critical_need_ok "failed to update manifest"
+
+		    ;;
+
+		dir )
+
+		    verbose_msg "copying directory $_file_install_path"
+
+		    maybe_backup_path "$_file_install_path"
+
+		    run cp -R "$_src_dir/$_component/$_file" "$_file_install_path"
+		    critical_need_ok "failed to copy directory"
+
+                    # Set permissions. 0755 for dirs, 644 for files
+                    run chmod -R u+rwX,go+rX,go-w "$_file_install_path"
+                    critical_need_ok "failed to set permissions on directory"
+
+		    # Update the manifest
+		    append_to_file "dir:$_file_install_path" "$_installed_manifest"
+		    critical_need_ok "failed to update manifest"
+		    ;;
+
+		*)
+		    critical_err "unknown installation directive"
+		    ;;
+	    esac
+	done < "$_input_manifest"
+
+    done
+}
+
+maybe_configure_ld() {
+    local _abs_libdir="$1"
+
+    local _ostype="$(uname -s)"
+    assert_nz "$_ostype"  "ostype"
+
+    if [ "$_ostype" = "Linux" -a ! -n "${CFG_DISABLE_LDCONFIG-}" ]; then
+
+	# Fedora-based systems do not configure the dynamic linker to look
+	# /usr/local/lib, which is our default installation directory. To
+	# make things just work, try to put that directory in
+	# /etc/ld.so.conf.d/rust-installer-v1 so ldconfig picks it up.
+	# Issue #30.
+	#
+	# This will get rm'd when the last component is uninstalled in
+	# maybe_unconfigure_ld.
+	if [ "$_abs_libdir" = "/usr/local/lib" -a -d "/etc/ld.so.conf.d" ]; then
+	    echo "$_abs_libdir" > "/etc/ld.so.conf.d/rust-installer-v1-$TEMPLATE_REL_MANIFEST_DIR.conf"
+	    if [ $? -ne 0 ]; then
+		# This shouldn't happen if we've gotten this far
+		# installing to /usr/local
+		warn "failed to update /etc/ld.so.conf.d. this is unexpected"
+	    fi
+	fi
+
+	verbose_msg "running ldconfig"
+	if [ -n "${CFG_VERBOSE-}" ]; then
+	    ldconfig
+	else
+	    ldconfig 2> /dev/null
+	fi
+	if [ $? -ne 0 ]
+	then
+            warn "failed to run ldconfig. this may happen when not installing as root. run with --verbose to see the error"
+	fi
+    fi
+}
+
+maybe_unconfigure_ld() {
+    local _ostype="$(uname -s)"
+    assert_nz "$_ostype"  "ostype"
+
+    if [ "$_ostype" != "Linux" ]; then
+	return 0
+    fi
+
+    rm "/etc/ld.so.conf.d/rust-installer-v1-$TEMPLATE_REL_MANIFEST_DIR.conf" 2> /dev/null
+    # Above may fail since that file may not have been created on install
+}
+
+# Doing our own 'install'-like backup that is consistent across platforms
+maybe_backup_path() {
+    local _file_install_path="$1"
+
+    if [ -e "$_file_install_path" ]; then
+	msg "backing up existing file at $_file_install_path"
+	run mv -f "$_file_install_path" "$_file_install_path.old"
+	critical_need_ok "failed to back up $_file_install_path"
+    fi
+}
+
+install_uninstaller() {
+    local _src_dir="$1"
+    local _src_basename="$2"
+    local _abs_libdir="$3"
+
+    local _uninstaller="$_abs_libdir/$TEMPLATE_REL_MANIFEST_DIR/uninstall.sh"
+    msg "creating uninstall script at $_uninstaller"
+    run cp "$_src_dir/$_src_basename" "$_uninstaller"
+    critical_need_ok "unable to install uninstaller"
+}
+
+do_preflight_sanity_checks() {
+    local _src_dir="$1"
+    local _dest_prefix="$2"
+
+    # Sanity check: can we can write to the destination?
+    verbose_msg "verifying destination is writable"
+    make_dir_recursive "$CFG_LIBDIR"
+    need_ok "can't write to destination. consider \`sudo\`."
+    touch "$CFG_LIBDIR/rust-install-probe" > /dev/null
+    if [ $? -ne 0 ]
+    then
+	err "can't write to destination. consider \`sudo\`."
+    fi
+    rm "$CFG_LIBDIR/rust-install-probe"
+    need_ok "failed to remove install probe"
+
+    # Sanity check: don't install to the directory containing the installer.
+    # That would surely cause chaos.
+    verbose_msg "verifying destination is not the same as source"
+    local _prefix_dir="$(abs_path "$dest_prefix")"
+    if [ "$_src_dir" = "$_dest_prefix" -a "${CFG_UNINSTALL-}" != 1 ]; then
+	err "cannot install to same directory as installer"
+    fi
+}
+
+verbose_msg "looking for install programs"
+verbose_msg
+
+need_cmd mkdir
+need_cmd printf
+need_cmd cut
+need_cmd grep
+need_cmd uname
+need_cmd tr
+need_cmd sed
+need_cmd chmod
+need_cmd env
+need_cmd pwd
+
+CFG_ARGS="${@:-}"
+
+HELP=0
+if [ "${1-}" = "--help" ]
+then
+    HELP=1
+    shift
+    echo
+    echo "Usage: $0 [options]"
+    echo
+    echo "Options:"
+    echo
+else
+    verbose_step_msg "processing arguments"
+fi
+
+OPTIONS=""
+BOOL_OPTIONS=""
+VAL_OPTIONS=""
+
+flag uninstall "only uninstall from the installation prefix"
+valopt destdir "" "set installation root"
+valopt prefix "/usr/local" "set installation prefix"
+
+# Avoid prepending an extra / to the prefix path if there's no destdir
+# NB: CFG vars here are undefined when passing --help
+if [ -z "${CFG_DESTDIR-}" ]; then
+    CFG_DESTDIR_PREFIX="${CFG_PREFIX-}"
+else
+    CFG_DESTDIR_PREFIX="$CFG_DESTDIR/$CFG_PREFIX"
+fi
+
+# NB This isn't quite the same definition as in `configure`.
+# just using 'lib' instead of configure's CFG_LIBDIR_RELATIVE
+valopt without "" "comma-separated list of components to not install"
+valopt components "" "comma-separated list of components to install"
+flag list-components "list available components"
+valopt sysconfdir "$CFG_DESTDIR_PREFIX/etc" "install system configuration files"
+valopt bindir "$CFG_DESTDIR_PREFIX/bin" "install binaries"
+valopt libdir "$CFG_DESTDIR_PREFIX/lib" "install libraries"
+valopt datadir "$CFG_DESTDIR_PREFIX/share" "install data"
+# NB We repeat datadir default value because we don't set CFG_DATADIR in --help
+valopt mandir "${CFG_DATADIR-"$CFG_DESTDIR_PREFIX/share"}/man" "install man pages in PATH"
+# NB See the docdir handling in install_components for an explanation of this
+# weird <default> string
+valopt docdir "\<default\>" "install documentation in PATH"
+opt ldconfig 1 "run ldconfig after installation (Linux only)"
+opt verify 1 "obsolete"
+flag verbose "run with verbose output"
+
+if [ $HELP -eq 1 ]
+then
+    echo
+    exit 0
+fi
+
+verbose_step_msg "validating arguments"
+validate_opt
+
+# Template configuration.
+# These names surrounded by '%%` are replaced by sed when generating install.sh
+# FIXME: Might want to consider loading this from a file and not generating install.sh
+
+# Rust or Cargo
+TEMPLATE_PRODUCT_NAME='Rust'
+# rustlib or cargo
+TEMPLATE_REL_MANIFEST_DIR=rustlib
+# 'Rust is ready to roll.' or 'Cargo is cool to cruise.'
+TEMPLATE_SUCCESS_MESSAGE='Rust is ready to roll.'
+# Locations to look for directories containing legacy, pre-versioned manifests
+TEMPLATE_LEGACY_MANIFEST_DIRS='rustlib,cargo'
+# The installer version
+TEMPLATE_RUST_INSTALLER_VERSION='3'
+
+# OK, let's get installing ...
+
+# This is where we are installing from
+src_dir="$(abs_path $(dirname "$0"))"
+
+# The name of the script
+src_basename="$(basename "$0")"
+
+# If we've been run as 'uninstall.sh' (from the existing installation)
+# then we're doing a full uninstall, as opposed to the --uninstall flag
+# which just means 'uninstall my components'.
+if [ "$src_basename" = "uninstall.sh" ]; then
+    if [ "${*:-}" != "" ]; then
+	# Currently don't know what to do with arguments in this mode
+	err "uninstall.sh does not take any arguments"
+    fi
+    CFG_UNINSTALL=1
+    CFG_DESTDIR_PREFIX="$(abs_path "$src_dir/../../")"
+    CFG_LIBDIR="$(abs_path "$src_dir/../")"
+fi
+
+# This is where we are installing to
+dest_prefix="$CFG_DESTDIR_PREFIX"
+
+# Open the components file to get the list of components to install.
+# NB: During install this components file is read from the installer's
+# source dir, during a full uninstall it's read from the manifest dir,
+# and thus contains all installed components.
+components=`cat "$src_dir/components"`
+
+# Sanity check: do we have components?
+if [ ! -n "$components" ]; then
+    err "unable to find installation components"
+fi
+
+# If the user asked for a component list, do that and exit
+if [ -n "${CFG_LIST_COMPONENTS-}" ]; then
+    echo
+    echo "# Available components"
+    echo
+    for component in $components; do
+	echo "* $component"
+    done
+    echo
+    exit 0
+fi
+
+# If the user specified which components to install/uninstall,
+# then validate that they exist and select them for installation
+if [ -n "$CFG_COMPONENTS" ]; then
+    # Remove commas
+    user_components="$(echo "$CFG_COMPONENTS" | sed "s/,/ /g")"
+    for user_component in $user_components; do
+	found=false
+	for my_component in $components; do
+	    if [ "$user_component" = "$my_component" ]; then
+		found=true
+	    fi
+	done
+	if [ "$found" = false ]; then
+	    err "unknown component: $user_component"
+	fi
+    done
+    components="$user_components"
+fi
+
+if [ -n "$CFG_WITHOUT" ]; then
+    without_components="$(echo "$CFG_WITHOUT" | sed "s/,/ /g")"
+    for without_component in $without_components; do
+	components="$(echo "$components" | sed "s/$without_component//" | sed "s/$without_component//")"
+    done
+fi
+
+if [ -z "$components" ]; then
+    if [ -z "${CFG_UNINSTALL-}" ]; then
+	err "no components selected for installation"
+    else
+	err "no components selected for uninstallation"
+    fi
+fi
+
+do_preflight_sanity_checks "$src_dir" "$dest_prefix"
+
+# Using an absolute path to libdir in a few places so that the status
+# messages are consistently using absolute paths.
+absolutify "$CFG_LIBDIR"
+abs_libdir="$RETVAL"
+assert_nz "$abs_libdir" "abs_libdir"
+
+# Create the manifest directory, where we will put our logs
+make_dir_recursive "$abs_libdir/$TEMPLATE_REL_MANIFEST_DIR"
+need_ok "failed to create $TEMPLATE_REL_MANIFEST_DIR"
+
+# Log messages and commands
+init_logging "$abs_libdir"
+
+# First do any uninstallation, including from legacy manifests. This
+# will also upgrade the metadata of existing installs.
+uninstall_components "$abs_libdir" "$dest_prefix" "$components"
+
+# If we're only uninstalling then exit
+if [ -n "${CFG_UNINSTALL-}" ]
+then
+    echo
+    echo "    $TEMPLATE_PRODUCT_NAME is uninstalled."
+    echo
+    exit 0
+fi
+
+# Create the manifest directory again! uninstall_legacy
+# may have deleted it.
+make_dir_recursive "$abs_libdir/$TEMPLATE_REL_MANIFEST_DIR"
+need_ok "failed to create $TEMPLATE_REL_MANIFEST_DIR"
+
+# Drop the version number into the manifest dir
+write_to_file "$TEMPLATE_RUST_INSTALLER_VERSION" "$abs_libdir/$TEMPLATE_REL_MANIFEST_DIR/rust-installer-version"
+critical_need_ok "failed to write installer version"
+
+# Install the uninstaller
+install_uninstaller "$src_dir" "$src_basename" "$abs_libdir"
+
+# Install each component
+install_components "$src_dir" "$abs_libdir" "$dest_prefix" "$components"
+
+# Make dynamic libraries available to the linker
+maybe_configure_ld "$abs_libdir"
+
+echo
+echo "    $TEMPLATE_SUCCESS_MESSAGE"
+echo
+
+
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends/librustc_codegen_llvm-llvm.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends/librustc_codegen_llvm-llvm.so
new file mode 100755
index 0000000..0e473e5
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/codegen-backends/librustc_codegen_llvm-llvm.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libLLVM-8-rust-1.36.0-dev.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libLLVM-8-rust-1.36.0-dev.so
new file mode 100644
index 0000000..43d92ff
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libLLVM-8-rust-1.36.0-dev.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-350717e989e96610.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-350717e989e96610.rlib
new file mode 100644
index 0000000..680196d
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-350717e989e96610.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libarena-15b8108102fe7b6c.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libarena-15b8108102fe7b6c.so
new file mode 100755
index 0000000..0209c0b
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libarena-15b8108102fe7b6c.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libarrayvec-3bcab11b5feb8d1c.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libarrayvec-3bcab11b5feb8d1c.rlib
new file mode 100644
index 0000000..70a08a7
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libarrayvec-3bcab11b5feb8d1c.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libatty-07673873b631b877.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libatty-07673873b631b877.rlib
new file mode 100644
index 0000000..d3ef346
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libatty-07673873b631b877.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace-7a7322c73f3c3cc6.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace-7a7322c73f3c3cc6.rlib
new file mode 100644
index 0000000..28e0448
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace-7a7322c73f3c3cc6.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-63f8ca1a70a2e6d9.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-63f8ca1a70a2e6d9.rlib
new file mode 100644
index 0000000..139d587
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-63f8ca1a70a2e6d9.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-a68d88c8cfa0d338.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-a68d88c8cfa0d338.rlib
new file mode 100644
index 0000000..f64cd04
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbacktrace_sys-a68d88c8cfa0d338.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbitflags-f643a02f1c13e39b.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbitflags-f643a02f1c13e39b.rlib
new file mode 100644
index 0000000..96af346
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbitflags-f643a02f1c13e39b.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbyteorder-ebfa7bb547e5541b.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbyteorder-ebfa7bb547e5541b.rlib
new file mode 100644
index 0000000..a50f64b
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libbyteorder-ebfa7bb547e5541b.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcc-437be2bfd9b76cc7.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcc-437be2bfd9b76cc7.rlib
new file mode 100644
index 0000000..9fc956b
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcc-437be2bfd9b76cc7.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-b9c9787cc88f73d9.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-b9c9787cc88f73d9.rlib
new file mode 100644
index 0000000..e9deaa6
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-b9c9787cc88f73d9.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libchalk_engine-7a376ac85f001c6d.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libchalk_engine-7a376ac85f001c6d.rlib
new file mode 100644
index 0000000..b93fc7d
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libchalk_engine-7a376ac85f001c6d.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libchalk_macros-2118a4af817b586e.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libchalk_macros-2118a4af817b586e.rlib
new file mode 100644
index 0000000..994e7d3
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libchalk_macros-2118a4af817b586e.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-4bb405269e28536e.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-4bb405269e28536e.rlib
new file mode 100644
index 0000000..85e6275
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-4bb405269e28536e.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-48027e7c54c6c260.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-48027e7c54c6c260.rlib
new file mode 100644
index 0000000..88af104
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-48027e7c54c6c260.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcrc32fast-77a50dbe352298aa.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcrc32fast-77a50dbe352298aa.rlib
new file mode 100644
index 0000000..7c1fc95
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcrc32fast-77a50dbe352298aa.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcrossbeam_deque-6bf5151b8eef7382.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcrossbeam_deque-6bf5151b8eef7382.rlib
new file mode 100644
index 0000000..2882ccb
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcrossbeam_deque-6bf5151b8eef7382.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcrossbeam_epoch-fe365af71a498cf4.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcrossbeam_epoch-fe365af71a498cf4.rlib
new file mode 100644
index 0000000..bd7fae7
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcrossbeam_epoch-fe365af71a498cf4.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcrossbeam_utils-fbf7aa320d6de640.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcrossbeam_utils-fbf7aa320d6de640.rlib
new file mode 100644
index 0000000..b2bbb17
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcrossbeam_utils-fbf7aa320d6de640.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libdatafrog-efd5e0749e15af3a.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libdatafrog-efd5e0749e15af3a.rlib
new file mode 100644
index 0000000..49dab93
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libdatafrog-efd5e0749e15af3a.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libeither-9f09c65ee280f5f7.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libeither-9f09c65ee280f5f7.rlib
new file mode 100644
index 0000000..35b3167
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libeither-9f09c65ee280f5f7.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libena-c647e314d3e9649b.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libena-c647e314d3e9649b.rlib
new file mode 100644
index 0000000..8b0d1fd
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libena-c647e314d3e9649b.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libenv_logger-20710b59695948dc.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libenv_logger-20710b59695948dc.rlib
new file mode 100644
index 0000000..cccd18c
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libenv_logger-20710b59695948dc.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libflate2-139b19e649ca5cd3.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libflate2-139b19e649ca5cd3.rlib
new file mode 100644
index 0000000..67db832
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libflate2-139b19e649ca5cd3.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libfmt_macros-52aee68cff723c5f.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libfmt_macros-52aee68cff723c5f.so
new file mode 100755
index 0000000..c95797d
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libfmt_macros-52aee68cff723c5f.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-a6a1a33d083a01df.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-a6a1a33d083a01df.rlib
new file mode 100644
index 0000000..73d1016
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-a6a1a33d083a01df.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgraphviz-f246a4e4ae7648c6.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgraphviz-f246a4e4ae7648c6.so
new file mode 100755
index 0000000..0158155
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgraphviz-f246a4e4ae7648c6.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-f30027a2d4c11fb9.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-f30027a2d4c11fb9.rlib
new file mode 100644
index 0000000..c557a05
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-f30027a2d4c11fb9.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhumantime-92530863fdf2daaa.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhumantime-92530863fdf2daaa.rlib
new file mode 100644
index 0000000..f0d54df
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhumantime-92530863fdf2daaa.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libitoa-0b06f18ace3223b6.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libitoa-0b06f18ace3223b6.rlib
new file mode 100644
index 0000000..62f5a3e
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libitoa-0b06f18ace3223b6.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libjobserver-e98c573cf98e8c29.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libjobserver-e98c573cf98e8c29.rlib
new file mode 100644
index 0000000..9add5eb
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libjobserver-e98c573cf98e8c29.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblazy_static-45a335de3f5bf91e.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblazy_static-45a335de3f5bf91e.rlib
new file mode 100644
index 0000000..ceb2122
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblazy_static-45a335de3f5bf91e.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblazy_static-8c681f903c95ea09.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblazy_static-8c681f903c95ea09.rlib
new file mode 100644
index 0000000..6a8ad25
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblazy_static-8c681f903c95ea09.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6364cb93eedf37d0.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6364cb93eedf37d0.rlib
new file mode 100644
index 0000000..fcb5a7d
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-6364cb93eedf37d0.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-c9696e9c8091df22.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-c9696e9c8091df22.rlib
new file mode 100644
index 0000000..95cde7a
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-c9696e9c8091df22.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblock_api-487816e75817fca5.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblock_api-487816e75817fca5.rlib
new file mode 100644
index 0000000..dc8b6d2
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblock_api-487816e75817fca5.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblog-e4e651657749ed92.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblog-e4e651657749ed92.rlib
new file mode 100644
index 0000000..af3354b
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblog-e4e651657749ed92.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblog_settings-0af8afd35f1ce612.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblog_settings-0af8afd35f1ce612.rlib
new file mode 100644
index 0000000..ba530b9
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblog_settings-0af8afd35f1ce612.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmeasureme-5ab6ab6b18dc0a73.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmeasureme-5ab6ab6b18dc0a73.rlib
new file mode 100644
index 0000000..2b64775
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmeasureme-5ab6ab6b18dc0a73.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemmap-5574c9ff56499f18.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemmap-5574c9ff56499f18.rlib
new file mode 100644
index 0000000..8bf299a
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemmap-5574c9ff56499f18.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemoffset-212db432ada80b72.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemoffset-212db432ada80b72.rlib
new file mode 100644
index 0000000..d83bfb5
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libmemoffset-212db432ada80b72.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_sys-c20ac9cbf047e1dd.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_sys-c20ac9cbf047e1dd.rlib
new file mode 100644
index 0000000..cee1530
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_sys-c20ac9cbf047e1dd.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libnodrop-ef2f0adb09317be4.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libnodrop-ef2f0adb09317be4.rlib
new file mode 100644
index 0000000..fcce2c0
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libnodrop-ef2f0adb09317be4.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libnum_cpus-17073120482b69bb.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libnum_cpus-17073120482b69bb.rlib
new file mode 100644
index 0000000..ca244c6
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libnum_cpus-17073120482b69bb.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libowning_ref-807fda27c7bb201d.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libowning_ref-807fda27c7bb201d.rlib
new file mode 100644
index 0000000..e1cb5c8
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libowning_ref-807fda27c7bb201d.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_abort-657e836680377c20.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_abort-657e836680377c20.rlib
new file mode 100644
index 0000000..35a36d2
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_abort-657e836680377c20.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-c524fcd590d73f80.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-c524fcd590d73f80.rlib
new file mode 100644
index 0000000..f4d15f9
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-c524fcd590d73f80.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libparking_lot-4fc563ce07fb2e82.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libparking_lot-4fc563ce07fb2e82.rlib
new file mode 100644
index 0000000..a6fe02f
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libparking_lot-4fc563ce07fb2e82.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libparking_lot_core-d1f1633311122fbb.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libparking_lot_core-d1f1633311122fbb.rlib
new file mode 100644
index 0000000..6676486
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libparking_lot_core-d1f1633311122fbb.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpolonius_engine-362b1f6e527cc8c2.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpolonius_engine-362b1f6e527cc8c2.rlib
new file mode 100644
index 0000000..afe3ac1
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpolonius_engine-362b1f6e527cc8c2.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libproc_macro-0039d1ebb4ca4988.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libproc_macro-0039d1ebb4ca4988.rlib
new file mode 100644
index 0000000..4398012
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libproc_macro-0039d1ebb4ca4988.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libquick_error-fcf6efdced657ce7.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libquick_error-fcf6efdced657ce7.rlib
new file mode 100644
index 0000000..2f667fb
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libquick_error-fcf6efdced657ce7.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand-99530f372e8b6398.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand-99530f372e8b6398.rlib
new file mode 100644
index 0000000..8756563
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand-99530f372e8b6398.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_chacha-e9c5331ef6b762f0.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_chacha-e9c5331ef6b762f0.rlib
new file mode 100644
index 0000000..af605dc
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_chacha-e9c5331ef6b762f0.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_core-0ae11d1ff504267f.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_core-0ae11d1ff504267f.rlib
new file mode 100644
index 0000000..5ab1885
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_core-0ae11d1ff504267f.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_hc-2640b4429632e0f1.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_hc-2640b4429632e0f1.rlib
new file mode 100644
index 0000000..afd0fd8
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_hc-2640b4429632e0f1.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_isaac-175eaf1242ec7dcb.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_isaac-175eaf1242ec7dcb.rlib
new file mode 100644
index 0000000..0ba9048
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_isaac-175eaf1242ec7dcb.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_pcg-b39109cf86741ebe.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_pcg-b39109cf86741ebe.rlib
new file mode 100644
index 0000000..758d262
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_pcg-b39109cf86741ebe.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_xorshift-0374f252fd70a8a8.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_xorshift-0374f252fd70a8a8.rlib
new file mode 100644
index 0000000..4f74679
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand_xorshift-0374f252fd70a8a8.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libremove_dir_all-ce82537d21f7cdf4.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libremove_dir_all-ce82537d21f7cdf4.rlib
new file mode 100644
index 0000000..d4dd159
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libremove_dir_all-ce82537d21f7cdf4.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librls_data-274044375f5be448.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librls_data-274044375f5be448.rlib
new file mode 100644
index 0000000..4e030ab
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librls_data-274044375f5be448.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librls_span-388057c97d791fc0.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librls_span-388057c97d791fc0.rlib
new file mode 100644
index 0000000..15e7f2e
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librls_span-388057c97d791fc0.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-3300e8e198113593.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-3300e8e198113593.so
new file mode 100755
index 0000000..7b93ed2
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc-3300e8e198113593.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_allocator-abe85bca310bc21d.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_allocator-abe85bca310bc21d.so
new file mode 100755
index 0000000..0418554
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_allocator-abe85bca310bc21d.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_apfloat-e9f2e7995c8d5fb0.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_apfloat-e9f2e7995c8d5fb0.rlib
new file mode 100644
index 0000000..3a578a9
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_apfloat-e9f2e7995c8d5fb0.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_asan-98eed6b8728a005d.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_asan-98eed6b8728a005d.rlib
new file mode 100644
index 0000000..a8b6bbb
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_asan-98eed6b8728a005d.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_borrowck-3c766a6adca9d997.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_borrowck-3c766a6adca9d997.so
new file mode 100755
index 0000000..c0f7507
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_borrowck-3c766a6adca9d997.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_codegen_ssa-07d1cc36fe3fdfcb.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_codegen_ssa-07d1cc36fe3fdfcb.so
new file mode 100755
index 0000000..5cdcfde
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_codegen_ssa-07d1cc36fe3fdfcb.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_codegen_utils-4aefae014d544759.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_codegen_utils-4aefae014d544759.so
new file mode 100755
index 0000000..fe4c1ac
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_codegen_utils-4aefae014d544759.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_cratesio_shim-2dbcd6bcbc099574.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_cratesio_shim-2dbcd6bcbc099574.so
new file mode 100755
index 0000000..2bae7d6
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_cratesio_shim-2dbcd6bcbc099574.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_data_structures-6334ac37df3ad4d0.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_data_structures-6334ac37df3ad4d0.so
new file mode 100755
index 0000000..7e29aa6
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_data_structures-6334ac37df3ad4d0.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-310e9dbe009032de.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-310e9dbe009032de.rlib
new file mode 100644
index 0000000..9037595
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-310e9dbe009032de.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-d6f9829aedbc1969.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-d6f9829aedbc1969.rlib
new file mode 100644
index 0000000..c3147ee
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-d6f9829aedbc1969.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_driver-497048fa9308ab62.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_driver-497048fa9308ab62.so
new file mode 100755
index 0000000..ad89735
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_driver-497048fa9308ab62.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_errors-7f34485564358c7d.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_errors-7f34485564358c7d.so
new file mode 100755
index 0000000..5db87b7
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_errors-7f34485564358c7d.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_fs_util-fb70fd313a88f5eb.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_fs_util-fb70fd313a88f5eb.so
new file mode 100755
index 0000000..9e72a46
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_fs_util-fb70fd313a88f5eb.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_hash-4f61417e0cd45572.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_hash-4f61417e0cd45572.rlib
new file mode 100644
index 0000000..3dbdf88
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_hash-4f61417e0cd45572.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_incremental-d6b93b07cb2f71e0.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_incremental-d6b93b07cb2f71e0.so
new file mode 100755
index 0000000..4933412
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_incremental-d6b93b07cb2f71e0.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_interface-c039b1a1b4c709b9.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_interface-c039b1a1b4c709b9.so
new file mode 100755
index 0000000..cea4b76
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_interface-c039b1a1b4c709b9.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_lint-abbc7529ae1f7ec8.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_lint-abbc7529ae1f7ec8.so
new file mode 100755
index 0000000..0de0902
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_lint-abbc7529ae1f7ec8.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_lsan-958f06ef3edb698e.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_lsan-958f06ef3edb698e.rlib
new file mode 100644
index 0000000..77e5307
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_lsan-958f06ef3edb698e.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_macros-cbdde55a5f6f5849.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_macros-cbdde55a5f6f5849.so
new file mode 100755
index 0000000..a1fb07b
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_macros-cbdde55a5f6f5849.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_metadata-e725f90b480b86c2.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_metadata-e725f90b480b86c2.so
new file mode 100755
index 0000000..91dc183
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_metadata-e725f90b480b86c2.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_mir-6132102e5483a753.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_mir-6132102e5483a753.so
new file mode 100755
index 0000000..30bd420
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_mir-6132102e5483a753.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_msan-1c1a96a396401dde.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_msan-1c1a96a396401dde.rlib
new file mode 100644
index 0000000..5f8025a
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_msan-1c1a96a396401dde.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_passes-d689cb1c3dd3a92e.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_passes-d689cb1c3dd3a92e.so
new file mode 100755
index 0000000..5d4e8f9
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_passes-d689cb1c3dd3a92e.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_plugin-1153e370d3785b58.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_plugin-1153e370d3785b58.so
new file mode 100755
index 0000000..5fb1aa6
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_plugin-1153e370d3785b58.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_privacy-46f29c0760f20fc7.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_privacy-46f29c0760f20fc7.so
new file mode 100755
index 0000000..021ac9a
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_privacy-46f29c0760f20fc7.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_rayon-7275d0646e7e9844.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_rayon-7275d0646e7e9844.rlib
new file mode 100644
index 0000000..50d31be
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_rayon-7275d0646e7e9844.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_rayon_core-66b99d3a9cd6b16a.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_rayon_core-66b99d3a9cd6b16a.rlib
new file mode 100644
index 0000000..293039b
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_rayon_core-66b99d3a9cd6b16a.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_resolve-236b80197c0dddd3.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_resolve-236b80197c0dddd3.so
new file mode 100755
index 0000000..8f58ce5
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_resolve-236b80197c0dddd3.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_save_analysis-463771dbc9817d4e.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_save_analysis-463771dbc9817d4e.so
new file mode 100755
index 0000000..e21ca50
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_save_analysis-463771dbc9817d4e.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-e27b3a259bac03c7.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-e27b3a259bac03c7.rlib
new file mode 100644
index 0000000..da9bdfe
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-e27b3a259bac03c7.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-6e742c4724cdd5aa.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-6e742c4724cdd5aa.rlib
new file mode 100644
index 0000000..7271fef
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-6e742c4724cdd5aa.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_target-0770aec96e330b62.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_target-0770aec96e330b62.so
new file mode 100755
index 0000000..c58a406
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_target-0770aec96e330b62.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_traits-ff3ef7222101b30b.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_traits-ff3ef7222101b30b.so
new file mode 100755
index 0000000..fdcff0f
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_traits-ff3ef7222101b30b.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_tsan-ce171fe19071ced9.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_tsan-ce171fe19071ced9.rlib
new file mode 100644
index 0000000..1e2fa21
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_tsan-ce171fe19071ced9.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_typeck-4fe67c0fc753abdc.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_typeck-4fe67c0fc753abdc.so
new file mode 100755
index 0000000..6b4468e
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_typeck-4fe67c0fc753abdc.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libryu-4a20c93bd8253e00.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libryu-4a20c93bd8253e00.rlib
new file mode 100644
index 0000000..da7f342
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libryu-4a20c93bd8253e00.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libscoped_tls-af4fa57ee445b02b.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libscoped_tls-af4fa57ee445b02b.rlib
new file mode 100644
index 0000000..8f11fdb
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libscoped_tls-af4fa57ee445b02b.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libscopeguard-87bcc833189e4f90.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libscopeguard-87bcc833189e4f90.rlib
new file mode 100644
index 0000000..44f8dd1
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libscopeguard-87bcc833189e4f90.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserde-bb2ee07afa357acf.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserde-bb2ee07afa357acf.rlib
new file mode 100644
index 0000000..c29fd68
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserde-bb2ee07afa357acf.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserde_json-8d550a68b0c39e30.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserde_json-8d550a68b0c39e30.rlib
new file mode 100644
index 0000000..4df5e62
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserde_json-8d550a68b0c39e30.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserialize-43fdcd250d11ff59.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserialize-43fdcd250d11ff59.rlib
new file mode 100644
index 0000000..ac7b008
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserialize-43fdcd250d11ff59.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserialize-43fdcd250d11ff59.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserialize-43fdcd250d11ff59.so
new file mode 100755
index 0000000..28a3c05
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libserialize-43fdcd250d11ff59.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libsmallvec-fe98416c7ac028dc.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libsmallvec-fe98416c7ac028dc.rlib
new file mode 100644
index 0000000..55ba3bc
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libsmallvec-fe98416c7ac028dc.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstable_deref_trait-d188b0f436e934fe.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstable_deref_trait-d188b0f436e934fe.rlib
new file mode 100644
index 0000000..048b963
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstable_deref_trait-d188b0f436e934fe.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-71500d2f6a24a380.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-71500d2f6a24a380.rlib
new file mode 100644
index 0000000..96d5c6f
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-71500d2f6a24a380.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-71500d2f6a24a380.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-71500d2f6a24a380.so
new file mode 100755
index 0000000..cceb1e3
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-71500d2f6a24a380.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libsyntax-d8dc76a7a18f8f1e.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libsyntax-d8dc76a7a18f8f1e.so
new file mode 100755
index 0000000..31ba534
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libsyntax-d8dc76a7a18f8f1e.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libsyntax_ext-5c124e15bc9737c8.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libsyntax_ext-5c124e15bc9737c8.so
new file mode 100755
index 0000000..007028b
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libsyntax_ext-5c124e15bc9737c8.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libsyntax_pos-b50e75edc77b635b.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libsyntax_pos-b50e75edc77b635b.so
new file mode 100755
index 0000000..3b02d65
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libsyntax_pos-b50e75edc77b635b.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtempfile-228598f03a40ba24.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtempfile-228598f03a40ba24.rlib
new file mode 100644
index 0000000..cd7dcbc
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtempfile-228598f03a40ba24.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libterm-c1dbb00662fc9c94.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libterm-c1dbb00662fc9c94.rlib
new file mode 100644
index 0000000..0845dec
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libterm-c1dbb00662fc9c94.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libterm-c1dbb00662fc9c94.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libterm-c1dbb00662fc9c94.so
new file mode 100755
index 0000000..ee3a725
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libterm-c1dbb00662fc9c94.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtermcolor-14da1e99e4710ea4.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtermcolor-14da1e99e4710ea4.rlib
new file mode 100644
index 0000000..7b83668
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtermcolor-14da1e99e4710ea4.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-e12b97740bbe44df.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-e12b97740bbe44df.rlib
new file mode 100644
index 0000000..b619496
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-e12b97740bbe44df.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-e12b97740bbe44df.so b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-e12b97740bbe44df.so
new file mode 100755
index 0000000..afd32b4
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-e12b97740bbe44df.so
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-cc96e3e219087296.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-cc96e3e219087296.rlib
new file mode 100644
index 0000000..d1ba88d
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-cc96e3e219087296.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-da20f4d4f83469fe.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-da20f4d4f83469fe.rlib
new file mode 100644
index 0000000..f0d3d95
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-da20f4d4f83469fe.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunreachable-ffcab976bd65d036.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunreachable-ffcab976bd65d036.rlib
new file mode 100644
index 0000000..a08235c
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunreachable-ffcab976bd65d036.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-6460f2c7cfc35d55.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-6460f2c7cfc35d55.rlib
new file mode 100644
index 0000000..dcafc65
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-6460f2c7cfc35d55.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libvoid-25cc79745defbedc.rlib b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libvoid-25cc79745defbedc.rlib
new file mode 100644
index 0000000..1f88eb5
--- /dev/null
+++ b/linux-x86/1.36.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libvoid-25cc79745defbedc.rlib
Binary files differ
diff --git a/linux-x86/1.36.0/manifest_5856450.xml b/linux-x86/1.36.0/manifest_5856450.xml
new file mode 100644
index 0000000..de3e13c
--- /dev/null
+++ b/linux-x86/1.36.0/manifest_5856450.xml
@@ -0,0 +1,25 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<manifest>
+  <remote fetch=".." name="aosp" review="https://android-review.googlesource.com/" />
+
+  <default remote="aosp" revision="master" />
+
+  <project clone-depth="1" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.17-4.8" revision="639243dd5cb2c5ea1313f033c75c8c533813a484" />
+
+  <project clone-depth="1" name="platform/prebuilts/cmake/linux-x86" path="prebuilts/cmake/linux-x86" revision="da4b9cb08341185e002c8a8c5df73533cdb93b41" />
+
+  <project clone-depth="1" name="platform/prebuilts/clang/host/linux-x86" path="prebuilts/clang/host/linux-x86" revision="380b9a9ebd8437e6786e9c777839c914eeb026a5" />
+
+  <project clone-depth="1" name="platform/prebuilts/android-emulator-build/curl" path="prebuilts/android-emulator-build/curl" revision="2bc4dde5cc487c931be3ea97d9a362c86eb2f1da" />
+
+  <project name="toolchain/rustc" path="toolchain/rustc" revision="7ae0b87671ff1ece1e974ed036abdd0b57ee972f" />
+
+  <project clone-depth="1" name="platform/prebuilts/build-tools" path="prebuilts/build-tools" revision="bae0fd454cd1a2953db6682426c87d37cc5dc8be" />
+
+  <project clone-depth="1" name="toolchain/prebuilts/ndk/r20" path="toolchain/prebuilts/ndk/r20" revision="090bbcaa361eb158e8bfc5e6950081cb9679e350" />
+
+  <project name="platform/prebuilts/rust" path="prebuilts/rust" revision="1f5b84c53bcbae2a014a32f799d5e207707e2e2d" />
+
+  <project name="toolchain/android_rust" path="toolchain/android_rust" revision="23b2b0e4f99960ca79b77dbaccbe5635736439fd" />
+</manifest>
diff --git a/linux-x86/1.36.0/share/doc/rust/COPYRIGHT b/linux-x86/1.36.0/share/doc/rust/COPYRIGHT
new file mode 100644
index 0000000..dc9abf8
--- /dev/null
+++ b/linux-x86/1.36.0/share/doc/rust/COPYRIGHT
@@ -0,0 +1,231 @@
+Short version for non-lawyers:
+
+The Rust Project is dual-licensed under Apache 2.0 and MIT
+terms.
+
+
+Longer version:
+
+Copyrights in the Rust project are retained by their contributors. No
+copyright assignment is required to contribute to the Rust project.
+
+Some files include explicit copyright notices and/or license notices.
+For full authorship information, see the version control history or
+https://thanks.rust-lang.org
+
+Except as otherwise noted (below and/or in individual files), Rust is
+licensed under the Apache License, Version 2.0 <LICENSE-APACHE> or
+<http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+<LICENSE-MIT> or <http://opensource.org/licenses/MIT>, at your option.
+
+
+The Rust Project includes packages written by third parties.
+The following third party packages are included, and carry
+their own copyright notices and license terms:
+
+* LLVM. Code for this package is found in src/llvm-project.
+
+    Copyright (c) 2003-2013 University of Illinois at
+    Urbana-Champaign.  All rights reserved.
+
+    Developed by:
+
+        LLVM Team
+
+        University of Illinois at Urbana-Champaign
+
+        http://llvm.org
+
+    Permission is hereby granted, free of charge, to any
+    person obtaining a copy of this software and associated
+    documentation files (the "Software"), to deal with 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:
+
+        * Redistributions of source code must retain the
+          above copyright notice, this list of conditions
+          and the following disclaimers.
+
+        * Redistributions in binary form must reproduce the
+          above copyright notice, this list of conditions
+          and the following disclaimers in the documentation
+          and/or other materials provided with the
+          distribution.
+
+        * Neither the names of the LLVM Team, University of
+          Illinois at Urbana-Champaign, nor the names of its
+          contributors may be used to endorse or promote
+          products derived from this Software without
+          specific prior written permission.
+
+    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 CONTRIBUTORS 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 WITH THE SOFTWARE.
+
+* Additional libraries included in LLVM carry separate
+  BSD-compatible licenses. See src/llvm-project/llvm/LICENSE.TXT
+  for details.
+
+* compiler-rt, in src/compiler-rt is dual licensed under
+  LLVM's license and MIT:
+
+    Copyright (c) 2009-2014 by the contributors listed in
+    CREDITS.TXT
+
+    All rights reserved.
+
+    Developed by:
+
+        LLVM Team
+
+        University of Illinois at Urbana-Champaign
+
+        http://llvm.org
+
+    Permission is hereby granted, free of charge, to any
+    person obtaining a copy of this software and associated
+    documentation files (the "Software"), to deal with 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:
+
+        * Redistributions of source code must retain the
+          above copyright notice, this list of conditions
+          and the following disclaimers.
+
+        * Redistributions in binary form must reproduce the
+          above copyright notice, this list of conditions
+          and the following disclaimers in the documentation
+          and/or other materials provided with the
+          distribution.
+
+        * Neither the names of the LLVM Team, University of
+          Illinois at Urbana-Champaign, nor the names of its
+          contributors may be used to endorse or promote
+          products derived from this Software without
+          specific prior written permission.
+
+    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 CONTRIBUTORS 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 WITH THE SOFTWARE.
+
+    ========================================================
+
+    Copyright (c) 2009-2014 by the contributors listed in
+    CREDITS.TXT
+
+    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.
+
+* Portions of the FFI code for interacting with the native ABI
+  is derived from the Clay programming language, which carries
+  the following license.
+
+    Copyright (C) 2008-2010 Tachyon Technologies.
+    All rights reserved.
+
+    Redistribution and use in source and binary forms, with
+    or without modification, are permitted provided that the
+    following conditions are met:
+
+    1. Redistributions of source code must retain the above
+       copyright notice, this list of conditions and the
+       following disclaimer.
+
+    2. Redistributions in binary form must reproduce the
+       above copyright notice, this list of conditions and
+       the following disclaimer in the documentation and/or
+       other materials provided with the distribution.
+
+    THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR
+    IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+    PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+    DEVELOPERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+    INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+    USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+    CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+    USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+    OF SUCH DAMAGE.
+
+* libbacktrace, under src/libbacktrace:
+
+    Copyright (C) 2012-2014 Free Software Foundation, Inc.
+    Written by Ian Lance Taylor, Google.
+
+    Redistribution and use in source and binary forms, with
+    or without modification, are permitted provided that the
+    following conditions are met:
+
+        (1) Redistributions of source code must retain the
+        above copyright notice, this list of conditions and
+        the following disclaimer.
+
+        (2) Redistributions in binary form must reproduce
+        the above copyright notice, this list of conditions
+        and the following disclaimer in the documentation
+        and/or other materials provided with the
+        distribution.
+
+        (3) The name of the author may not be used to
+        endorse or promote products derived from this
+        software without specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
+    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+    AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+    NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+    INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+    USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+    CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+    USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+    OF SUCH DAMAGE.  */
diff --git a/linux-x86/1.36.0/share/doc/rust/LICENSE-APACHE b/linux-x86/1.36.0/share/doc/rust/LICENSE-APACHE
new file mode 100644
index 0000000..16fe87b
--- /dev/null
+++ b/linux-x86/1.36.0/share/doc/rust/LICENSE-APACHE
@@ -0,0 +1,201 @@
+                              Apache License
+                        Version 2.0, January 2004
+                     http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+   "License" shall mean the terms and conditions for use, reproduction,
+   and distribution as defined by Sections 1 through 9 of this document.
+
+   "Licensor" shall mean the copyright owner or entity authorized by
+   the copyright owner that is granting the License.
+
+   "Legal Entity" shall mean the union of the acting entity and all
+   other entities that control, are controlled by, or are under common
+   control with that entity. For the purposes of this definition,
+   "control" means (i) the power, direct or indirect, to cause the
+   direction or management of such entity, whether by contract or
+   otherwise, or (ii) ownership of fifty percent (50%) or more of the
+   outstanding shares, or (iii) beneficial ownership of such entity.
+
+   "You" (or "Your") shall mean an individual or Legal Entity
+   exercising permissions granted by this License.
+
+   "Source" form shall mean the preferred form for making modifications,
+   including but not limited to software source code, documentation
+   source, and configuration files.
+
+   "Object" form shall mean any form resulting from mechanical
+   transformation or translation of a Source form, including but
+   not limited to compiled object code, generated documentation,
+   and conversions to other media types.
+
+   "Work" shall mean the work of authorship, whether in Source or
+   Object form, made available under the License, as indicated by a
+   copyright notice that is included in or attached to the work
+   (an example is provided in the Appendix below).
+
+   "Derivative Works" shall mean any work, whether in Source or Object
+   form, that is based on (or derived from) the Work and for which the
+   editorial revisions, annotations, elaborations, or other modifications
+   represent, as a whole, an original work of authorship. For the purposes
+   of this License, Derivative Works shall not include works that remain
+   separable from, or merely link (or bind by name) to the interfaces of,
+   the Work and Derivative Works thereof.
+
+   "Contribution" shall mean any work of authorship, including
+   the original version of the Work and any modifications or additions
+   to that Work or Derivative Works thereof, that is intentionally
+   submitted to Licensor for inclusion in the Work by the copyright owner
+   or by an individual or Legal Entity authorized to submit on behalf of
+   the copyright owner. For the purposes of this definition, "submitted"
+   means any form of electronic, verbal, or written communication sent
+   to the Licensor or its representatives, including but not limited to
+   communication on electronic mailing lists, source code control systems,
+   and issue tracking systems that are managed by, or on behalf of, the
+   Licensor for the purpose of discussing and improving the Work, but
+   excluding communication that is conspicuously marked or otherwise
+   designated in writing by the copyright owner as "Not a Contribution."
+
+   "Contributor" shall mean Licensor and any individual or Legal Entity
+   on behalf of whom a Contribution has been received by Licensor and
+   subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   copyright license to reproduce, prepare Derivative Works of,
+   publicly display, publicly perform, sublicense, and distribute the
+   Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   (except as stated in this section) patent license to make, have made,
+   use, offer to sell, sell, import, and otherwise transfer the Work,
+   where such license applies only to those patent claims licensable
+   by such Contributor that are necessarily infringed by their
+   Contribution(s) alone or by combination of their Contribution(s)
+   with the Work to which such Contribution(s) was submitted. If You
+   institute patent litigation against any entity (including a
+   cross-claim or counterclaim in a lawsuit) alleging that the Work
+   or a Contribution incorporated within the Work constitutes direct
+   or contributory patent infringement, then any patent licenses
+   granted to You under this License for that Work shall terminate
+   as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+   Work or Derivative Works thereof in any medium, with or without
+   modifications, and in Source or Object form, provided that You
+   meet the following conditions:
+
+   (a) You must give any other recipients of the Work or
+       Derivative Works a copy of this License; and
+
+   (b) You must cause any modified files to carry prominent notices
+       stating that You changed the files; and
+
+   (c) You must retain, in the Source form of any Derivative Works
+       that You distribute, all copyright, patent, trademark, and
+       attribution notices from the Source form of the Work,
+       excluding those notices that do not pertain to any part of
+       the Derivative Works; and
+
+   (d) If the Work includes a "NOTICE" text file as part of its
+       distribution, then any Derivative Works that You distribute must
+       include a readable copy of the attribution notices contained
+       within such NOTICE file, excluding those notices that do not
+       pertain to any part of the Derivative Works, in at least one
+       of the following places: within a NOTICE text file distributed
+       as part of the Derivative Works; within the Source form or
+       documentation, if provided along with the Derivative Works; or,
+       within a display generated by the Derivative Works, if and
+       wherever such third-party notices normally appear. The contents
+       of the NOTICE file are for informational purposes only and
+       do not modify the License. You may add Your own attribution
+       notices within Derivative Works that You distribute, alongside
+       or as an addendum to the NOTICE text from the Work, provided
+       that such additional attribution notices cannot be construed
+       as modifying the License.
+
+   You may add Your own copyright statement to Your modifications and
+   may provide additional or different license terms and conditions
+   for use, reproduction, or distribution of Your modifications, or
+   for any such Derivative Works as a whole, provided Your use,
+   reproduction, and distribution of the Work otherwise complies with
+   the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+   any Contribution intentionally submitted for inclusion in the Work
+   by You to the Licensor shall be under the terms and conditions of
+   this License, without any additional terms or conditions.
+   Notwithstanding the above, nothing herein shall supersede or modify
+   the terms of any separate license agreement you may have executed
+   with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+   names, trademarks, service marks, or product names of the Licensor,
+   except as required for reasonable and customary use in describing the
+   origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+   agreed to in writing, Licensor provides the Work (and each
+   Contributor provides its Contributions) on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied, including, without limitation, any warranties or conditions
+   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+   PARTICULAR PURPOSE. You are solely responsible for determining the
+   appropriateness of using or redistributing the Work and assume any
+   risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+   whether in tort (including negligence), contract, or otherwise,
+   unless required by applicable law (such as deliberate and grossly
+   negligent acts) or agreed to in writing, shall any Contributor be
+   liable to You for damages, including any direct, indirect, special,
+   incidental, or consequential damages of any character arising as a
+   result of this License or out of the use or inability to use the
+   Work (including but not limited to damages for loss of goodwill,
+   work stoppage, computer failure or malfunction, or any and all
+   other commercial damages or losses), even if such Contributor
+   has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+   the Work or Derivative Works thereof, You may choose to offer,
+   and charge a fee for, acceptance of support, warranty, indemnity,
+   or other liability obligations and/or rights consistent with this
+   License. However, in accepting such obligations, You may act only
+   on Your own behalf and on Your sole responsibility, not on behalf
+   of any other Contributor, and only if You agree to indemnify,
+   defend, and hold each Contributor harmless for any liability
+   incurred by, or claims asserted against, such Contributor by reason
+   of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+   To apply the Apache License to your work, attach the following
+   boilerplate notice, with the fields enclosed by brackets "[]"
+   replaced with your own identifying information. (Don't include
+   the brackets!)  The text should be enclosed in the appropriate
+   comment syntax for the file format. We also recommend that a
+   file or class name and description of purpose be included on the
+   same "printed page" as the copyright notice for easier
+   identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+	http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/linux-x86/1.36.0/share/doc/rust/LICENSE-APACHE.old b/linux-x86/1.36.0/share/doc/rust/LICENSE-APACHE.old
new file mode 100644
index 0000000..c98d27d
--- /dev/null
+++ b/linux-x86/1.36.0/share/doc/rust/LICENSE-APACHE.old
@@ -0,0 +1,201 @@
+                              Apache License
+                        Version 2.0, January 2004
+                     https://www.apache.org/licenses/LICENSE-2.0
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+   "License" shall mean the terms and conditions for use, reproduction,
+   and distribution as defined by Sections 1 through 9 of this document.
+
+   "Licensor" shall mean the copyright owner or entity authorized by
+   the copyright owner that is granting the License.
+
+   "Legal Entity" shall mean the union of the acting entity and all
+   other entities that control, are controlled by, or are under common
+   control with that entity. For the purposes of this definition,
+   "control" means (i) the power, direct or indirect, to cause the
+   direction or management of such entity, whether by contract or
+   otherwise, or (ii) ownership of fifty percent (50%) or more of the
+   outstanding shares, or (iii) beneficial ownership of such entity.
+
+   "You" (or "Your") shall mean an individual or Legal Entity
+   exercising permissions granted by this License.
+
+   "Source" form shall mean the preferred form for making modifications,
+   including but not limited to software source code, documentation
+   source, and configuration files.
+
+   "Object" form shall mean any form resulting from mechanical
+   transformation or translation of a Source form, including but
+   not limited to compiled object code, generated documentation,
+   and conversions to other media types.
+
+   "Work" shall mean the work of authorship, whether in Source or
+   Object form, made available under the License, as indicated by a
+   copyright notice that is included in or attached to the work
+   (an example is provided in the Appendix below).
+
+   "Derivative Works" shall mean any work, whether in Source or Object
+   form, that is based on (or derived from) the Work and for which the
+   editorial revisions, annotations, elaborations, or other modifications
+   represent, as a whole, an original work of authorship. For the purposes
+   of this License, Derivative Works shall not include works that remain
+   separable from, or merely link (or bind by name) to the interfaces of,
+   the Work and Derivative Works thereof.
+
+   "Contribution" shall mean any work of authorship, including
+   the original version of the Work and any modifications or additions
+   to that Work or Derivative Works thereof, that is intentionally
+   submitted to Licensor for inclusion in the Work by the copyright owner
+   or by an individual or Legal Entity authorized to submit on behalf of
+   the copyright owner. For the purposes of this definition, "submitted"
+   means any form of electronic, verbal, or written communication sent
+   to the Licensor or its representatives, including but not limited to
+   communication on electronic mailing lists, source code control systems,
+   and issue tracking systems that are managed by, or on behalf of, the
+   Licensor for the purpose of discussing and improving the Work, but
+   excluding communication that is conspicuously marked or otherwise
+   designated in writing by the copyright owner as "Not a Contribution."
+
+   "Contributor" shall mean Licensor and any individual or Legal Entity
+   on behalf of whom a Contribution has been received by Licensor and
+   subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   copyright license to reproduce, prepare Derivative Works of,
+   publicly display, publicly perform, sublicense, and distribute the
+   Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   (except as stated in this section) patent license to make, have made,
+   use, offer to sell, sell, import, and otherwise transfer the Work,
+   where such license applies only to those patent claims licensable
+   by such Contributor that are necessarily infringed by their
+   Contribution(s) alone or by combination of their Contribution(s)
+   with the Work to which such Contribution(s) was submitted. If You
+   institute patent litigation against any entity (including a
+   cross-claim or counterclaim in a lawsuit) alleging that the Work
+   or a Contribution incorporated within the Work constitutes direct
+   or contributory patent infringement, then any patent licenses
+   granted to You under this License for that Work shall terminate
+   as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+   Work or Derivative Works thereof in any medium, with or without
+   modifications, and in Source or Object form, provided that You
+   meet the following conditions:
+
+   (a) You must give any other recipients of the Work or
+       Derivative Works a copy of this License; and
+
+   (b) You must cause any modified files to carry prominent notices
+       stating that You changed the files; and
+
+   (c) You must retain, in the Source form of any Derivative Works
+       that You distribute, all copyright, patent, trademark, and
+       attribution notices from the Source form of the Work,
+       excluding those notices that do not pertain to any part of
+       the Derivative Works; and
+
+   (d) If the Work includes a "NOTICE" text file as part of its
+       distribution, then any Derivative Works that You distribute must
+       include a readable copy of the attribution notices contained
+       within such NOTICE file, excluding those notices that do not
+       pertain to any part of the Derivative Works, in at least one
+       of the following places: within a NOTICE text file distributed
+       as part of the Derivative Works; within the Source form or
+       documentation, if provided along with the Derivative Works; or,
+       within a display generated by the Derivative Works, if and
+       wherever such third-party notices normally appear. The contents
+       of the NOTICE file are for informational purposes only and
+       do not modify the License. You may add Your own attribution
+       notices within Derivative Works that You distribute, alongside
+       or as an addendum to the NOTICE text from the Work, provided
+       that such additional attribution notices cannot be construed
+       as modifying the License.
+
+   You may add Your own copyright statement to Your modifications and
+   may provide additional or different license terms and conditions
+   for use, reproduction, or distribution of Your modifications, or
+   for any such Derivative Works as a whole, provided Your use,
+   reproduction, and distribution of the Work otherwise complies with
+   the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+   any Contribution intentionally submitted for inclusion in the Work
+   by You to the Licensor shall be under the terms and conditions of
+   this License, without any additional terms or conditions.
+   Notwithstanding the above, nothing herein shall supersede or modify
+   the terms of any separate license agreement you may have executed
+   with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+   names, trademarks, service marks, or product names of the Licensor,
+   except as required for reasonable and customary use in describing the
+   origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+   agreed to in writing, Licensor provides the Work (and each
+   Contributor provides its Contributions) on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied, including, without limitation, any warranties or conditions
+   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+   PARTICULAR PURPOSE. You are solely responsible for determining the
+   appropriateness of using or redistributing the Work and assume any
+   risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+   whether in tort (including negligence), contract, or otherwise,
+   unless required by applicable law (such as deliberate and grossly
+   negligent acts) or agreed to in writing, shall any Contributor be
+   liable to You for damages, including any direct, indirect, special,
+   incidental, or consequential damages of any character arising as a
+   result of this License or out of the use or inability to use the
+   Work (including but not limited to damages for loss of goodwill,
+   work stoppage, computer failure or malfunction, or any and all
+   other commercial damages or losses), even if such Contributor
+   has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+   the Work or Derivative Works thereof, You may choose to offer,
+   and charge a fee for, acceptance of support, warranty, indemnity,
+   or other liability obligations and/or rights consistent with this
+   License. However, in accepting such obligations, You may act only
+   on Your own behalf and on Your sole responsibility, not on behalf
+   of any other Contributor, and only if You agree to indemnify,
+   defend, and hold each Contributor harmless for any liability
+   incurred by, or claims asserted against, such Contributor by reason
+   of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+   To apply the Apache License to your work, attach the following
+   boilerplate notice, with the fields enclosed by brackets "[]"
+   replaced with your own identifying information. (Don't include
+   the brackets!)  The text should be enclosed in the appropriate
+   comment syntax for the file format. We also recommend that a
+   file or class name and description of purpose be included on the
+   same "printed page" as the copyright notice for easier
+   identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+	https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/linux-x86/1.36.0/share/doc/rust/LICENSE-MIT b/linux-x86/1.36.0/share/doc/rust/LICENSE-MIT
new file mode 100644
index 0000000..31aa793
--- /dev/null
+++ b/linux-x86/1.36.0/share/doc/rust/LICENSE-MIT
@@ -0,0 +1,23 @@
+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.
diff --git a/linux-x86/1.36.0/share/doc/rust/LICENSE-MIT.old b/linux-x86/1.36.0/share/doc/rust/LICENSE-MIT.old
new file mode 100644
index 0000000..31aa793
--- /dev/null
+++ b/linux-x86/1.36.0/share/doc/rust/LICENSE-MIT.old
@@ -0,0 +1,23 @@
+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.
diff --git a/linux-x86/1.36.0/share/doc/rust/LICENSE-THIRD-PARTY b/linux-x86/1.36.0/share/doc/rust/LICENSE-THIRD-PARTY
new file mode 100644
index 0000000..8f83ab5
--- /dev/null
+++ b/linux-x86/1.36.0/share/doc/rust/LICENSE-THIRD-PARTY
@@ -0,0 +1,1272 @@
+The Cargo source code itself does not bundle any third party libraries, but it
+depends on a number of libraries which carry their own copyright notices and
+license terms. These libraries are normally all linked static into the binary
+distributions of Cargo:
+
+* OpenSSL - https://www.openssl.org/source/license.html
+
+    Copyright (c) 1998-2011 The OpenSSL Project.  All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+
+    1. Redistributions of source code must retain the above copyright
+       notice, this list of conditions and the following disclaimer.
+
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in
+       the documentation and/or other materials provided with the
+       distribution.
+
+    3. All advertising materials mentioning features or use of this
+       software must display the following acknowledgment:
+       "This product includes software developed by the OpenSSL Project
+       for use in the OpenSSL Toolkit. (https://www.openssl.org/)"
+
+    4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+       endorse or promote products derived from this software without
+       prior written permission. For written permission, please contact
+       openssl-core@openssl.org.
+
+    5. Products derived from this software may not be called "OpenSSL"
+       nor may "OpenSSL" appear in their names without prior written
+       permission of the OpenSSL Project.
+
+    6. Redistributions of any form whatsoever must retain the following
+       acknowledgment:
+       "This product includes software developed by the OpenSSL Project
+       for use in the OpenSSL Toolkit (https://www.openssl.org/)"
+
+    THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+    EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+    PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
+    ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+    NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+    LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+    STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+    OF THE POSSIBILITY OF SUCH DAMAGE.
+    ====================================================================
+
+    This product includes cryptographic software written by Eric Young
+    (eay@cryptsoft.com).  This product includes software written by Tim
+    Hudson (tjh@cryptsoft.com).
+
+    ---
+
+    Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+    All rights reserved.
+
+    This package is an SSL implementation written
+    by Eric Young (eay@cryptsoft.com).
+    The implementation was written so as to conform with Netscapes SSL.
+
+    This library is free for commercial and non-commercial use as long as
+    the following conditions are aheared to.  The following conditions
+    apply to all code found in this distribution, be it the RC4, RSA,
+    lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+    included with this distribution is covered by the same copyright terms
+    except that the holder is Tim Hudson (tjh@cryptsoft.com).
+
+    Copyright remains Eric Young's, and as such any Copyright notices in
+    the code are not to be removed.
+    If this package is used in a product, Eric Young should be given attribution
+    as the author of the parts of the library used.
+    This can be in the form of a textual message at program startup or
+    in documentation (online or textual) provided with the package.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, are permitted provided that the following conditions
+    are met:
+    1. Redistributions of source code must retain the copyright
+       notice, this list of conditions and the following disclaimer.
+    2. Redistributions in binary form must reproduce the above copyright
+       notice, this list of conditions and the following disclaimer in the
+       documentation and/or other materials provided with the distribution.
+    3. All advertising materials mentioning features or use of this software
+       must display the following acknowledgement:
+       "This product includes cryptographic software written by
+        Eric Young (eay@cryptsoft.com)"
+       The word 'cryptographic' can be left out if the rouines from the library
+       being used are not cryptographic related :-).
+    4. If you include any Windows specific code (or a derivative thereof) from
+       the apps directory (application code) you must include an acknowledgement:
+       "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+
+    THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    SUCH DAMAGE.
+
+    The licence and distribution terms for any publically available version or
+    derivative of this code cannot be changed.  i.e. this code cannot simply be
+    copied and put under another distribution licence
+    [including the GNU Public Licence.]
+
+* libgit2 - https://github.com/libgit2/libgit2/blob/master/COPYING
+
+     libgit2 is Copyright (C) the libgit2 contributors,
+     unless otherwise stated. See the AUTHORS file for details.
+
+     Note that the only valid version of the GPL as far as this project
+     is concerned is _this_ particular version of the license (ie v2, not
+     v2.2 or v3.x or whatever), unless explicitly otherwise stated.
+
+    ----------------------------------------------------------------------
+
+          LINKING EXCEPTION
+
+     In addition to the permissions in the GNU General Public License,
+     the authors give you unlimited permission to link the compiled
+     version of this library into combinations with other programs,
+     and to distribute those combinations without any restriction
+     coming from the use of this file.  (The General Public License
+     restrictions do apply in other respects; for example, they cover
+     modification of the file, and distribution when not linked into
+     a combined executable.)
+
+    ----------------------------------------------------------------------
+
+            GNU GENERAL PUBLIC LICENSE
+               Version 2, June 1991
+
+     Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                           59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+     Everyone is permitted to copy and distribute verbatim copies
+     of this license document, but changing it is not allowed.
+
+              Preamble
+
+      The licenses for most software are designed to take away your
+    freedom to share and change it.  By contrast, the GNU General Public
+    License is intended to guarantee your freedom to share and change free
+    software--to make sure the software is free for all its users.  This
+    General Public License applies to most of the Free Software
+    Foundation's software and to any other program whose authors commit to
+    using it.  (Some other Free Software Foundation software is covered by
+    the GNU Library General Public License instead.)  You can apply it to
+    your programs, too.
+
+      When we speak of free software, we are referring to freedom, not
+    price.  Our General Public Licenses are designed to make sure that you
+    have the freedom to distribute copies of free software (and charge for
+    this service if you wish), that you receive source code or can get it
+    if you want it, that you can change the software or use pieces of it
+    in new free programs; and that you know you can do these things.
+
+      To protect your rights, we need to make restrictions that forbid
+    anyone to deny you these rights or to ask you to surrender the rights.
+    These restrictions translate to certain responsibilities for you if you
+    distribute copies of the software, or if you modify it.
+
+      For example, if you distribute copies of such a program, whether
+    gratis or for a fee, you must give the recipients all the rights that
+    you have.  You must make sure that they, too, receive or can get the
+    source code.  And you must show them these terms so they know their
+    rights.
+
+      We protect your rights with two steps: (1) copyright the software, and
+    (2) offer you this license which gives you legal permission to copy,
+    distribute and/or modify the software.
+
+      Also, for each author's protection and ours, we want to make certain
+    that everyone understands that there is no warranty for this free
+    software.  If the software is modified by someone else and passed on, we
+    want its recipients to know that what they have is not the original, so
+    that any problems introduced by others will not reflect on the original
+    authors' reputations.
+
+      Finally, any free program is threatened constantly by software
+    patents.  We wish to avoid the danger that redistributors of a free
+    program will individually obtain patent licenses, in effect making the
+    program proprietary.  To prevent this, we have made it clear that any
+    patent must be licensed for everyone's free use or not licensed at all.
+
+      The precise terms and conditions for copying, distribution and
+    modification follow.
+
+            GNU GENERAL PUBLIC LICENSE
+       TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+      0. This License applies to any program or other work which contains
+    a notice placed by the copyright holder saying it may be distributed
+    under the terms of this General Public License.  The "Program", below,
+    refers to any such program or work, and a "work based on the Program"
+    means either the Program or any derivative work under copyright law:
+    that is to say, a work containing the Program or a portion of it,
+    either verbatim or with modifications and/or translated into another
+    language.  (Hereinafter, translation is included without limitation in
+    the term "modification".)  Each licensee is addressed as "you".
+
+    Activities other than copying, distribution and modification are not
+    covered by this License; they are outside its scope.  The act of
+    running the Program is not restricted, and the output from the Program
+    is covered only if its contents constitute a work based on the
+    Program (independent of having been made by running the Program).
+    Whether that is true depends on what the Program does.
+
+      1. You may copy and distribute verbatim copies of the Program's
+    source code as you receive it, in any medium, provided that you
+    conspicuously and appropriately publish on each copy an appropriate
+    copyright notice and disclaimer of warranty; keep intact all the
+    notices that refer to this License and to the absence of any warranty;
+    and give any other recipients of the Program a copy of this License
+    along with the Program.
+
+    You may charge a fee for the physical act of transferring a copy, and
+    you may at your option offer warranty protection in exchange for a fee.
+
+      2. You may modify your copy or copies of the Program or any portion
+    of it, thus forming a work based on the Program, and copy and
+    distribute such modifications or work under the terms of Section 1
+    above, provided that you also meet all of these conditions:
+
+        a) You must cause the modified files to carry prominent notices
+        stating that you changed the files and the date of any change.
+
+        b) You must cause any work that you distribute or publish, that in
+        whole or in part contains or is derived from the Program or any
+        part thereof, to be licensed as a whole at no charge to all third
+        parties under the terms of this License.
+
+        c) If the modified program normally reads commands interactively
+        when run, you must cause it, when started running for such
+        interactive use in the most ordinary way, to print or display an
+        announcement including an appropriate copyright notice and a
+        notice that there is no warranty (or else, saying that you provide
+        a warranty) and that users may redistribute the program under
+        these conditions, and telling the user how to view a copy of this
+        License.  (Exception: if the Program itself is interactive but
+        does not normally print such an announcement, your work based on
+        the Program is not required to print an announcement.)
+
+    These requirements apply to the modified work as a whole.  If
+    identifiable sections of that work are not derived from the Program,
+    and can be reasonably considered independent and separate works in
+    themselves, then this License, and its terms, do not apply to those
+    sections when you distribute them as separate works.  But when you
+    distribute the same sections as part of a whole which is a work based
+    on the Program, the distribution of the whole must be on the terms of
+    this License, whose permissions for other licensees extend to the
+    entire whole, and thus to each and every part regardless of who wrote it.
+
+    Thus, it is not the intent of this section to claim rights or contest
+    your rights to work written entirely by you; rather, the intent is to
+    exercise the right to control the distribution of derivative or
+    collective works based on the Program.
+
+    In addition, mere aggregation of another work not based on the Program
+    with the Program (or with a work based on the Program) on a volume of
+    a storage or distribution medium does not bring the other work under
+    the scope of this License.
+
+      3. You may copy and distribute the Program (or a work based on it,
+    under Section 2) in object code or executable form under the terms of
+    Sections 1 and 2 above provided that you also do one of the following:
+
+        a) Accompany it with the complete corresponding machine-readable
+        source code, which must be distributed under the terms of Sections
+        1 and 2 above on a medium customarily used for software interchange; or,
+
+        b) Accompany it with a written offer, valid for at least three
+        years, to give any third party, for a charge no more than your
+        cost of physically performing source distribution, a complete
+        machine-readable copy of the corresponding source code, to be
+        distributed under the terms of Sections 1 and 2 above on a medium
+        customarily used for software interchange; or,
+
+        c) Accompany it with the information you received as to the offer
+        to distribute corresponding source code.  (This alternative is
+        allowed only for noncommercial distribution and only if you
+        received the program in object code or executable form with such
+        an offer, in accord with Subsection b above.)
+
+    The source code for a work means the preferred form of the work for
+    making modifications to it.  For an executable work, complete source
+    code means all the source code for all modules it contains, plus any
+    associated interface definition files, plus the scripts used to
+    control compilation and installation of the executable.  However, as a
+    special exception, the source code distributed need not include
+    anything that is normally distributed (in either source or binary
+    form) with the major components (compiler, kernel, and so on) of the
+    operating system on which the executable runs, unless that component
+    itself accompanies the executable.
+
+    If distribution of executable or object code is made by offering
+    access to copy from a designated place, then offering equivalent
+    access to copy the source code from the same place counts as
+    distribution of the source code, even though third parties are not
+    compelled to copy the source along with the object code.
+
+      4. You may not copy, modify, sublicense, or distribute the Program
+    except as expressly provided under this License.  Any attempt
+    otherwise to copy, modify, sublicense or distribute the Program is
+    void, and will automatically terminate your rights under this License.
+    However, parties who have received copies, or rights, from you under
+    this License will not have their licenses terminated so long as such
+    parties remain in full compliance.
+
+      5. You are not required to accept this License, since you have not
+    signed it.  However, nothing else grants you permission to modify or
+    distribute the Program or its derivative works.  These actions are
+    prohibited by law if you do not accept this License.  Therefore, by
+    modifying or distributing the Program (or any work based on the
+    Program), you indicate your acceptance of this License to do so, and
+    all its terms and conditions for copying, distributing or modifying
+    the Program or works based on it.
+
+      6. Each time you redistribute the Program (or any work based on the
+    Program), the recipient automatically receives a license from the
+    original licensor to copy, distribute or modify the Program subject to
+    these terms and conditions.  You may not impose any further
+    restrictions on the recipients' exercise of the rights granted herein.
+    You are not responsible for enforcing compliance by third parties to
+    this License.
+
+      7. If, as a consequence of a court judgment or allegation of patent
+    infringement or for any other reason (not limited to patent issues),
+    conditions are imposed on you (whether by court order, agreement or
+    otherwise) that contradict the conditions of this License, they do not
+    excuse you from the conditions of this License.  If you cannot
+    distribute so as to satisfy simultaneously your obligations under this
+    License and any other pertinent obligations, then as a consequence you
+    may not distribute the Program at all.  For example, if a patent
+    license would not permit royalty-free redistribution of the Program by
+    all those who receive copies directly or indirectly through you, then
+    the only way you could satisfy both it and this License would be to
+    refrain entirely from distribution of the Program.
+
+    If any portion of this section is held invalid or unenforceable under
+    any particular circumstance, the balance of the section is intended to
+    apply and the section as a whole is intended to apply in other
+    circumstances.
+
+    It is not the purpose of this section to induce you to infringe any
+    patents or other property right claims or to contest validity of any
+    such claims; this section has the sole purpose of protecting the
+    integrity of the free software distribution system, which is
+    implemented by public license practices.  Many people have made
+    generous contributions to the wide range of software distributed
+    through that system in reliance on consistent application of that
+    system; it is up to the author/donor to decide if he or she is willing
+    to distribute software through any other system and a licensee cannot
+    impose that choice.
+
+    This section is intended to make thoroughly clear what is believed to
+    be a consequence of the rest of this License.
+
+      8. If the distribution and/or use of the Program is restricted in
+    certain countries either by patents or by copyrighted interfaces, the
+    original copyright holder who places the Program under this License
+    may add an explicit geographical distribution limitation excluding
+    those countries, so that distribution is permitted only in or among
+    countries not thus excluded.  In such case, this License incorporates
+    the limitation as if written in the body of this License.
+
+      9. The Free Software Foundation may publish revised and/or new versions
+    of the General Public License from time to time.  Such new versions will
+    be similar in spirit to the present version, but may differ in detail to
+    address new problems or concerns.
+
+    Each version is given a distinguishing version number.  If the Program
+    specifies a version number of this License which applies to it and "any
+    later version", you have the option of following the terms and conditions
+    either of that version or of any later version published by the Free
+    Software Foundation.  If the Program does not specify a version number of
+    this License, you may choose any version ever published by the Free Software
+    Foundation.
+
+      10. If you wish to incorporate parts of the Program into other free
+    programs whose distribution conditions are different, write to the author
+    to ask for permission.  For software which is copyrighted by the Free
+    Software Foundation, write to the Free Software Foundation; we sometimes
+    make exceptions for this.  Our decision will be guided by the two goals
+    of preserving the free status of all derivatives of our free software and
+    of promoting the sharing and reuse of software generally.
+
+              NO WARRANTY
+
+      11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+    FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+    OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+    PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+    OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+    TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+    PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+    REPAIR OR CORRECTION.
+
+      12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+    WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+    REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+    INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+    OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+    TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+    YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+    PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+    POSSIBILITY OF SUCH DAMAGES.
+
+             END OF TERMS AND CONDITIONS
+
+          How to Apply These Terms to Your New Programs
+
+      If you develop a new program, and you want it to be of the greatest
+    possible use to the public, the best way to achieve this is to make it
+    free software which everyone can redistribute and change under these terms.
+
+      To do so, attach the following notices to the program.  It is safest
+    to attach them to the start of each source file to most effectively
+    convey the exclusion of warranty; and each file should have at least
+    the "copyright" line and a pointer to where the full notice is found.
+
+        <one line to give the program's name and a brief idea of what it does.>
+        Copyright (C) <year>  <name of author>
+
+        This program is free software; you can redistribute it and/or modify
+        it under the terms of the GNU General Public License as published by
+        the Free Software Foundation; either version 2 of the License, or
+        (at your option) any later version.
+
+        This program is distributed in the hope that it will be useful,
+        but WITHOUT ANY WARRANTY; without even the implied warranty of
+        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+        GNU General Public License for more details.
+
+        You should have received a copy of the GNU General Public License
+        along with this program; if not, write to the Free Software
+        Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+    Also add information on how to contact you by electronic and paper mail.
+
+    If the program is interactive, make it output a short notice like this
+    when it starts in an interactive mode:
+
+        Gnomovision version 69, Copyright (C) year name of author
+        Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+        This is free software, and you are welcome to redistribute it
+        under certain conditions; type `show c' for details.
+
+    The hypothetical commands `show w' and `show c' should show the appropriate
+    parts of the General Public License.  Of course, the commands you use may
+    be called something other than `show w' and `show c'; they could even be
+    mouse-clicks or menu items--whatever suits your program.
+
+    You should also get your employer (if you work as a programmer) or your
+    school, if any, to sign a "copyright disclaimer" for the program, if
+    necessary.  Here is a sample; alter the names:
+
+      Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+      `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+      <signature of Ty Coon>, 1 April 1989
+      Ty Coon, President of Vice
+
+    This General Public License does not permit incorporating your program into
+    proprietary programs.  If your program is a subroutine library, you may
+    consider it more useful to permit linking proprietary applications with the
+    library.  If this is what you want to do, use the GNU Library General
+    Public License instead of this License.
+
+    ----------------------------------------------------------------------
+
+    The bundled ZLib code is licensed under the ZLib license:
+
+    Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler
+
+      This software is provided 'as-is', without any express or implied
+      warranty.  In no event will the authors be held liable for any damages
+      arising from the use of this software.
+
+      Permission is granted to anyone to use this software for any purpose,
+      including commercial applications, and to alter it and redistribute it
+      freely, subject to the following restrictions:
+
+      1. The origin of this software must not be misrepresented; you must not
+         claim that you wrote the original software. If you use this software
+         in a product, an acknowledgment in the product documentation would be
+         appreciated but is not required.
+      2. Altered source versions must be plainly marked as such, and must not be
+         misrepresented as being the original software.
+      3. This notice may not be removed or altered from any source distribution.
+
+      Jean-loup Gailly        Mark Adler
+      jloup@gzip.org          madler@alumni.caltech.edu
+
+    ----------------------------------------------------------------------
+
+    The Clar framework is licensed under the MIT license:
+
+    Copyright (C) 2011 by Vicent Marti
+
+    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.
+
+    ----------------------------------------------------------------------
+
+    The regex library (deps/regex/) is licensed under the GNU LGPL
+
+                      GNU LESSER GENERAL PUBLIC LICENSE
+                           Version 2.1, February 1999
+
+     Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+     Everyone is permitted to copy and distribute verbatim copies
+     of this license document, but changing it is not allowed.
+
+    [This is the first released version of the Lesser GPL.  It also counts
+     as the successor of the GNU Library Public License, version 2, hence
+     the version number 2.1.]
+
+                                Preamble
+
+      The licenses for most software are designed to take away your
+    freedom to share and change it.  By contrast, the GNU General Public
+    Licenses are intended to guarantee your freedom to share and change
+    free software--to make sure the software is free for all its users.
+
+      This license, the Lesser General Public License, applies to some
+    specially designated software packages--typically libraries--of the
+    Free Software Foundation and other authors who decide to use it.  You
+    can use it too, but we suggest you first think carefully about whether
+    this license or the ordinary General Public License is the better
+    strategy to use in any particular case, based on the explanations below.
+
+      When we speak of free software, we are referring to freedom of use,
+    not price.  Our General Public Licenses are designed to make sure that
+    you have the freedom to distribute copies of free software (and charge
+    for this service if you wish); that you receive source code or can get
+    it if you want it; that you can change the software and use pieces of
+    it in new free programs; and that you are informed that you can do
+    these things.
+
+      To protect your rights, we need to make restrictions that forbid
+    distributors to deny you these rights or to ask you to surrender these
+    rights.  These restrictions translate to certain responsibilities for
+    you if you distribute copies of the library or if you modify it.
+
+      For example, if you distribute copies of the library, whether gratis
+    or for a fee, you must give the recipients all the rights that we gave
+    you.  You must make sure that they, too, receive or can get the source
+    code.  If you link other code with the library, you must provide
+    complete object files to the recipients, so that they can relink them
+    with the library after making changes to the library and recompiling
+    it.  And you must show them these terms so they know their rights.
+
+      We protect your rights with a two-step method: (1) we copyright the
+    library, and (2) we offer you this license, which gives you legal
+    permission to copy, distribute and/or modify the library.
+
+      To protect each distributor, we want to make it very clear that
+    there is no warranty for the free library.  Also, if the library is
+    modified by someone else and passed on, the recipients should know
+    that what they have is not the original version, so that the original
+    author's reputation will not be affected by problems that might be
+    introduced by others.
+
+      Finally, software patents pose a constant threat to the existence of
+    any free program.  We wish to make sure that a company cannot
+    effectively restrict the users of a free program by obtaining a
+    restrictive license from a patent holder.  Therefore, we insist that
+    any patent license obtained for a version of the library must be
+    consistent with the full freedom of use specified in this license.
+
+      Most GNU software, including some libraries, is covered by the
+    ordinary GNU General Public License.  This license, the GNU Lesser
+    General Public License, applies to certain designated libraries, and
+    is quite different from the ordinary General Public License.  We use
+    this license for certain libraries in order to permit linking those
+    libraries into non-free programs.
+
+      When a program is linked with a library, whether statically or using
+    a shared library, the combination of the two is legally speaking a
+    combined work, a derivative of the original library.  The ordinary
+    General Public License therefore permits such linking only if the
+    entire combination fits its criteria of freedom.  The Lesser General
+    Public License permits more lax criteria for linking other code with
+    the library.
+
+      We call this license the "Lesser" General Public License because it
+    does Less to protect the user's freedom than the ordinary General
+    Public License.  It also provides other free software developers Less
+    of an advantage over competing non-free programs.  These disadvantages
+    are the reason we use the ordinary General Public License for many
+    libraries.  However, the Lesser license provides advantages in certain
+    special circumstances.
+
+      For example, on rare occasions, there may be a special need to
+    encourage the widest possible use of a certain library, so that it becomes
+    a de-facto standard.  To achieve this, non-free programs must be
+    allowed to use the library.  A more frequent case is that a free
+    library does the same job as widely used non-free libraries.  In this
+    case, there is little to gain by limiting the free library to free
+    software only, so we use the Lesser General Public License.
+
+      In other cases, permission to use a particular library in non-free
+    programs enables a greater number of people to use a large body of
+    free software.  For example, permission to use the GNU C Library in
+    non-free programs enables many more people to use the whole GNU
+    operating system, as well as its variant, the GNU/Linux operating
+    system.
+
+      Although the Lesser General Public License is Less protective of the
+    users' freedom, it does ensure that the user of a program that is
+    linked with the Library has the freedom and the wherewithal to run
+    that program using a modified version of the Library.
+
+      The precise terms and conditions for copying, distribution and
+    modification follow.  Pay close attention to the difference between a
+    "work based on the library" and a "work that uses the library".  The
+    former contains code derived from the library, whereas the latter must
+    be combined with the library in order to run.
+
+                      GNU LESSER GENERAL PUBLIC LICENSE
+       TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+      0. This License Agreement applies to any software library or other
+    program which contains a notice placed by the copyright holder or
+    other authorized party saying it may be distributed under the terms of
+    this Lesser General Public License (also called "this License").
+    Each licensee is addressed as "you".
+
+      A "library" means a collection of software functions and/or data
+    prepared so as to be conveniently linked with application programs
+    (which use some of those functions and data) to form executables.
+
+      The "Library", below, refers to any such software library or work
+    which has been distributed under these terms.  A "work based on the
+    Library" means either the Library or any derivative work under
+    copyright law: that is to say, a work containing the Library or a
+    portion of it, either verbatim or with modifications and/or translated
+    straightforwardly into another language.  (Hereinafter, translation is
+    included without limitation in the term "modification".)
+
+      "Source code" for a work means the preferred form of the work for
+    making modifications to it.  For a library, complete source code means
+    all the source code for all modules it contains, plus any associated
+    interface definition files, plus the scripts used to control compilation
+    and installation of the library.
+
+      Activities other than copying, distribution and modification are not
+    covered by this License; they are outside its scope.  The act of
+    running a program using the Library is not restricted, and output from
+    such a program is covered only if its contents constitute a work based
+    on the Library (independent of the use of the Library in a tool for
+    writing it).  Whether that is true depends on what the Library does
+    and what the program that uses the Library does.
+
+      1. You may copy and distribute verbatim copies of the Library's
+    complete source code as you receive it, in any medium, provided that
+    you conspicuously and appropriately publish on each copy an
+    appropriate copyright notice and disclaimer of warranty; keep intact
+    all the notices that refer to this License and to the absence of any
+    warranty; and distribute a copy of this License along with the
+    Library.
+
+      You may charge a fee for the physical act of transferring a copy,
+    and you may at your option offer warranty protection in exchange for a
+    fee.
+
+      2. You may modify your copy or copies of the Library or any portion
+    of it, thus forming a work based on the Library, and copy and
+    distribute such modifications or work under the terms of Section 1
+    above, provided that you also meet all of these conditions:
+
+        a) The modified work must itself be a software library.
+
+        b) You must cause the files modified to carry prominent notices
+        stating that you changed the files and the date of any change.
+
+        c) You must cause the whole of the work to be licensed at no
+        charge to all third parties under the terms of this License.
+
+        d) If a facility in the modified Library refers to a function or a
+        table of data to be supplied by an application program that uses
+        the facility, other than as an argument passed when the facility
+        is invoked, then you must make a good faith effort to ensure that,
+        in the event an application does not supply such function or
+        table, the facility still operates, and performs whatever part of
+        its purpose remains meaningful.
+
+        (For example, a function in a library to compute square roots has
+        a purpose that is entirely well-defined independent of the
+        application.  Therefore, Subsection 2d requires that any
+        application-supplied function or table used by this function must
+        be optional: if the application does not supply it, the square
+        root function must still compute square roots.)
+
+    These requirements apply to the modified work as a whole.  If
+    identifiable sections of that work are not derived from the Library,
+    and can be reasonably considered independent and separate works in
+    themselves, then this License, and its terms, do not apply to those
+    sections when you distribute them as separate works.  But when you
+    distribute the same sections as part of a whole which is a work based
+    on the Library, the distribution of the whole must be on the terms of
+    this License, whose permissions for other licensees extend to the
+    entire whole, and thus to each and every part regardless of who wrote
+    it.
+
+    Thus, it is not the intent of this section to claim rights or contest
+    your rights to work written entirely by you; rather, the intent is to
+    exercise the right to control the distribution of derivative or
+    collective works based on the Library.
+
+    In addition, mere aggregation of another work not based on the Library
+    with the Library (or with a work based on the Library) on a volume of
+    a storage or distribution medium does not bring the other work under
+    the scope of this License.
+
+      3. You may opt to apply the terms of the ordinary GNU General Public
+    License instead of this License to a given copy of the Library.  To do
+    this, you must alter all the notices that refer to this License, so
+    that they refer to the ordinary GNU General Public License, version 2,
+    instead of to this License.  (If a newer version than version 2 of the
+    ordinary GNU General Public License has appeared, then you can specify
+    that version instead if you wish.)  Do not make any other change in
+    these notices.
+
+      Once this change is made in a given copy, it is irreversible for
+    that copy, so the ordinary GNU General Public License applies to all
+    subsequent copies and derivative works made from that copy.
+
+      This option is useful when you wish to copy part of the code of
+    the Library into a program that is not a library.
+
+      4. You may copy and distribute the Library (or a portion or
+    derivative of it, under Section 2) in object code or executable form
+    under the terms of Sections 1 and 2 above provided that you accompany
+    it with the complete corresponding machine-readable source code, which
+    must be distributed under the terms of Sections 1 and 2 above on a
+    medium customarily used for software interchange.
+
+      If distribution of object code is made by offering access to copy
+    from a designated place, then offering equivalent access to copy the
+    source code from the same place satisfies the requirement to
+    distribute the source code, even though third parties are not
+    compelled to copy the source along with the object code.
+
+      5. A program that contains no derivative of any portion of the
+    Library, but is designed to work with the Library by being compiled or
+    linked with it, is called a "work that uses the Library".  Such a
+    work, in isolation, is not a derivative work of the Library, and
+    therefore falls outside the scope of this License.
+
+      However, linking a "work that uses the Library" with the Library
+    creates an executable that is a derivative of the Library (because it
+    contains portions of the Library), rather than a "work that uses the
+    library".  The executable is therefore covered by this License.
+    Section 6 states terms for distribution of such executables.
+
+      When a "work that uses the Library" uses material from a header file
+    that is part of the Library, the object code for the work may be a
+    derivative work of the Library even though the source code is not.
+    Whether this is true is especially significant if the work can be
+    linked without the Library, or if the work is itself a library.  The
+    threshold for this to be true is not precisely defined by law.
+
+      If such an object file uses only numerical parameters, data
+    structure layouts and accessors, and small macros and small inline
+    functions (ten lines or less in length), then the use of the object
+    file is unrestricted, regardless of whether it is legally a derivative
+    work.  (Executables containing this object code plus portions of the
+    Library will still fall under Section 6.)
+
+      Otherwise, if the work is a derivative of the Library, you may
+    distribute the object code for the work under the terms of Section 6.
+    Any executables containing that work also fall under Section 6,
+    whether or not they are linked directly with the Library itself.
+
+      6. As an exception to the Sections above, you may also combine or
+    link a "work that uses the Library" with the Library to produce a
+    work containing portions of the Library, and distribute that work
+    under terms of your choice, provided that the terms permit
+    modification of the work for the customer's own use and reverse
+    engineering for debugging such modifications.
+
+      You must give prominent notice with each copy of the work that the
+    Library is used in it and that the Library and its use are covered by
+    this License.  You must supply a copy of this License.  If the work
+    during execution displays copyright notices, you must include the
+    copyright notice for the Library among them, as well as a reference
+    directing the user to the copy of this License.  Also, you must do one
+    of these things:
+
+        a) Accompany the work with the complete corresponding
+        machine-readable source code for the Library including whatever
+        changes were used in the work (which must be distributed under
+        Sections 1 and 2 above); and, if the work is an executable linked
+        with the Library, with the complete machine-readable "work that
+        uses the Library", as object code and/or source code, so that the
+        user can modify the Library and then relink to produce a modified
+        executable containing the modified Library.  (It is understood
+        that the user who changes the contents of definitions files in the
+        Library will not necessarily be able to recompile the application
+        to use the modified definitions.)
+
+        b) Use a suitable shared library mechanism for linking with the
+        Library.  A suitable mechanism is one that (1) uses at run time a
+        copy of the library already present on the user's computer system,
+        rather than copying library functions into the executable, and (2)
+        will operate properly with a modified version of the library, if
+        the user installs one, as long as the modified version is
+        interface-compatible with the version that the work was made with.
+
+        c) Accompany the work with a written offer, valid for at
+        least three years, to give the same user the materials
+        specified in Subsection 6a, above, for a charge no more
+        than the cost of performing this distribution.
+
+        d) If distribution of the work is made by offering access to copy
+        from a designated place, offer equivalent access to copy the above
+        specified materials from the same place.
+
+        e) Verify that the user has already received a copy of these
+        materials or that you have already sent this user a copy.
+
+      For an executable, the required form of the "work that uses the
+    Library" must include any data and utility programs needed for
+    reproducing the executable from it.  However, as a special exception,
+    the materials to be distributed need not include anything that is
+    normally distributed (in either source or binary form) with the major
+    components (compiler, kernel, and so on) of the operating system on
+    which the executable runs, unless that component itself accompanies
+    the executable.
+
+      It may happen that this requirement contradicts the license
+    restrictions of other proprietary libraries that do not normally
+    accompany the operating system.  Such a contradiction means you cannot
+    use both them and the Library together in an executable that you
+    distribute.
+
+      7. You may place library facilities that are a work based on the
+    Library side-by-side in a single library together with other library
+    facilities not covered by this License, and distribute such a combined
+    library, provided that the separate distribution of the work based on
+    the Library and of the other library facilities is otherwise
+    permitted, and provided that you do these two things:
+
+        a) Accompany the combined library with a copy of the same work
+        based on the Library, uncombined with any other library
+        facilities.  This must be distributed under the terms of the
+        Sections above.
+
+        b) Give prominent notice with the combined library of the fact
+        that part of it is a work based on the Library, and explaining
+        where to find the accompanying uncombined form of the same work.
+
+      8. You may not copy, modify, sublicense, link with, or distribute
+    the Library except as expressly provided under this License.  Any
+    attempt otherwise to copy, modify, sublicense, link with, or
+    distribute the Library is void, and will automatically terminate your
+    rights under this License.  However, parties who have received copies,
+    or rights, from you under this License will not have their licenses
+    terminated so long as such parties remain in full compliance.
+
+      9. You are not required to accept this License, since you have not
+    signed it.  However, nothing else grants you permission to modify or
+    distribute the Library or its derivative works.  These actions are
+    prohibited by law if you do not accept this License.  Therefore, by
+    modifying or distributing the Library (or any work based on the
+    Library), you indicate your acceptance of this License to do so, and
+    all its terms and conditions for copying, distributing or modifying
+    the Library or works based on it.
+
+      10. Each time you redistribute the Library (or any work based on the
+    Library), the recipient automatically receives a license from the
+    original licensor to copy, distribute, link with or modify the Library
+    subject to these terms and conditions.  You may not impose any further
+    restrictions on the recipients' exercise of the rights granted herein.
+    You are not responsible for enforcing compliance by third parties with
+    this License.
+
+      11. If, as a consequence of a court judgment or allegation of patent
+    infringement or for any other reason (not limited to patent issues),
+    conditions are imposed on you (whether by court order, agreement or
+    otherwise) that contradict the conditions of this License, they do not
+    excuse you from the conditions of this License.  If you cannot
+    distribute so as to satisfy simultaneously your obligations under this
+    License and any other pertinent obligations, then as a consequence you
+    may not distribute the Library at all.  For example, if a patent
+    license would not permit royalty-free redistribution of the Library by
+    all those who receive copies directly or indirectly through you, then
+    the only way you could satisfy both it and this License would be to
+    refrain entirely from distribution of the Library.
+
+    If any portion of this section is held invalid or unenforceable under any
+    particular circumstance, the balance of the section is intended to apply,
+    and the section as a whole is intended to apply in other circumstances.
+
+    It is not the purpose of this section to induce you to infringe any
+    patents or other property right claims or to contest validity of any
+    such claims; this section has the sole purpose of protecting the
+    integrity of the free software distribution system which is
+    implemented by public license practices.  Many people have made
+    generous contributions to the wide range of software distributed
+    through that system in reliance on consistent application of that
+    system; it is up to the author/donor to decide if he or she is willing
+    to distribute software through any other system and a licensee cannot
+    impose that choice.
+
+    This section is intended to make thoroughly clear what is believed to
+    be a consequence of the rest of this License.
+
+      12. If the distribution and/or use of the Library is restricted in
+    certain countries either by patents or by copyrighted interfaces, the
+    original copyright holder who places the Library under this License may add
+    an explicit geographical distribution limitation excluding those countries,
+    so that distribution is permitted only in or among countries not thus
+    excluded.  In such case, this License incorporates the limitation as if
+    written in the body of this License.
+
+      13. The Free Software Foundation may publish revised and/or new
+    versions of the Lesser General Public License from time to time.
+    Such new versions will be similar in spirit to the present version,
+    but may differ in detail to address new problems or concerns.
+
+    Each version is given a distinguishing version number.  If the Library
+    specifies a version number of this License which applies to it and
+    "any later version", you have the option of following the terms and
+    conditions either of that version or of any later version published by
+    the Free Software Foundation.  If the Library does not specify a
+    license version number, you may choose any version ever published by
+    the Free Software Foundation.
+
+      14. If you wish to incorporate parts of the Library into other free
+    programs whose distribution conditions are incompatible with these,
+    write to the author to ask for permission.  For software which is
+    copyrighted by the Free Software Foundation, write to the Free
+    Software Foundation; we sometimes make exceptions for this.  Our
+    decision will be guided by the two goals of preserving the free status
+    of all derivatives of our free software and of promoting the sharing
+    and reuse of software generally.
+
+                                NO WARRANTY
+
+      15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+    WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+    EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+    OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+    KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+    PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+    LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+    THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+      16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+    WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+    AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+    FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+    CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+    LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+    RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+    FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+    SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+    DAMAGES.
+
+                         END OF TERMS AND CONDITIONS
+
+               How to Apply These Terms to Your New Libraries
+
+      If you develop a new library, and you want it to be of the greatest
+    possible use to the public, we recommend making it free software that
+    everyone can redistribute and change.  You can do so by permitting
+    redistribution under these terms (or, alternatively, under the terms of the
+    ordinary General Public License).
+
+      To apply these terms, attach the following notices to the library.  It is
+    safest to attach them to the start of each source file to most effectively
+    convey the exclusion of warranty; and each file should have at least the
+    "copyright" line and a pointer to where the full notice is found.
+
+        <one line to give the library's name and a brief idea of what it does.>
+        Copyright (C) <year>  <name of author>
+
+        This library is free software; you can redistribute it and/or
+        modify it under the terms of the GNU Lesser General Public
+        License as published by the Free Software Foundation; either
+        version 2.1 of the License, or (at your option) any later version.
+
+        This library is distributed in the hope that it will be useful,
+        but WITHOUT ANY WARRANTY; without even the implied warranty of
+        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+        Lesser General Public License for more details.
+
+        You should have received a copy of the GNU Lesser General Public
+        License along with this library; if not, write to the Free Software
+        Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+    Also add information on how to contact you by electronic and paper mail.
+
+    You should also get your employer (if you work as a programmer) or your
+    school, if any, to sign a "copyright disclaimer" for the library, if
+    necessary.  Here is a sample; alter the names:
+
+      Yoyodyne, Inc., hereby disclaims all copyright interest in the
+      library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+      <signature of Ty Coon>, 1 April 1990
+      Ty Coon, President of Vice
+
+    That's all there is to it!
+
+    ----------------------------------------------------------------------
+
+* libssh2 - https://www.libssh2.org/license.html
+
+    Copyright (c) 2004-2007 Sara Golemon <sarag@libssh2.org>
+    Copyright (c) 2005,2006 Mikhail Gusarov <dottedmag@dottedmag.net>
+    Copyright (c) 2006-2007 The Written Word, Inc.
+    Copyright (c) 2007 Eli Fant <elifantu@mail.ru>
+    Copyright (c) 2009 Daniel Stenberg
+    Copyright (C) 2008, 2009 Simon Josefsson
+    All rights reserved.
+
+    Redistribution and use in source and binary forms,
+    with or without modification, are permitted provided
+    that the following conditions are met:
+
+      Redistributions of source code must retain the above
+      copyright notice, this list of conditions and the
+      following disclaimer.
+
+      Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials
+      provided with the distribution.
+
+      Neither the name of the copyright holder nor the names
+      of any other contributors may be used to endorse or
+      promote products derived from this software without
+      specific prior written permission.
+
+    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+    CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+    OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+    BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+    INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+    WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+    USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+    OF SUCH DAMAGE.
+
+* libcurl - https://curl.haxx.se/docs/copyright.html
+
+    COPYRIGHT AND PERMISSION NOTICE
+
+    Copyright (c) 1996 - 2014, Daniel Stenberg, daniel@haxx.se.
+
+    All rights reserved.
+
+    Permission to use, copy, modify, and distribute this software for any
+    purpose with or without fee is hereby granted, provided that the above
+    copyright notice and this permission notice appear in all copies.
+
+    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 OF THIRD PARTY RIGHTS.
+    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.
+
+    Except as contained in this notice, the name of a copyright holder shall not
+    be used in advertising or otherwise to promote the sale, use or other
+    dealings in this Software without prior written authorization of the
+    copyright holder.
+
+* flate2-rs - https://github.com/alexcrichton/flate2-rs/blob/master/LICENSE-MIT
+* link-config - https://github.com/alexcrichton/link-config/blob/master/LICENSE-MIT
+* openssl-static-sys - https://github.com/alexcrichton/openssl-static-sys/blob/master/LICENSE-MIT
+* toml-rs - https://github.com/alexcrichton/toml-rs/blob/master/LICENSE-MIT
+* libssh2-static-sys - https://github.com/alexcrichton/libssh2-static-sys/blob/master/LICENSE-MIT
+* git2-rs - https://github.com/alexcrichton/git2-rs/blob/master/LICENSE-MIT
+* tar-rs - https://github.com/alexcrichton/tar-rs/blob/master/LICENSE-MIT
+
+    Copyright (c) 2014 Alex Crichton
+
+    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.
+
+* glob - https://github.com/rust-lang/glob/blob/master/LICENSE-MIT
+* semver - https://github.com/rust-lang/semver/blob/master/LICENSE-MIT
+
+    Copyright (c) 2014 The Rust Project Developers
+
+    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.
+
+* rust-url - https://github.com/servo/rust-url/blob/master/LICENSE-MIT
+
+    Copyright (c) 2006-2009 Graydon Hoare
+    Copyright (c) 2009-2013 Mozilla Foundation
+
+    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.
+
+* rust-encoding - https://github.com/lifthrasiir/rust-encoding/blob/master/LICENSE.txt
+
+    The MIT License (MIT)
+
+    Copyright (c) 2013, Kang Seonghoon.
+
+    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.
+
+* curl-rust - https://github.com/carllerche/curl-rust/blob/master/LICENSE
+
+    Copyright (c) 2014 Carl Lerche
+
+    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.
+
+* docopt.rs - https://github.com/docopt/docopt.rs/blob/master/UNLICENSE
+
+    This is free and unencumbered software released into the public domain.
+
+    Anyone is free to copy, modify, publish, use, compile, sell, or
+    distribute this software, either in source code form or as a compiled
+    binary, for any purpose, commercial or non-commercial, and by any
+    means.
+
+    In jurisdictions that recognize copyright laws, the author or authors
+    of this software dedicate any and all copyright interest in the
+    software to the public domain. We make this dedication for the benefit
+    of the public at large and to the detriment of our heirs and
+    successors. We intend this dedication to be an overt act of
+    relinquishment in perpetuity of all present and future rights to this
+    software under copyright law.
+
+    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 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.
+
+    For more information, please refer to <https://unlicense.org/>
+
diff --git a/linux-x86/1.36.0/share/doc/rust/README.md b/linux-x86/1.36.0/share/doc/rust/README.md
new file mode 100644
index 0000000..75d7823
--- /dev/null
+++ b/linux-x86/1.36.0/share/doc/rust/README.md
@@ -0,0 +1,285 @@
+# The Rust Programming Language
+
+This is the main source code repository for [Rust]. It contains the compiler,
+standard library, and documentation.
+
+[Rust]: https://www.rust-lang.org
+
+## Quick Start
+[quick-start]: #quick-start
+
+Read ["Installation"] from [The Book].
+
+["Installation"]: https://doc.rust-lang.org/book/ch01-01-installation.html
+[The Book]: https://doc.rust-lang.org/book/index.html
+
+## Installing from Source
+[building-from-source]: #building-from-source
+
+_Note: If you wish to contribute to the compiler, you should read
+[this chapter](https://rust-lang.github.io/rustc-guide/how-to-build-and-run.html)
+of the rustc-guide instead._
+
+### Building on *nix
+1. Make sure you have installed the dependencies:
+
+   * `g++` 4.7 or later or `clang++` 3.x or later
+   * `python` 2.7 (but not 3.x)
+   * GNU `make` 3.81 or later
+   * `cmake` 3.4.3 or later
+   * `curl`
+   * `git`
+
+2. Clone the [source] with `git`:
+
+   ```sh
+   $ git clone https://github.com/rust-lang/rust.git
+   $ cd rust
+   ```
+
+[source]: https://github.com/rust-lang/rust
+
+3. Build and install:
+
+    ```sh
+    $ ./x.py build && sudo ./x.py install
+    ```
+
+    If after running `sudo ./x.py install` you see an error message like
+
+    ```
+    error: failed to load source for a dependency on 'cc'
+    ```
+
+    then run these two commands and then try `sudo ./x.py install` again:
+
+    ```
+    $ cargo install cargo-vendor
+    ```
+
+    ```
+    $ cargo vendor
+    ```
+
+    > ***Note:*** Install locations can be adjusted by copying the config file
+    > from `./config.toml.example` to `./config.toml`, and
+    > adjusting the `prefix` option under `[install]`. Various other options, such
+    > as enabling debug information, are also supported, and are documented in
+    > the config file.
+
+    When complete, `sudo ./x.py install` will place several programs into
+    `/usr/local/bin`: `rustc`, the Rust compiler, and `rustdoc`, the
+    API-documentation tool. This install does not include [Cargo],
+    Rust's package manager, which you may also want to build.
+
+[Cargo]: https://github.com/rust-lang/cargo
+
+### Building on Windows
+[building-on-windows]: #building-on-windows
+
+There are two prominent ABIs in use on Windows: the native (MSVC) ABI used by
+Visual Studio, and the GNU ABI used by the GCC toolchain. Which version of Rust
+you need depends largely on what C/C++ libraries you want to interoperate with:
+for interop with software produced by Visual Studio use the MSVC build of Rust;
+for interop with GNU software built using the MinGW/MSYS2 toolchain use the GNU
+build.
+
+#### MinGW
+[windows-mingw]: #windows-mingw
+
+[MSYS2][msys2] can be used to easily build Rust on Windows:
+
+[msys2]: https://msys2.github.io/
+
+1. Grab the latest [MSYS2 installer][msys2] and go through the installer.
+
+2. Run `mingw32_shell.bat` or `mingw64_shell.bat` from wherever you installed
+   MSYS2 (i.e. `C:\msys64`), depending on whether you want 32-bit or 64-bit
+   Rust. (As of the latest version of MSYS2 you have to run `msys2_shell.cmd
+   -mingw32` or `msys2_shell.cmd -mingw64` from the command line instead)
+
+3. From this terminal, install the required tools:
+
+   ```sh
+   # Update package mirrors (may be needed if you have a fresh install of MSYS2)
+   $ pacman -Sy pacman-mirrors
+
+   # Install build tools needed for Rust. If you're building a 32-bit compiler,
+   # then replace "x86_64" below with "i686". If you've already got git, python,
+   # or CMake installed and in PATH you can remove them from this list. Note
+   # that it is important that you do **not** use the 'python2' and 'cmake'
+   # packages from the 'msys2' subsystem. The build has historically been known
+   # to fail with these packages.
+   $ pacman -S git \
+               make \
+               diffutils \
+               tar \
+               mingw-w64-x86_64-python2 \
+               mingw-w64-x86_64-cmake \
+               mingw-w64-x86_64-gcc
+   ```
+
+4. Navigate to Rust's source code (or clone it), then build it:
+
+   ```sh
+   $ ./x.py build && ./x.py install
+   ```
+
+#### MSVC
+[windows-msvc]: #windows-msvc
+
+MSVC builds of Rust additionally require an installation of Visual Studio 2017
+(or later) so `rustc` can use its linker.  The simplest way is to get the
+[Visual Studio Build Tools] and check the “C++ build tools” workload.
+
+[Visual Studio Build Tools]: https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019
+
+At last check (cmake 3.14.3 and msvc 16.0.3) using the 2019 tools fails to
+build the in-tree LLVM build with a CMake error, so use 2017 instead by
+including the “MSVC v141 – VS 2017 C++ x64/x86 build tools (v14.16)” component.
+
+With these dependencies installed, you can build the compiler in a `cmd.exe`
+shell with:
+
+```sh
+> python x.py build
+```
+
+Currently, building Rust only works with some known versions of Visual Studio. If
+you have a more recent version installed the build system doesn't understand
+then you may need to force rustbuild to use an older version. This can be done
+by manually calling the appropriate vcvars file before running the bootstrap.
+
+```batch
+> CALL "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat"
+> python x.py build
+```
+
+#### Specifying an ABI
+[specifying-an-abi]: #specifying-an-abi
+
+Each specific ABI can also be used from either environment (for example, using
+the GNU ABI in PowerShell) by using an explicit build triple. The available
+Windows build triples are:
+- GNU ABI (using GCC)
+    - `i686-pc-windows-gnu`
+    - `x86_64-pc-windows-gnu`
+- The MSVC ABI
+    - `i686-pc-windows-msvc`
+    - `x86_64-pc-windows-msvc`
+
+The build triple can be specified by either specifying `--build=<triple>` when
+invoking `x.py` commands, or by copying the `config.toml` file (as described
+in Building From Source), and modifying the `build` option under the `[build]`
+section.
+
+### Configure and Make
+[configure-and-make]: #configure-and-make
+
+While it's not the recommended build system, this project also provides a
+configure script and makefile (the latter of which just invokes `x.py`).
+
+```sh
+$ ./configure
+$ make && sudo make install
+```
+
+When using the configure script, the generated `config.mk` file may override the
+`config.toml` file. To go back to the `config.toml` file, delete the generated
+`config.mk` file.
+
+## Building Documentation
+[building-documentation]: #building-documentation
+
+If you’d like to build the documentation, it’s almost the same:
+
+```sh
+$ ./x.py doc
+```
+
+The generated documentation will appear under `doc` in the `build` directory for
+the ABI used. I.e., if the ABI was `x86_64-pc-windows-msvc`, the directory will be
+`build\x86_64-pc-windows-msvc\doc`.
+
+## Notes
+[notes]: #notes
+
+Since the Rust compiler is written in Rust, it must be built by a
+precompiled "snapshot" version of itself (made in an earlier stage of
+development). As such, source builds require a connection to the Internet, to
+fetch snapshots, and an OS that can execute the available snapshot binaries.
+
+Snapshot binaries are currently built and tested on several platforms:
+
+| Platform / Architecture  | x86 | x86_64 |
+|--------------------------|-----|--------|
+| Windows (7, 8, 10, ...)  | ✓   | ✓      |
+| Linux (2.6.18 or later)  | ✓   | ✓      |
+| OSX (10.7 Lion or later) | ✓   | ✓      |
+
+You may find that other platforms work, but these are our officially
+supported build environments that are most likely to work.
+
+There is more advice about hacking on Rust in [CONTRIBUTING.md].
+
+[CONTRIBUTING.md]: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md
+
+## Getting Help
+[getting-help]: #getting-help
+
+The Rust community congregates in a few places:
+
+* [Stack Overflow] - Direct questions about using the language.
+* [users.rust-lang.org] - General discussion and broader questions.
+* [/r/rust] - News and general discussion.
+
+[Stack Overflow]: https://stackoverflow.com/questions/tagged/rust
+[/r/rust]: https://reddit.com/r/rust
+[users.rust-lang.org]: https://users.rust-lang.org/
+
+## Contributing
+[contributing]: #contributing
+
+To contribute to Rust, please see [CONTRIBUTING](CONTRIBUTING.md).
+
+Rust has an [IRC] culture and most real-time collaboration happens in a
+variety of channels on Mozilla's IRC network, irc.mozilla.org. The
+most popular channel is [#rust], a venue for general discussion about
+Rust. And a good place to ask for help would be [#rust-beginners].
+
+The [rustc guide] might be a good place to start if you want to find out how
+various parts of the compiler work.
+
+Also, you may find the [rustdocs for the compiler itself][rustdocs] useful.
+
+[IRC]: https://en.wikipedia.org/wiki/Internet_Relay_Chat
+[#rust]: irc://irc.mozilla.org/rust
+[#rust-beginners]: irc://irc.mozilla.org/rust-beginners
+[rustc guide]: https://rust-lang.github.io/rustc-guide/about-this-guide.html
+[rustdocs]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc/
+
+## License
+[license]: #license
+
+Rust is primarily distributed under the terms of both the MIT license
+and the Apache License (Version 2.0), with portions covered by various
+BSD-like licenses.
+
+See [LICENSE-APACHE](LICENSE-APACHE), [LICENSE-MIT](LICENSE-MIT), and
+[COPYRIGHT](COPYRIGHT) for details.
+
+## Trademark
+[trademark]: #trademark
+
+The Rust programming language is an open source, community project governed
+by a core team. It is also sponsored by the Mozilla Foundation (“Mozilla”),
+which owns and protects the Rust and Cargo trademarks and logos
+(the “Rust Trademarks”).
+
+If you want to use these names or brands, please read the [media guide][media-guide].
+
+Third-party logos may be subject to third-party copyrights and trademarks. See
+[Licenses][policies-licenses] for details.
+
+[media-guide]: https://www.rust-lang.org/policies/media-guide
+[policies-licenses]: https://www.rust-lang.org/policies/licenses
diff --git a/linux-x86/1.36.0/share/doc/rust/README.md.old b/linux-x86/1.36.0/share/doc/rust/README.md.old
new file mode 100644
index 0000000..fb89d22
--- /dev/null
+++ b/linux-x86/1.36.0/share/doc/rust/README.md.old
@@ -0,0 +1,90 @@
+# Cargo
+
+Cargo downloads your Rust project’s dependencies and compiles your project.
+
+Learn more at https://doc.rust-lang.org/cargo/
+
+## Code Status
+
+[![Build Status](https://travis-ci.com/rust-lang/cargo.svg?branch=master)](https://travis-ci.com/rust-lang/cargo)
+[![Build Status](https://ci.appveyor.com/api/projects/status/github/rust-lang/cargo?branch=master&svg=true)](https://ci.appveyor.com/project/rust-lang-libs/cargo)
+
+Code documentation: https://docs.rs/cargo/
+
+## Installing Cargo
+
+Cargo is distributed by default with Rust, so if you've got `rustc` installed
+locally you probably also have `cargo` installed locally.
+
+## Compiling from Source
+
+Cargo requires the following tools and packages to build:
+
+* `git`
+* `python`
+* `curl` (on Unix)
+* OpenSSL headers (only for Unix, this is the `libssl-dev` package on ubuntu)
+* `cargo` and `rustc`
+
+First, you'll want to check out this repository
+
+```
+git clone https://github.com/rust-lang/cargo
+cd cargo
+```
+
+With `cargo` already installed, you can simply run:
+
+```
+cargo build --release
+```
+
+## Adding new subcommands to Cargo
+
+Cargo is designed to be extensible with new subcommands without having to modify
+Cargo itself. See [the Wiki page][third-party-subcommands] for more details and
+a list of known community-developed subcommands.
+
+[third-party-subcommands]: https://github.com/rust-lang/cargo/wiki/Third-party-cargo-subcommands
+
+
+## Releases
+
+High level release notes are available as part of [Rust's release notes][rel].
+Cargo releases coincide with Rust releases.
+
+[rel]: https://github.com/rust-lang/rust/blob/master/RELEASES.md
+
+## Reporting issues
+
+Found a bug? We'd love to know about it!
+
+Please report all issues on the GitHub [issue tracker][issues].
+
+[issues]: https://github.com/rust-lang/cargo/issues
+
+## Contributing
+
+See [CONTRIBUTING.md](CONTRIBUTING.md). You may also find the architecture
+documentation useful ([ARCHITECTURE.md](ARCHITECTURE.md)).
+
+## License
+
+Cargo is primarily distributed under the terms of both the MIT license
+and the Apache License (Version 2.0).
+
+See LICENSE-APACHE and LICENSE-MIT for details.
+
+### Third party software
+
+This product includes software developed by the OpenSSL Project
+for use in the OpenSSL Toolkit (https://www.openssl.org/).
+
+In binary form, this product includes software that is licensed under the
+terms of the GNU General Public License, version 2, with a linking exception,
+which can be obtained from the [upstream repository][1].
+
+See LICENSE-THIRD-PARTY for details.
+
+[1]: https://github.com/libgit2/libgit2
+
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-bench.1 b/linux-x86/1.36.0/share/man/man1/cargo-bench.1
new file mode 100644
index 0000000..6292739
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-bench.1
@@ -0,0 +1,518 @@
+'\" t
+.\"     Title: cargo-bench
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-05-08
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-BENCH" "1" "2019-05-08" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-bench \- Execute benchmarks of a package
+.SH "SYNOPSIS"
+.sp
+\fBcargo bench [\fIOPTIONS\fP] [BENCHNAME] [\-\- \fIBENCH\-OPTIONS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+Compile and execute benchmarks.
+.sp
+The benchmark filtering argument \fBBENCHNAME\fP and all the arguments following
+the two dashes (\fB\-\-\fP) are passed to the benchmark binaries and thus to
+\fIlibtest\fP (rustc\(cqs built in unit\-test and micro\-benchmarking framework).  If
+you\(cqre passing arguments to both Cargo and the binary, the ones after \fB\-\-\fP go
+to the binary, the ones before go to Cargo.  For details about libtest\(cqs
+arguments see the output of \fBcargo bench \(em \-\-help\fP.  As an example, this will
+run only the benchmark named \fBfoo\fP (and skip other similarly named benchmarks
+like \fBfoobar\fP):
+.sp
+.if n .RS 4
+.nf
+cargo bench \-\- foo \-\-exact
+.fi
+.if n .RE
+.sp
+Benchmarks are built with the \fB\-\-test\fP option to \fBrustc\fP which creates an
+executable with a \fBmain\fP function that automatically runs all functions
+annotated with the \fB#[bench]\fP attribute. Cargo passes the \fB\-\-bench\fP flag to
+the test harness to tell it to run only benchmarks.
+.sp
+The libtest harness may be disabled by setting \fBharness = false\fP in the target
+manifest settings, in which case your code will need to provide its own \fBmain\fP
+function to handle running benchmarks.
+.SH "OPTIONS"
+.SS "Benchmark Options"
+.sp
+\fB\-\-no\-run\fP
+.RS 4
+Compile, but don\(cqt run benchmarks.
+.RE
+.sp
+\fB\-\-no\-fail\-fast\fP
+.RS 4
+Run all benchmarks regardless of failure. Without this flag, Cargo will exit
+after the first executable fails. The Rust test harness will run all
+benchmarks within the executable to completion, this flag only applies to
+the executable as a whole.
+.RE
+.SS "Package Selection"
+.sp
+By default, when no package selection options are given, the packages selected
+depend on the current working directory. In the root of a virtual workspace,
+all workspace members are selected (\fB\-\-all\fP is implied). Otherwise, only the
+package in the current directory will be selected. The default packages may be
+overridden with the \fBworkspace.default\-members\fP key in the root \fBCargo.toml\fP
+manifest.
+.sp
+\fB\-p\fP \fISPEC\fP..., \fB\-\-package\fP \fISPEC\fP...
+.RS 4
+Benchmark only the specified packages. See \fBcargo\-pkgid\fP(1) for the
+SPEC format. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-all\fP
+.RS 4
+Benchmark all members in the workspace.
+.RE
+.sp
+\fB\-\-exclude\fP \fISPEC\fP...
+.RS 4
+Exclude the specified packages. Must be used in conjunction with the
+\fB\-\-all\fP flag. This flag may be specified multiple times.
+.RE
+.SS "Target Selection"
+.sp
+When no target selection options are given, \fBcargo bench\fP will build the
+following targets of the selected packages:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+lib — used to link with binaries and benchmarks
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+bins (only if benchmark targets are built and required features are
+available)
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+lib as a benchmark
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+bins as benchmarks
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+benchmark targets
+.RE
+.sp
+The default behavior can be changed by setting the \fBbench\fP flag for the target
+in the manifest settings. Setting examples to \fBbench = true\fP will build and
+run the example as a benchmark. Setting targets to \fBbench = false\fP will stop
+them from being benchmarked by default. Target selection options that take a
+target by name ignore the \fBbench\fP flag and will always benchmark the given
+target.
+.sp
+Passing target selection flags will benchmark only the
+specified targets.
+.sp
+\fB\-\-lib\fP
+.RS 4
+Benchmark the package\(cqs library.
+.RE
+.sp
+\fB\-\-bin\fP \fINAME\fP...
+.RS 4
+Benchmark the specified binary. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-bins\fP
+.RS 4
+Benchmark all binary targets.
+.RE
+.sp
+\fB\-\-example\fP \fINAME\fP...
+.RS 4
+Benchmark the specified example. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-examples\fP
+.RS 4
+Benchmark all example targets.
+.RE
+.sp
+\fB\-\-test\fP \fINAME\fP...
+.RS 4
+Benchmark the specified integration test. This flag may be specified multiple
+times.
+.RE
+.sp
+\fB\-\-tests\fP
+.RS 4
+Benchmark all targets in test mode that have the \fBtest = true\fP manifest
+flag set. By default this includes the library and binaries built as
+unittests, and integration tests. Be aware that this will also build any
+required dependencies, so the lib target may be built twice (once as a
+unittest, and once as a dependency for binaries, integration tests, etc.).
+Targets may be enabled or disabled by setting the \fBtest\fP flag in the
+manifest settings for the target.
+.RE
+.sp
+\fB\-\-bench\fP \fINAME\fP...
+.RS 4
+Benchmark the specified benchmark. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-benches\fP
+.RS 4
+Benchmark all targets in benchmark mode that have the \fBbench = true\fP
+manifest flag set. By default this includes the library and binaries built
+as benchmarks, and bench targets. Be aware that this will also build any
+required dependencies, so the lib target may be built twice (once as a
+benchmark, and once as a dependency for binaries, benchmarks, etc.).
+Targets may be enabled or disabled by setting the \fBbench\fP flag in the
+manifest settings for the target.
+.RE
+.sp
+\fB\-\-all\-targets\fP
+.RS 4
+Benchmark all targets. This is equivalent to specifying \fB\-\-lib \-\-bins
+\-\-tests \-\-benches \-\-examples\fP.
+.RE
+.SS "Feature Selection"
+.sp
+When no feature options are given, the \fBdefault\fP feature is activated for
+every selected package.
+.sp
+\fB\-\-features\fP \fIFEATURES\fP
+.RS 4
+Space or comma separated list of features to activate. These features only
+apply to the current directory\(cqs package. Features of direct dependencies
+may be enabled with \fB<dep\-name>/<feature\-name>\fP syntax.
+.RE
+.sp
+\fB\-\-all\-features\fP
+.RS 4
+Activate all available features of all selected packages.
+.RE
+.sp
+\fB\-\-no\-default\-features\fP
+.RS 4
+Do not activate the \fBdefault\fP feature of the current directory\(cqs
+package.
+.RE
+.SS "Compilation Options"
+.sp
+\fB\-\-target\fP \fITRIPLE\fP
+.RS 4
+Benchmark for the given architecture. The default is the host
+architecture. The general format of the triple is
+\fB<arch><sub>\-<vendor>\-<sys>\-<abi>\fP. Run \fBrustc \-\-print target\-list\fP for a
+list of supported targets.
+.sp
+This may also be specified with the \fBbuild.target\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Output Options"
+.sp
+\fB\-\-target\-dir\fP \fIDIRECTORY\fP
+.RS 4
+Directory for all generated artifacts and intermediate files. May also be
+specified with the \fBCARGO_TARGET_DIR\fP environment variable, or the
+\fBbuild.target\-dir\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults
+to \fBtarget\fP in the root of the workspace.
+.RE
+.SS "Display Options"
+.sp
+By default the Rust test harness hides output from benchmark execution to keep
+results readable. Benchmark output can be recovered (e.g., for debugging) by
+passing \fB\-\-nocapture\fP to the benchmark binaries:
+.sp
+.if n .RS 4
+.nf
+cargo bench \-\- \-\-nocapture
+.fi
+.if n .RE
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-message\-format\fP \fIFMT\fP
+.RS 4
+The output format for diagnostic messages. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBhuman\fP (default): Display in a human\-readable text format.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBjson\fP: Emit JSON messages to stdout.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBshort\fP: Emit shorter, human\-readable text messages.
+.RE
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.sp
+\fB\-\-offline\fP
+.RS 4
+Prevents Cargo from accessing the network for any reason. Without this
+flag, Cargo will stop with an error if it needs to access the network and
+the network is not available. With this flag, Cargo will attempt to
+proceed without the network if possible.
+.sp
+Beware that this may result in different dependency resolution than online
+mode. Cargo will restrict itself to crates that are downloaded locally, even
+if there might be a newer version as indicated in the local copy of the index.
+See the \fBcargo\-fetch\fP(1) command to download dependencies before going
+offline.
+.sp
+May also be specified with the \fBnet.offline\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SS "Miscellaneous Options"
+.sp
+The \fB\-\-jobs\fP argument affects the building of the benchmark executable but
+does not affect how many threads are used when running the benchmarks. The
+Rust test harness runs benchmarks serially in a single thread.
+.sp
+\fB\-j\fP \fIN\fP, \fB\-\-jobs\fP \fIN\fP
+.RS 4
+Number of parallel jobs to run. May also be specified with the
+\fBbuild.jobs\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults to
+the number of CPUs.
+.RE
+.SH "PROFILES"
+.sp
+Profiles may be used to configure compiler options such as optimization levels
+and debug settings. See
+\c
+.URL "https://doc.rust\-lang.org/cargo/reference/manifest.html#the\-profile\-sections" "the reference"
+for more details.
+.sp
+Benchmarks are always built with the \fBbench\fP profile. Binary and lib targets
+are built separately as benchmarks with the \fBbench\fP profile. Library targets
+are built with the \fBrelease\fP profiles when linked to binaries and benchmarks.
+Dependencies use the \fBrelease\fP profile.
+.sp
+If you need a debug build of a benchmark, try building it with
+\fBcargo\-build\fP(1) which will use the \fBtest\fP profile which is by default
+unoptimized and includes debug information. You can then run the debug\-enabled
+benchmark manually.
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Build and execute all the benchmarks of the current package:
+.sp
+.if n .RS 4
+.nf
+cargo bench
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 2." 4.2
+.\}
+Run only a specific benchmark within a specific benchmark target:
+.sp
+.if n .RS 4
+.nf
+cargo bench \-\-bench bench_name \-\- modname::some_benchmark
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-test\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-build.1 b/linux-x86/1.36.0/share/man/man1/cargo-build.1
new file mode 100644
index 0000000..eeb3d98
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-build.1
@@ -0,0 +1,470 @@
+'\" t
+.\"     Title: cargo-build
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-05-08
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-BUILD" "1" "2019-05-08" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-build \- Compile the current package
+.SH "SYNOPSIS"
+.sp
+\fBcargo build [\fIOPTIONS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+Compile local packages and all of their dependencies.
+.SH "OPTIONS"
+.SS "Package Selection"
+.sp
+By default, when no package selection options are given, the packages selected
+depend on the current working directory. In the root of a virtual workspace,
+all workspace members are selected (\fB\-\-all\fP is implied). Otherwise, only the
+package in the current directory will be selected. The default packages may be
+overridden with the \fBworkspace.default\-members\fP key in the root \fBCargo.toml\fP
+manifest.
+.sp
+\fB\-p\fP \fISPEC\fP..., \fB\-\-package\fP \fISPEC\fP...
+.RS 4
+Build only the specified packages. See \fBcargo\-pkgid\fP(1) for the
+SPEC format. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-all\fP
+.RS 4
+Build all members in the workspace.
+.RE
+.sp
+\fB\-\-exclude\fP \fISPEC\fP...
+.RS 4
+Exclude the specified packages. Must be used in conjunction with the
+\fB\-\-all\fP flag. This flag may be specified multiple times.
+.RE
+.SS "Target Selection"
+.sp
+When no target selection options are given, \fBcargo build\fP will build all
+binary and library targets of the selected packages. Binaries are skipped if
+they have \fBrequired\-features\fP that are missing.
+.sp
+Passing target selection flags will build only the
+specified targets.
+.sp
+\fB\-\-lib\fP
+.RS 4
+Build the package\(cqs library.
+.RE
+.sp
+\fB\-\-bin\fP \fINAME\fP...
+.RS 4
+Build the specified binary. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-bins\fP
+.RS 4
+Build all binary targets.
+.RE
+.sp
+\fB\-\-example\fP \fINAME\fP...
+.RS 4
+Build the specified example. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-examples\fP
+.RS 4
+Build all example targets.
+.RE
+.sp
+\fB\-\-test\fP \fINAME\fP...
+.RS 4
+Build the specified integration test. This flag may be specified multiple
+times.
+.RE
+.sp
+\fB\-\-tests\fP
+.RS 4
+Build all targets in test mode that have the \fBtest = true\fP manifest
+flag set. By default this includes the library and binaries built as
+unittests, and integration tests. Be aware that this will also build any
+required dependencies, so the lib target may be built twice (once as a
+unittest, and once as a dependency for binaries, integration tests, etc.).
+Targets may be enabled or disabled by setting the \fBtest\fP flag in the
+manifest settings for the target.
+.RE
+.sp
+\fB\-\-bench\fP \fINAME\fP...
+.RS 4
+Build the specified benchmark. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-benches\fP
+.RS 4
+Build all targets in benchmark mode that have the \fBbench = true\fP
+manifest flag set. By default this includes the library and binaries built
+as benchmarks, and bench targets. Be aware that this will also build any
+required dependencies, so the lib target may be built twice (once as a
+benchmark, and once as a dependency for binaries, benchmarks, etc.).
+Targets may be enabled or disabled by setting the \fBbench\fP flag in the
+manifest settings for the target.
+.RE
+.sp
+\fB\-\-all\-targets\fP
+.RS 4
+Build all targets. This is equivalent to specifying \fB\-\-lib \-\-bins
+\-\-tests \-\-benches \-\-examples\fP.
+.RE
+.SS "Feature Selection"
+.sp
+When no feature options are given, the \fBdefault\fP feature is activated for
+every selected package.
+.sp
+\fB\-\-features\fP \fIFEATURES\fP
+.RS 4
+Space or comma separated list of features to activate. These features only
+apply to the current directory\(cqs package. Features of direct dependencies
+may be enabled with \fB<dep\-name>/<feature\-name>\fP syntax.
+.RE
+.sp
+\fB\-\-all\-features\fP
+.RS 4
+Activate all available features of all selected packages.
+.RE
+.sp
+\fB\-\-no\-default\-features\fP
+.RS 4
+Do not activate the \fBdefault\fP feature of the current directory\(cqs
+package.
+.RE
+.SS "Compilation Options"
+.sp
+\fB\-\-target\fP \fITRIPLE\fP
+.RS 4
+Build for the given architecture. The default is the host
+architecture. The general format of the triple is
+\fB<arch><sub>\-<vendor>\-<sys>\-<abi>\fP. Run \fBrustc \-\-print target\-list\fP for a
+list of supported targets.
+.sp
+This may also be specified with the \fBbuild.target\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-release\fP
+.RS 4
+Build optimized artifacts with the \fBrelease\fP profile. See the
+PROFILES section for details on how this affects profile selection.
+.RE
+.SS "Output Options"
+.sp
+\fB\-\-target\-dir\fP \fIDIRECTORY\fP
+.RS 4
+Directory for all generated artifacts and intermediate files. May also be
+specified with the \fBCARGO_TARGET_DIR\fP environment variable, or the
+\fBbuild.target\-dir\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults
+to \fBtarget\fP in the root of the workspace.
+.RE
+.sp
+\fB\-\-out\-dir\fP \fIDIRECTORY\fP
+.RS 4
+Copy final artifacts to this directory.
+.sp
+This option is unstable and available only on the
+\c
+.URL "https://doc.rust\-lang.org/book/appendix\-07\-nightly\-rust.html" "nightly channel"
+and requires the \fB\-Z unstable\-options\fP flag to enable.
+See \c
+.URL "https://github.com/rust\-lang/cargo/issues/6790" "" " "
+for more information.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-message\-format\fP \fIFMT\fP
+.RS 4
+The output format for diagnostic messages. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBhuman\fP (default): Display in a human\-readable text format.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBjson\fP: Emit JSON messages to stdout.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBshort\fP: Emit shorter, human\-readable text messages.
+.RE
+.RE
+.sp
+\fB\-\-build\-plan\fP
+.RS 4
+Outputs a series of JSON messages to stdout that indicate the commands to
+run the build.
+.sp
+This option is unstable and available only on the
+\c
+.URL "https://doc.rust\-lang.org/book/appendix\-07\-nightly\-rust.html" "nightly channel"
+and requires the \fB\-Z unstable\-options\fP flag to enable.
+See \c
+.URL "https://github.com/rust\-lang/cargo/issues/5579" "" " "
+for more information.
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.sp
+\fB\-\-offline\fP
+.RS 4
+Prevents Cargo from accessing the network for any reason. Without this
+flag, Cargo will stop with an error if it needs to access the network and
+the network is not available. With this flag, Cargo will attempt to
+proceed without the network if possible.
+.sp
+Beware that this may result in different dependency resolution than online
+mode. Cargo will restrict itself to crates that are downloaded locally, even
+if there might be a newer version as indicated in the local copy of the index.
+See the \fBcargo\-fetch\fP(1) command to download dependencies before going
+offline.
+.sp
+May also be specified with the \fBnet.offline\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SS "Miscellaneous Options"
+.sp
+\fB\-j\fP \fIN\fP, \fB\-\-jobs\fP \fIN\fP
+.RS 4
+Number of parallel jobs to run. May also be specified with the
+\fBbuild.jobs\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults to
+the number of CPUs.
+.RE
+.SH "PROFILES"
+.sp
+Profiles may be used to configure compiler options such as optimization levels
+and debug settings. See
+\c
+.URL "https://doc.rust\-lang.org/cargo/reference/manifest.html#the\-profile\-sections" "the reference"
+for more details.
+.sp
+Profile selection depends on the target and crate being built. By default the
+\fBdev\fP or \fBtest\fP profiles are used. If the \fB\-\-release\fP flag is given, then the
+\fBrelease\fP or \fBbench\fP profiles are used.
+.TS
+allbox tab(:);
+lt lt lt.
+T{
+.sp
+Target
+T}:T{
+.sp
+Default Profile
+T}:T{
+.sp
+\fB\-\-release\fP Profile
+T}
+T{
+.sp
+lib, bin, example
+T}:T{
+.sp
+\fBdev\fP
+T}:T{
+.sp
+\fBrelease\fP
+T}
+T{
+.sp
+test, bench, or any target
+.br
+in "test" or "bench" mode
+T}:T{
+.sp
+\fBtest\fP
+T}:T{
+.sp
+\fBbench\fP
+T}
+.TE
+.sp
+.sp
+Dependencies use the \fBdev\fP/\fBrelease\fP profiles.
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Build the local package and all of its dependencies:
+.sp
+.if n .RS 4
+.nf
+cargo build
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 2." 4.2
+.\}
+Build with optimizations:
+.sp
+.if n .RS 4
+.nf
+cargo build \-\-release
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-rustc\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-check.1 b/linux-x86/1.36.0/share/man/man1/cargo-check.1
new file mode 100644
index 0000000..2ae71de
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-check.1
@@ -0,0 +1,456 @@
+'\" t
+.\"     Title: cargo-check
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-04-16
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-CHECK" "1" "2019-04-16" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-check \- Check the current package
+.SH "SYNOPSIS"
+.sp
+\fBcargo check [\fIOPTIONS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+Check a local package and all of its dependencies for errors. This will
+essentially compile the packages without performing the final step of code
+generation, which is faster than running \fBcargo build\fP. The compiler will save
+metadata files to disk so that future runs will reuse them if the source has
+not been modified.
+.SH "OPTIONS"
+.SS "Package Selection"
+.sp
+By default, when no package selection options are given, the packages selected
+depend on the current working directory. In the root of a virtual workspace,
+all workspace members are selected (\fB\-\-all\fP is implied). Otherwise, only the
+package in the current directory will be selected. The default packages may be
+overridden with the \fBworkspace.default\-members\fP key in the root \fBCargo.toml\fP
+manifest.
+.sp
+\fB\-p\fP \fISPEC\fP..., \fB\-\-package\fP \fISPEC\fP...
+.RS 4
+Check only the specified packages. See \fBcargo\-pkgid\fP(1) for the
+SPEC format. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-all\fP
+.RS 4
+Check all members in the workspace.
+.RE
+.sp
+\fB\-\-exclude\fP \fISPEC\fP...
+.RS 4
+Exclude the specified packages. Must be used in conjunction with the
+\fB\-\-all\fP flag. This flag may be specified multiple times.
+.RE
+.SS "Target Selection"
+.sp
+When no target selection options are given, \fBcargo check\fP will check all
+binary and library targets of the selected packages. Binaries are skipped if
+they have \fBrequired\-features\fP that are missing.
+.sp
+Passing target selection flags will check only the
+specified targets.
+.sp
+\fB\-\-lib\fP
+.RS 4
+Check the package\(cqs library.
+.RE
+.sp
+\fB\-\-bin\fP \fINAME\fP...
+.RS 4
+Check the specified binary. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-bins\fP
+.RS 4
+Check all binary targets.
+.RE
+.sp
+\fB\-\-example\fP \fINAME\fP...
+.RS 4
+Check the specified example. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-examples\fP
+.RS 4
+Check all example targets.
+.RE
+.sp
+\fB\-\-test\fP \fINAME\fP...
+.RS 4
+Check the specified integration test. This flag may be specified multiple
+times.
+.RE
+.sp
+\fB\-\-tests\fP
+.RS 4
+Check all targets in test mode that have the \fBtest = true\fP manifest
+flag set. By default this includes the library and binaries built as
+unittests, and integration tests. Be aware that this will also build any
+required dependencies, so the lib target may be built twice (once as a
+unittest, and once as a dependency for binaries, integration tests, etc.).
+Targets may be enabled or disabled by setting the \fBtest\fP flag in the
+manifest settings for the target.
+.RE
+.sp
+\fB\-\-bench\fP \fINAME\fP...
+.RS 4
+Check the specified benchmark. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-benches\fP
+.RS 4
+Check all targets in benchmark mode that have the \fBbench = true\fP
+manifest flag set. By default this includes the library and binaries built
+as benchmarks, and bench targets. Be aware that this will also build any
+required dependencies, so the lib target may be built twice (once as a
+benchmark, and once as a dependency for binaries, benchmarks, etc.).
+Targets may be enabled or disabled by setting the \fBbench\fP flag in the
+manifest settings for the target.
+.RE
+.sp
+\fB\-\-all\-targets\fP
+.RS 4
+Check all targets. This is equivalent to specifying \fB\-\-lib \-\-bins
+\-\-tests \-\-benches \-\-examples\fP.
+.RE
+.SS "Feature Selection"
+.sp
+When no feature options are given, the \fBdefault\fP feature is activated for
+every selected package.
+.sp
+\fB\-\-features\fP \fIFEATURES\fP
+.RS 4
+Space or comma separated list of features to activate. These features only
+apply to the current directory\(cqs package. Features of direct dependencies
+may be enabled with \fB<dep\-name>/<feature\-name>\fP syntax.
+.RE
+.sp
+\fB\-\-all\-features\fP
+.RS 4
+Activate all available features of all selected packages.
+.RE
+.sp
+\fB\-\-no\-default\-features\fP
+.RS 4
+Do not activate the \fBdefault\fP feature of the current directory\(cqs
+package.
+.RE
+.SS "Compilation Options"
+.sp
+\fB\-\-target\fP \fITRIPLE\fP
+.RS 4
+Check for the given architecture. The default is the host
+architecture. The general format of the triple is
+\fB<arch><sub>\-<vendor>\-<sys>\-<abi>\fP. Run \fBrustc \-\-print target\-list\fP for a
+list of supported targets.
+.sp
+This may also be specified with the \fBbuild.target\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-release\fP
+.RS 4
+Check optimized artifacts with the \fBrelease\fP profile. See the
+PROFILES section for details on how this affects profile selection.
+.RE
+.sp
+\fB\-\-profile\fP \fINAME\fP
+.RS 4
+Changes check behavior. Currently only \fBtest\fP is
+supported, which will check with the
+\fB#[cfg(test)]\fP attribute enabled. This is useful to have it
+check unit tests which are usually excluded via
+the \fBcfg\fP attribute. This does not change the actual profile used.
+.RE
+.SS "Output Options"
+.sp
+\fB\-\-target\-dir\fP \fIDIRECTORY\fP
+.RS 4
+Directory for all generated artifacts and intermediate files. May also be
+specified with the \fBCARGO_TARGET_DIR\fP environment variable, or the
+\fBbuild.target\-dir\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults
+to \fBtarget\fP in the root of the workspace.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-message\-format\fP \fIFMT\fP
+.RS 4
+The output format for diagnostic messages. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBhuman\fP (default): Display in a human\-readable text format.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBjson\fP: Emit JSON messages to stdout.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBshort\fP: Emit shorter, human\-readable text messages.
+.RE
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.sp
+\fB\-\-offline\fP
+.RS 4
+Prevents Cargo from accessing the network for any reason. Without this
+flag, Cargo will stop with an error if it needs to access the network and
+the network is not available. With this flag, Cargo will attempt to
+proceed without the network if possible.
+.sp
+Beware that this may result in different dependency resolution than online
+mode. Cargo will restrict itself to crates that are downloaded locally, even
+if there might be a newer version as indicated in the local copy of the index.
+See the \fBcargo\-fetch\fP(1) command to download dependencies before going
+offline.
+.sp
+May also be specified with the \fBnet.offline\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SS "Miscellaneous Options"
+.sp
+\fB\-j\fP \fIN\fP, \fB\-\-jobs\fP \fIN\fP
+.RS 4
+Number of parallel jobs to run. May also be specified with the
+\fBbuild.jobs\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults to
+the number of CPUs.
+.RE
+.SH "PROFILES"
+.sp
+Profiles may be used to configure compiler options such as optimization levels
+and debug settings. See
+\c
+.URL "https://doc.rust\-lang.org/cargo/reference/manifest.html#the\-profile\-sections" "the reference"
+for more details.
+.sp
+Profile selection depends on the target and crate being built. By default the
+\fBdev\fP or \fBtest\fP profiles are used. If the \fB\-\-release\fP flag is given, then the
+\fBrelease\fP or \fBbench\fP profiles are used.
+.TS
+allbox tab(:);
+lt lt lt.
+T{
+.sp
+Target
+T}:T{
+.sp
+Default Profile
+T}:T{
+.sp
+\fB\-\-release\fP Profile
+T}
+T{
+.sp
+lib, bin, example
+T}:T{
+.sp
+\fBdev\fP
+T}:T{
+.sp
+\fBrelease\fP
+T}
+T{
+.sp
+test, bench, or any target
+.br
+in "test" or "bench" mode
+T}:T{
+.sp
+\fBtest\fP
+T}:T{
+.sp
+\fBbench\fP
+T}
+.TE
+.sp
+.sp
+Dependencies use the \fBdev\fP/\fBrelease\fP profiles.
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Check the local package for errors:
+.sp
+.if n .RS 4
+.nf
+cargo check
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 2." 4.2
+.\}
+Check all targets, including unit tests:
+.sp
+.if n .RS 4
+.nf
+cargo check \-\-all\-targets \-\-profile=test
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-build\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-clean.1 b/linux-x86/1.36.0/share/man/man1/cargo-clean.1
new file mode 100644
index 0000000..1afb47c
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-clean.1
@@ -0,0 +1,244 @@
+'\" t
+.\"     Title: cargo-clean
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-04-16
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-CLEAN" "1" "2019-04-16" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-clean \- Remove generated artifacts
+.SH "SYNOPSIS"
+.sp
+\fBcargo clean [\fIOPTIONS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+Remove artifacts from the target directory that Cargo has generated in the
+past.
+.sp
+With no options, \fBcargo clean\fP will delete the entire target directory.
+.SH "OPTIONS"
+.SS "Package Selection"
+.sp
+When no packages are selected, all packages and all dependencies in the
+workspace are cleaned.
+.sp
+\fB\-p\fP \fISPEC\fP..., \fB\-\-package\fP \fISPEC\fP...
+.RS 4
+Clean only the specified packages. This flag may be specified
+multiple times. See \fBcargo\-pkgid\fP(1) for the SPEC format.
+.RE
+.SS "Clean Options"
+.sp
+\fB\-\-doc\fP
+.RS 4
+This option will cause \fBcargo clean\fP to remove only the \fBdoc\fP directory in
+the target directory.
+.RE
+.sp
+\fB\-\-release\fP
+.RS 4
+Clean all artifacts that were built with the \fBrelease\fP or \fBbench\fP
+profiles.
+.RE
+.sp
+\fB\-\-target\-dir\fP \fIDIRECTORY\fP
+.RS 4
+Directory for all generated artifacts and intermediate files. May also be
+specified with the \fBCARGO_TARGET_DIR\fP environment variable, or the
+\fBbuild.target\-dir\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults
+to \fBtarget\fP in the root of the workspace.
+.RE
+.sp
+\fB\-\-target\fP \fITRIPLE\fP
+.RS 4
+Clean for the given architecture. The default is the host
+architecture. The general format of the triple is
+\fB<arch><sub>\-<vendor>\-<sys>\-<abi>\fP. Run \fBrustc \-\-print target\-list\fP for a
+list of supported targets.
+.sp
+This may also be specified with the \fBbuild.target\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.sp
+\fB\-\-offline\fP
+.RS 4
+Prevents Cargo from accessing the network for any reason. Without this
+flag, Cargo will stop with an error if it needs to access the network and
+the network is not available. With this flag, Cargo will attempt to
+proceed without the network if possible.
+.sp
+Beware that this may result in different dependency resolution than online
+mode. Cargo will restrict itself to crates that are downloaded locally, even
+if there might be a newer version as indicated in the local copy of the index.
+See the \fBcargo\-fetch\fP(1) command to download dependencies before going
+offline.
+.sp
+May also be specified with the \fBnet.offline\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Remove the entire target directory:
+.sp
+.if n .RS 4
+.nf
+cargo clean
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 2." 4.2
+.\}
+Remove only the release artifacts:
+.sp
+.if n .RS 4
+.nf
+cargo clean \-\-release
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-build\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-doc.1 b/linux-x86/1.36.0/share/man/man1/cargo-doc.1
new file mode 100644
index 0000000..26a9132
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-doc.1
@@ -0,0 +1,397 @@
+'\" t
+.\"     Title: cargo-doc
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-04-16
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-DOC" "1" "2019-04-16" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-doc \- Build a package\(aqs documentation
+.SH "SYNOPSIS"
+.sp
+\fBcargo doc [\fIOPTIONS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+Build the documentation for the local package and all dependencies. The output
+is placed in \fBtarget/doc\fP in rustdoc\(cqs usual format.
+.SH "OPTIONS"
+.SS "Documentation Options"
+.sp
+\fB\-\-open\fP
+.RS 4
+Open the docs in a browser after building them.
+.RE
+.sp
+\fB\-\-no\-deps\fP
+.RS 4
+Do not build documentation for dependencies.
+.RE
+.sp
+\fB\-\-document\-private\-items\fP
+.RS 4
+Include non\-public items in the documentation.
+.RE
+.SS "Package Selection"
+.sp
+By default, when no package selection options are given, the packages selected
+depend on the current working directory. In the root of a virtual workspace,
+all workspace members are selected (\fB\-\-all\fP is implied). Otherwise, only the
+package in the current directory will be selected. The default packages may be
+overridden with the \fBworkspace.default\-members\fP key in the root \fBCargo.toml\fP
+manifest.
+.sp
+\fB\-p\fP \fISPEC\fP..., \fB\-\-package\fP \fISPEC\fP...
+.RS 4
+Document only the specified packages. See \fBcargo\-pkgid\fP(1) for the
+SPEC format. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-all\fP
+.RS 4
+Document all members in the workspace.
+.RE
+.sp
+\fB\-\-exclude\fP \fISPEC\fP...
+.RS 4
+Exclude the specified packages. Must be used in conjunction with the
+\fB\-\-all\fP flag. This flag may be specified multiple times.
+.RE
+.SS "Target Selection"
+.sp
+When no target selection options are given, \fBcargo doc\fP will document all
+binary and library targets of the selected package. The binary will be skipped
+if its name is the same as the lib target. Binaries are skipped if they have
+\fBrequired\-features\fP that are missing.
+.sp
+The default behavior can be changed by setting \fBdoc = false\fP for the target in
+the manifest settings. Using target selection options will ignore the \fBdoc\fP
+flag and will always document the given target.
+.sp
+\fB\-\-lib\fP
+.RS 4
+Document the package\(cqs library.
+.RE
+.sp
+\fB\-\-bin\fP \fINAME\fP...
+.RS 4
+Document the specified binary. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-bins\fP
+.RS 4
+Document all binary targets.
+.RE
+.SS "Feature Selection"
+.sp
+When no feature options are given, the \fBdefault\fP feature is activated for
+every selected package.
+.sp
+\fB\-\-features\fP \fIFEATURES\fP
+.RS 4
+Space or comma separated list of features to activate. These features only
+apply to the current directory\(cqs package. Features of direct dependencies
+may be enabled with \fB<dep\-name>/<feature\-name>\fP syntax.
+.RE
+.sp
+\fB\-\-all\-features\fP
+.RS 4
+Activate all available features of all selected packages.
+.RE
+.sp
+\fB\-\-no\-default\-features\fP
+.RS 4
+Do not activate the \fBdefault\fP feature of the current directory\(cqs
+package.
+.RE
+.SS "Compilation Options"
+.sp
+\fB\-\-target\fP \fITRIPLE\fP
+.RS 4
+Document for the given architecture. The default is the host
+architecture. The general format of the triple is
+\fB<arch><sub>\-<vendor>\-<sys>\-<abi>\fP. Run \fBrustc \-\-print target\-list\fP for a
+list of supported targets.
+.sp
+This may also be specified with the \fBbuild.target\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-release\fP
+.RS 4
+Document optimized artifacts with the \fBrelease\fP profile. See the
+PROFILES section for details on how this affects profile selection.
+.RE
+.SS "Output Options"
+.sp
+\fB\-\-target\-dir\fP \fIDIRECTORY\fP
+.RS 4
+Directory for all generated artifacts and intermediate files. May also be
+specified with the \fBCARGO_TARGET_DIR\fP environment variable, or the
+\fBbuild.target\-dir\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults
+to \fBtarget\fP in the root of the workspace.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-message\-format\fP \fIFMT\fP
+.RS 4
+The output format for diagnostic messages. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBhuman\fP (default): Display in a human\-readable text format.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBjson\fP: Emit JSON messages to stdout.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBshort\fP: Emit shorter, human\-readable text messages.
+.RE
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.sp
+\fB\-\-offline\fP
+.RS 4
+Prevents Cargo from accessing the network for any reason. Without this
+flag, Cargo will stop with an error if it needs to access the network and
+the network is not available. With this flag, Cargo will attempt to
+proceed without the network if possible.
+.sp
+Beware that this may result in different dependency resolution than online
+mode. Cargo will restrict itself to crates that are downloaded locally, even
+if there might be a newer version as indicated in the local copy of the index.
+See the \fBcargo\-fetch\fP(1) command to download dependencies before going
+offline.
+.sp
+May also be specified with the \fBnet.offline\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SS "Miscellaneous Options"
+.sp
+\fB\-j\fP \fIN\fP, \fB\-\-jobs\fP \fIN\fP
+.RS 4
+Number of parallel jobs to run. May also be specified with the
+\fBbuild.jobs\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults to
+the number of CPUs.
+.RE
+.SH "PROFILES"
+.sp
+Profiles may be used to configure compiler options such as optimization levels
+and debug settings. See
+\c
+.URL "https://doc.rust\-lang.org/cargo/reference/manifest.html#the\-profile\-sections" "the reference"
+for more details.
+.sp
+Profile selection depends on the target and crate being built. By default the
+\fBdev\fP or \fBtest\fP profiles are used. If the \fB\-\-release\fP flag is given, then the
+\fBrelease\fP or \fBbench\fP profiles are used.
+.TS
+allbox tab(:);
+lt lt lt.
+T{
+.sp
+Target
+T}:T{
+.sp
+Default Profile
+T}:T{
+.sp
+\fB\-\-release\fP Profile
+T}
+T{
+.sp
+lib, bin, example
+T}:T{
+.sp
+\fBdev\fP
+T}:T{
+.sp
+\fBrelease\fP
+T}
+T{
+.sp
+test, bench, or any target
+.br
+in "test" or "bench" mode
+T}:T{
+.sp
+\fBtest\fP
+T}:T{
+.sp
+\fBbench\fP
+T}
+.TE
+.sp
+.sp
+Dependencies use the \fBdev\fP/\fBrelease\fP profiles.
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Build the local package documentation and its dependencies and output to
+\fBtarget/doc\fP.
+.sp
+.if n .RS 4
+.nf
+cargo doc
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-rustdoc\fP(1), \fBrustdoc\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-fetch.1 b/linux-x86/1.36.0/share/man/man1/cargo-fetch.1
new file mode 100644
index 0000000..1fb8c1c
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-fetch.1
@@ -0,0 +1,205 @@
+'\" t
+.\"     Title: cargo-fetch
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-05-12
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-FETCH" "1" "2019-05-12" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-fetch \- Fetch dependencies of a package from the network
+.SH "SYNOPSIS"
+.sp
+\fBcargo fetch [\fIOPTIONS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+If a \fBCargo.lock\fP file is available, this command will ensure that all of the
+git dependencies and/or registry dependencies are downloaded and locally
+available. Subsequent Cargo commands never touch the network after a \fBcargo
+fetch\fP unless the lock file changes.
+.sp
+If the lock file is not available, then this command will generate the lock
+file before fetching the dependencies.
+.sp
+If \fB\-\-target\fP is not specified, then all target dependencies are fetched.
+.sp
+See also the \c
+.URL "https://crates.io/crates/cargo\-prefetch" "cargo\-prefetch"
+plugin which adds a command to download popular crates. This may be useful if
+you plan to use Cargo without a network with the \fB\-\-offline\fP flag.
+.SH "OPTIONS"
+.SS "Fetch options"
+.sp
+\fB\-\-target\fP \fITRIPLE\fP
+.RS 4
+Fetch for the given architecture. The default is the host
+architecture. The general format of the triple is
+\fB<arch><sub>\-<vendor>\-<sys>\-<abi>\fP. Run \fBrustc \-\-print target\-list\fP for a
+list of supported targets.
+.sp
+This may also be specified with the \fBbuild.target\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.sp
+\fB\-\-offline\fP
+.RS 4
+Prevents Cargo from accessing the network for any reason. Without this
+flag, Cargo will stop with an error if it needs to access the network and
+the network is not available. With this flag, Cargo will attempt to
+proceed without the network if possible.
+.sp
+Beware that this may result in different dependency resolution than online
+mode. Cargo will restrict itself to crates that are downloaded locally, even
+if there might be a newer version as indicated in the local copy of the index.
+See the \fBcargo\-fetch\fP(1) command to download dependencies before going
+offline.
+.sp
+May also be specified with the \fBnet.offline\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Fetch all dependencies:
+.sp
+.if n .RS 4
+.nf
+cargo fetch
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-update\fP(1), \fBcargo\-generate\-lockfile\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-fix.1 b/linux-x86/1.36.0/share/man/man1/cargo-fix.1
new file mode 100644
index 0000000..25ac7e7
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-fix.1
@@ -0,0 +1,543 @@
+'\" t
+.\"     Title: cargo-fix
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-04-16
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-FIX" "1" "2019-04-16" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-fix \- Automatically fix lint warnings reported by rustc
+.SH "SYNOPSIS"
+.sp
+\fBcargo fix [\fIOPTIONS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+This Cargo subcommand will automatically take rustc\(cqs suggestions from
+diagnostics like warnings and apply them to your source code. This is intended
+to help automate tasks that rustc itself already knows how to tell you to fix!
+The \fBcargo fix\fP subcommand is also being developed for the Rust 2018 edition
+to provide code the ability to easily opt\-in to the new edition without having
+to worry about any breakage.
+.sp
+Executing \fBcargo fix\fP will under the hood execute \fBcargo\-check\fP(1). Any warnings
+applicable to your crate will be automatically fixed (if possible) and all
+remaining warnings will be displayed when the check process is finished. For
+example if you\(cqd like to prepare for the 2018 edition, you can do so by
+executing:
+.sp
+.if n .RS 4
+.nf
+cargo fix \-\-edition
+.fi
+.if n .RE
+.sp
+which behaves the same as \fBcargo check \-\-all\-targets\fP. Similarly if you\(cqd like
+to fix code for different platforms you can do:
+.sp
+.if n .RS 4
+.nf
+cargo fix \-\-edition \-\-target x86_64\-pc\-windows\-gnu
+.fi
+.if n .RE
+.sp
+or if your crate has optional features:
+.sp
+.if n .RS 4
+.nf
+cargo fix \-\-edition \-\-no\-default\-features \-\-features foo
+.fi
+.if n .RE
+.sp
+If you encounter any problems with \fBcargo fix\fP or otherwise have any questions
+or feature requests please don\(cqt hesitate to file an issue at
+.URL "https://github.com/rust\-lang/cargo" "" ""
+.SH "OPTIONS"
+.SS "Fix options"
+.sp
+\fB\-\-broken\-code\fP
+.RS 4
+Fix code even if it already has compiler errors. This is useful if \fBcargo
+fix\fP fails to apply the changes. It will apply the changes and leave the
+broken code in the working directory for you to inspect and manually fix.
+.RE
+.sp
+\fB\-\-edition\fP
+.RS 4
+Apply changes that will update the code to the latest edition. This will
+not update the edition in the \fBCargo.toml\fP manifest, which must be updated
+manually.
+.RE
+.sp
+\fB\-\-edition\-idioms\fP
+.RS 4
+Apply suggestions that will update code to the preferred style for the
+current edition.
+.RE
+.sp
+\fB\-\-allow\-no\-vcs\fP
+.RS 4
+Fix code even if a VCS was not detected.
+.RE
+.sp
+\fB\-\-allow\-dirty\fP
+.RS 4
+Fix code even if the working directory has changes.
+.RE
+.sp
+\fB\-\-allow\-staged\fP
+.RS 4
+Fix code even if the working directory has staged changes.
+.RE
+.SS "Package Selection"
+.sp
+By default, when no package selection options are given, the packages selected
+depend on the current working directory. In the root of a virtual workspace,
+all workspace members are selected (\fB\-\-all\fP is implied). Otherwise, only the
+package in the current directory will be selected. The default packages may be
+overridden with the \fBworkspace.default\-members\fP key in the root \fBCargo.toml\fP
+manifest.
+.sp
+\fB\-p\fP \fISPEC\fP..., \fB\-\-package\fP \fISPEC\fP...
+.RS 4
+Fix only the specified packages. See \fBcargo\-pkgid\fP(1) for the
+SPEC format. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-all\fP
+.RS 4
+Fix all members in the workspace.
+.RE
+.sp
+\fB\-\-exclude\fP \fISPEC\fP...
+.RS 4
+Exclude the specified packages. Must be used in conjunction with the
+\fB\-\-all\fP flag. This flag may be specified multiple times.
+.RE
+.SS "Target Selection"
+.sp
+When no target selection options are given, \fBcargo fix\fP will fix all targets
+(\fB\-\-all\-targets\fP implied). Binaries are skipped if they have
+\fBrequired\-features\fP that are missing.
+.sp
+Passing target selection flags will fix only the
+specified targets.
+.sp
+\fB\-\-lib\fP
+.RS 4
+Fix the package\(cqs library.
+.RE
+.sp
+\fB\-\-bin\fP \fINAME\fP...
+.RS 4
+Fix the specified binary. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-bins\fP
+.RS 4
+Fix all binary targets.
+.RE
+.sp
+\fB\-\-example\fP \fINAME\fP...
+.RS 4
+Fix the specified example. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-examples\fP
+.RS 4
+Fix all example targets.
+.RE
+.sp
+\fB\-\-test\fP \fINAME\fP...
+.RS 4
+Fix the specified integration test. This flag may be specified multiple
+times.
+.RE
+.sp
+\fB\-\-tests\fP
+.RS 4
+Fix all targets in test mode that have the \fBtest = true\fP manifest
+flag set. By default this includes the library and binaries built as
+unittests, and integration tests. Be aware that this will also build any
+required dependencies, so the lib target may be built twice (once as a
+unittest, and once as a dependency for binaries, integration tests, etc.).
+Targets may be enabled or disabled by setting the \fBtest\fP flag in the
+manifest settings for the target.
+.RE
+.sp
+\fB\-\-bench\fP \fINAME\fP...
+.RS 4
+Fix the specified benchmark. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-benches\fP
+.RS 4
+Fix all targets in benchmark mode that have the \fBbench = true\fP
+manifest flag set. By default this includes the library and binaries built
+as benchmarks, and bench targets. Be aware that this will also build any
+required dependencies, so the lib target may be built twice (once as a
+benchmark, and once as a dependency for binaries, benchmarks, etc.).
+Targets may be enabled or disabled by setting the \fBbench\fP flag in the
+manifest settings for the target.
+.RE
+.sp
+\fB\-\-all\-targets\fP
+.RS 4
+Fix all targets. This is equivalent to specifying \fB\-\-lib \-\-bins
+\-\-tests \-\-benches \-\-examples\fP.
+.RE
+.SS "Feature Selection"
+.sp
+When no feature options are given, the \fBdefault\fP feature is activated for
+every selected package.
+.sp
+\fB\-\-features\fP \fIFEATURES\fP
+.RS 4
+Space or comma separated list of features to activate. These features only
+apply to the current directory\(cqs package. Features of direct dependencies
+may be enabled with \fB<dep\-name>/<feature\-name>\fP syntax.
+.RE
+.sp
+\fB\-\-all\-features\fP
+.RS 4
+Activate all available features of all selected packages.
+.RE
+.sp
+\fB\-\-no\-default\-features\fP
+.RS 4
+Do not activate the \fBdefault\fP feature of the current directory\(cqs
+package.
+.RE
+.SS "Compilation Options"
+.sp
+\fB\-\-target\fP \fITRIPLE\fP
+.RS 4
+Fix for the given architecture. The default is the host
+architecture. The general format of the triple is
+\fB<arch><sub>\-<vendor>\-<sys>\-<abi>\fP. Run \fBrustc \-\-print target\-list\fP for a
+list of supported targets.
+.sp
+This may also be specified with the \fBbuild.target\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-release\fP
+.RS 4
+Fix optimized artifacts with the \fBrelease\fP profile. See the
+PROFILES section for details on how this affects profile selection.
+.RE
+.sp
+\fB\-\-profile\fP \fINAME\fP
+.RS 4
+Changes fix behavior. Currently only \fBtest\fP is
+supported, which will fix with the
+\fB#[cfg(test)]\fP attribute enabled. This is useful to have it
+fix unit tests which are usually excluded via
+the \fBcfg\fP attribute. This does not change the actual profile used.
+.RE
+.SS "Output Options"
+.sp
+\fB\-\-target\-dir\fP \fIDIRECTORY\fP
+.RS 4
+Directory for all generated artifacts and intermediate files. May also be
+specified with the \fBCARGO_TARGET_DIR\fP environment variable, or the
+\fBbuild.target\-dir\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults
+to \fBtarget\fP in the root of the workspace.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-message\-format\fP \fIFMT\fP
+.RS 4
+The output format for diagnostic messages. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBhuman\fP (default): Display in a human\-readable text format.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBjson\fP: Emit JSON messages to stdout.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBshort\fP: Emit shorter, human\-readable text messages.
+.RE
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.sp
+\fB\-\-offline\fP
+.RS 4
+Prevents Cargo from accessing the network for any reason. Without this
+flag, Cargo will stop with an error if it needs to access the network and
+the network is not available. With this flag, Cargo will attempt to
+proceed without the network if possible.
+.sp
+Beware that this may result in different dependency resolution than online
+mode. Cargo will restrict itself to crates that are downloaded locally, even
+if there might be a newer version as indicated in the local copy of the index.
+See the \fBcargo\-fetch\fP(1) command to download dependencies before going
+offline.
+.sp
+May also be specified with the \fBnet.offline\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SS "Miscellaneous Options"
+.sp
+\fB\-j\fP \fIN\fP, \fB\-\-jobs\fP \fIN\fP
+.RS 4
+Number of parallel jobs to run. May also be specified with the
+\fBbuild.jobs\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults to
+the number of CPUs.
+.RE
+.SH "PROFILES"
+.sp
+Profiles may be used to configure compiler options such as optimization levels
+and debug settings. See
+\c
+.URL "https://doc.rust\-lang.org/cargo/reference/manifest.html#the\-profile\-sections" "the reference"
+for more details.
+.sp
+Profile selection depends on the target and crate being built. By default the
+\fBdev\fP or \fBtest\fP profiles are used. If the \fB\-\-release\fP flag is given, then the
+\fBrelease\fP or \fBbench\fP profiles are used.
+.TS
+allbox tab(:);
+lt lt lt.
+T{
+.sp
+Target
+T}:T{
+.sp
+Default Profile
+T}:T{
+.sp
+\fB\-\-release\fP Profile
+T}
+T{
+.sp
+lib, bin, example
+T}:T{
+.sp
+\fBdev\fP
+T}:T{
+.sp
+\fBrelease\fP
+T}
+T{
+.sp
+test, bench, or any target
+.br
+in "test" or "bench" mode
+T}:T{
+.sp
+\fBtest\fP
+T}:T{
+.sp
+\fBbench\fP
+T}
+.TE
+.sp
+.sp
+Dependencies use the \fBdev\fP/\fBrelease\fP profiles.
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Apply compiler suggestions to the local package:
+.sp
+.if n .RS 4
+.nf
+cargo fix
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 2." 4.2
+.\}
+Convert a 2015 edition to 2018:
+.sp
+.if n .RS 4
+.nf
+cargo fix \-\-edition
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 3.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 3." 4.2
+.\}
+Apply suggested idioms for the current edition:
+.sp
+.if n .RS 4
+.nf
+cargo fix \-\-edition\-idioms
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-check\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-generate-lockfile.1 b/linux-x86/1.36.0/share/man/man1/cargo-generate-lockfile.1
new file mode 100644
index 0000000..107b8c4
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-generate-lockfile.1
@@ -0,0 +1,185 @@
+'\" t
+.\"     Title: cargo-generate-lockfile
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-04-16
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-GENERATE\-LOCKFILE" "1" "2019-04-16" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-generate\-lockfile \- Generate the lockfile for a package
+.SH "SYNOPSIS"
+.sp
+\fBcargo generate\-lockfile [\fIOPTIONS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+This command will create the \fBCargo.lock\fP lockfile for the current package or
+workspace. If the lockfile already exists, it will be rebuilt if there are any
+manifest changes or dependency updates.
+.sp
+See also \fBcargo\-update\fP(1) which is also capable of creating a \fBCargo.lock\fP
+lockfile and has more options for controlling update behavior.
+.SH "OPTIONS"
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.sp
+\fB\-\-offline\fP
+.RS 4
+Prevents Cargo from accessing the network for any reason. Without this
+flag, Cargo will stop with an error if it needs to access the network and
+the network is not available. With this flag, Cargo will attempt to
+proceed without the network if possible.
+.sp
+Beware that this may result in different dependency resolution than online
+mode. Cargo will restrict itself to crates that are downloaded locally, even
+if there might be a newer version as indicated in the local copy of the index.
+See the \fBcargo\-fetch\fP(1) command to download dependencies before going
+offline.
+.sp
+May also be specified with the \fBnet.offline\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Create or update the lockfile for the current package or workspace:
+.sp
+.if n .RS 4
+.nf
+cargo generate\-lockfile
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-update\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-help.1 b/linux-x86/1.36.0/share/man/man1/cargo-help.1
new file mode 100644
index 0000000..30e036d
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-help.1
@@ -0,0 +1,75 @@
+'\" t
+.\"     Title: cargo-help
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2018-12-20
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-HELP" "1" "2018-12-20" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-help \- Get help for a Cargo command
+.SH "SYNOPSIS"
+.sp
+\fBcargo help [\fISUBCOMMAND\fP]\fP
+.SH "DESCRIPTION"
+.sp
+Prints a help message for the given command.
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Get help for a command:
+.sp
+.if n .RS 4
+.nf
+cargo help build
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 2." 4.2
+.\}
+Help is also available with the \fB\-\-help\fP flag:
+.sp
+.if n .RS 4
+.nf
+cargo build \-\-help
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-init.1 b/linux-x86/1.36.0/share/man/man1/cargo-init.1
new file mode 100644
index 0000000..1a55f5c
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-init.1
@@ -0,0 +1,364 @@
+'\" t
+.\"     Title: cargo-init
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-01-23
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-INIT" "1" "2019-01-23" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-init \- Create a new Cargo package in an existing directory
+.SH "SYNOPSIS"
+.sp
+\fBcargo init [\fIOPTIONS\fP] [\fIPATH\fP]\fP
+.SH "DESCRIPTION"
+.sp
+This command will create a new Cargo manifest in the current directory. Give a
+path as an argument to create in the given directory.
+.sp
+If there are typically\-named Rust source files already in the directory, those
+will be used. If not, then a sample \fBsrc/main.rs\fP file will be created, or
+\fBsrc/lib.rs\fP if \fB\-\-lib\fP is passed.
+.sp
+If the directory is not already in a VCS repository, then a new repository
+is created (see \fB\-\-vcs\fP below).
+.sp
+The "authors" field in the manifest is determined from the environment or
+configuration settings. A name is required and is determined from (first match
+wins):
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBcargo\-new.name\fP Cargo config value
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBCARGO_NAME\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBGIT_AUTHOR_NAME\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBGIT_COMMITTER_NAME\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBuser.name\fP git configuration value
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBUSER\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBUSERNAME\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBNAME\fP environment variable
+.RE
+.sp
+The email address is optional and is determined from:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBcargo\-new.email\fP Cargo config value
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBCARGO_EMAIL\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBGIT_AUTHOR_EMAIL\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBGIT_COMMITTER_EMAIL\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBuser.email\fP git configuration value
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBEMAIL\fP environment variable
+.RE
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "the reference" " "
+for more information about
+configuration files.
+.sp
+See \fBcargo\-new\fP(1) for a similar command which will create a new package in
+a new directory.
+.SH "OPTIONS"
+.SS "Init Options"
+.sp
+\fB\-\-bin\fP
+.RS 4
+Create a package with a binary target (\fBsrc/main.rs\fP).
+This is the default behavior.
+.RE
+.sp
+\fB\-\-lib\fP
+.RS 4
+Create a package with a library target (\fBsrc/lib.rs\fP).
+.RE
+.sp
+\fB\-\-edition\fP \fIEDITION\fP
+.RS 4
+Specify the Rust edition to use. Default is 2018.
+Possible values: 2015, 2018
+.RE
+.sp
+\fB\-\-name\fP \fINAME\fP
+.RS 4
+Set the package name. Defaults to the directory name.
+.RE
+.sp
+\fB\-\-vcs\fP \fIVCS\fP
+.RS 4
+Initialize a new VCS repository for the given version control system (git,
+hg, pijul, or fossil) or do not initialize any version control at all
+(none). If not specified, defaults to \fBgit\fP or the configuration value
+\fBcargo\-new.vcs\fP, or \fBnone\fP if already inside a VCS repository.
+.RE
+.sp
+\fB\-\-registry\fP \fIREGISTRY\fP
+.RS 4
+This sets the \fBpublish\fP field in \fBCargo.toml\fP to the given registry name
+which will restrict publishing only to that registry.
+.sp
+Registry names are defined in \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "Cargo config files" "."
+If not specified, the default registry defined by the \fBregistry.default\fP
+config key is used. If the default registry is not set and \fB\-\-registry\fP is not
+used, the \fBpublish\fP field will not be set which means that publishing will not
+be restricted.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Create a binary Cargo package in the current directory:
+.sp
+.if n .RS 4
+.nf
+cargo init
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-new\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-install.1 b/linux-x86/1.36.0/share/man/man1/cargo-install.1
new file mode 100644
index 0000000..0419a5a
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-install.1
@@ -0,0 +1,400 @@
+'\" t
+.\"     Title: cargo-install
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-05-12
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-INSTALL" "1" "2019-05-12" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-install \- Build and install a Rust binary
+.SH "SYNOPSIS"
+.sp
+\fBcargo install [\fIOPTIONS\fP] \fICRATE\fP...\fP
+.br
+\fBcargo install [\fIOPTIONS\fP] \-\-path \fIPATH\fP\fP
+.br
+\fBcargo install [\fIOPTIONS\fP] \-\-git \fIURL\fP [\fICRATE\fP...]\fP
+.br
+\fBcargo install [\fIOPTIONS\fP] \-\-list\fP
+.SH "DESCRIPTION"
+.sp
+This command manages Cargo\(cqs local set of installed binary crates. Only packages
+which have \fB[[bin]]\fP targets can be installed, and all binaries are installed into
+the installation root\(cqs \fBbin\fP folder.
+.sp
+The installation root is determined, in order of precedence:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fB\-\-root\fP option
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBCARGO_INSTALL_ROOT\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBinstall.root\fP Cargo \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" ""
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBCARGO_HOME\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fB$HOME/.cargo\fP
+.RE
+.sp
+There are multiple sources from which a crate can be installed. The default
+location is crates.io but the \fB\-\-git\fP, \fB\-\-path\fP, and \fBregistry\fP flags can
+change this source. If the source contains more than one package (such as
+crates.io or a git repository with multiple crates) the \fICRATE\fP argument is
+required to indicate which crate should be installed.
+.sp
+Crates from crates.io can optionally specify the version they wish to install
+via the \fB\-\-version\fP flags, and similarly packages from git repositories can
+optionally specify the branch, tag, or revision that should be installed. If a
+crate has multiple binaries, the \fB\-\-bin\fP argument can selectively install only
+one of them, and if you\(cqd rather install examples the \fB\-\-example\fP argument can
+be used as well.
+.sp
+If the source is crates.io or \fB\-\-git\fP then by default the crate will be built
+in a temporary target directory. To avoid this, the target directory can be
+specified by setting the \fBCARGO_TARGET_DIR\fP environment variable to a relative
+path. In particular, this can be useful for caching build artifacts on
+continuous integration systems.
+.SH "OPTIONS"
+.SS "Install Options"
+.sp
+\fB\-\-vers\fP \fIVERSION\fP, \fB\-\-version\fP \fIVERSION\fP
+.RS 4
+Specify a version to install.
+.RE
+.sp
+\fB\-\-git\fP \fIURL\fP
+.RS 4
+Git URL to install the specified crate from.
+.RE
+.sp
+\fB\-\-branch\fP \fIBRANCH\fP
+.RS 4
+Branch to use when installing from git.
+.RE
+.sp
+\fB\-\-tag\fP \fITAG\fP
+.RS 4
+Tag to use when installing from git.
+.RE
+.sp
+\fB\-\-rev\fP \fISHA\fP
+.RS 4
+Specific commit to use when installing from git.
+.RE
+.sp
+\fB\-\-path\fP \fIPATH\fP
+.RS 4
+Filesystem path to local crate to install.
+.RE
+.sp
+\fB\-\-list\fP
+.RS 4
+List all installed packages and their versions.
+.RE
+.sp
+\fB\-f\fP, \fB\-\-force\fP
+.RS 4
+Force overwriting existing crates or binaries. This can be used to
+reinstall or upgrade a crate.
+.RE
+.sp
+\fB\-\-bin\fP \fINAME\fP...
+.RS 4
+Install only the specified binary.
+.RE
+.sp
+\fB\-\-bins\fP
+.RS 4
+Install all binaries.
+.RE
+.sp
+\fB\-\-example\fP \fINAME\fP...
+.RS 4
+Install only the specified example.
+.RE
+.sp
+\fB\-\-examples\fP
+.RS 4
+Install all examples.
+.RE
+.sp
+\fB\-\-root\fP \fIDIR\fP
+.RS 4
+Directory to install packages into.
+.RE
+.sp
+\fB\-\-registry\fP \fIREGISTRY\fP
+.RS 4
+Name of the registry to use. Registry names are defined in \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "Cargo config files" "."
+If not specified, the default registry is used, which is defined by the
+\fBregistry.default\fP config key which defaults to \fBcrates\-io\fP.
+.RE
+.SS "Feature Selection"
+.sp
+When no feature options are given, the \fBdefault\fP feature is activated for
+every selected package.
+.sp
+\fB\-\-features\fP \fIFEATURES\fP
+.RS 4
+Space or comma separated list of features to activate. These features only
+apply to the current directory\(cqs package. Features of direct dependencies
+may be enabled with \fB<dep\-name>/<feature\-name>\fP syntax.
+.RE
+.sp
+\fB\-\-all\-features\fP
+.RS 4
+Activate all available features of all selected packages.
+.RE
+.sp
+\fB\-\-no\-default\-features\fP
+.RS 4
+Do not activate the \fBdefault\fP feature of the current directory\(cqs
+package.
+.RE
+.SS "Compilation Options"
+.sp
+\fB\-\-target\fP \fITRIPLE\fP
+.RS 4
+Install for the given architecture. The default is the host
+architecture. The general format of the triple is
+\fB<arch><sub>\-<vendor>\-<sys>\-<abi>\fP. Run \fBrustc \-\-print target\-list\fP for a
+list of supported targets.
+.sp
+This may also be specified with the \fBbuild.target\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-debug\fP
+.RS 4
+Build with the \fBdev\fP profile instead the \fBrelease\fP profile.
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.sp
+\fB\-\-offline\fP
+.RS 4
+Prevents Cargo from accessing the network for any reason. Without this
+flag, Cargo will stop with an error if it needs to access the network and
+the network is not available. With this flag, Cargo will attempt to
+proceed without the network if possible.
+.sp
+Beware that this may result in different dependency resolution than online
+mode. Cargo will restrict itself to crates that are downloaded locally, even
+if there might be a newer version as indicated in the local copy of the index.
+See the \fBcargo\-fetch\fP(1) command to download dependencies before going
+offline.
+.sp
+May also be specified with the \fBnet.offline\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Miscellaneous Options"
+.sp
+\fB\-j\fP \fIN\fP, \fB\-\-jobs\fP \fIN\fP
+.RS 4
+Number of parallel jobs to run. May also be specified with the
+\fBbuild.jobs\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults to
+the number of CPUs.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Install a package from crates.io:
+.sp
+.if n .RS 4
+.nf
+cargo install ripgrep
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 2." 4.2
+.\}
+Reinstall or upgrade a package:
+.sp
+.if n .RS 4
+.nf
+cargo install ripgrep \-\-force
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-uninstall\fP(1), \fBcargo\-search\fP(1), \fBcargo\-publish\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-locate-project.1 b/linux-x86/1.36.0/share/man/man1/cargo-locate-project.1
new file mode 100644
index 0000000..9d5dca9
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-locate-project.1
@@ -0,0 +1,155 @@
+'\" t
+.\"     Title: cargo-locate-project
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2018-12-20
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-LOCATE\-PROJECT" "1" "2018-12-20" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-locate\-project \- Print a JSON representation of a Cargo.toml file\(aqs location
+.SH "SYNOPSIS"
+.sp
+\fBcargo locate\-project [\fIOPTIONS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+This command will print a JSON object to stdout with the full path to the
+\fBCargo.toml\fP manifest.
+.sp
+See also \fBcargo\-metadata\fP(1) which is capable of returning the path to a
+workspace root.
+.SH "OPTIONS"
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Display the path to the manifest based on the current directory:
+.sp
+.if n .RS 4
+.nf
+cargo locate\-project
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-metadata\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-login.1 b/linux-x86/1.36.0/share/man/man1/cargo-login.1
new file mode 100644
index 0000000..2f9ec81
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-login.1
@@ -0,0 +1,163 @@
+'\" t
+.\"     Title: cargo-login
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-01-23
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-LOGIN" "1" "2019-01-23" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-login \- Save an API token from the registry locally
+.SH "SYNOPSIS"
+.sp
+\fBcargo login [\fIOPTIONS\fP] [\fITOKEN\fP]\fP
+.SH "DESCRIPTION"
+.sp
+This command will save the API token to disk so that commands that require
+authentication, such as \fBcargo\-publish\fP(1), will be automatically
+authenticated. The token is saved in \fB$CARGO_HOME/credentials\fP. \fBCARGO_HOME\fP
+defaults to \fB.cargo\fP in your home directory.
+.sp
+If the \fITOKEN\fP argument is not specified, it will be read from stdin.
+.sp
+The API token for crates.io may be retrieved from \c
+.URL "https://crates.io/me" "" "."
+.sp
+Take care to keep the token secret, it should not be shared with anyone else.
+.SH "OPTIONS"
+.SS "Login Options"
+.sp
+\fB\-\-registry\fP \fIREGISTRY\fP
+.RS 4
+Name of the registry to use. Registry names are defined in \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "Cargo config files" "."
+If not specified, the default registry is used, which is defined by the
+\fBregistry.default\fP config key which defaults to \fBcrates\-io\fP.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Save the API token to disk:
+.sp
+.if n .RS 4
+.nf
+cargo login
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-publish\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-metadata.1 b/linux-x86/1.36.0/share/man/man1/cargo-metadata.1
new file mode 100644
index 0000000..95a46d7
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-metadata.1
@@ -0,0 +1,445 @@
+'\" t
+.\"     Title: cargo-metadata
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-05-08
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-METADATA" "1" "2019-05-08" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-metadata \- Machine\-readable metadata about the current package
+.SH "SYNOPSIS"
+.sp
+\fBcargo metadata [\fIOPTIONS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+Output the resolved dependencies of a package, the concrete used versions
+including overrides, in JSON to stdout.
+.sp
+It is recommended to include the \fB\-\-format\-version\fP flag to future\-proof
+your code to ensure the output is in the format you are expecting.
+.sp
+See the \c
+.URL "https://crates.io/crates/cargo_metadata" "cargo_metadata crate"
+for a Rust API for reading the metadata.
+.SH "OUTPUT FORMAT"
+.sp
+The output has the following format:
+.sp
+.if n .RS 4
+.nf
+{
+    /* Array of all packages in the workspace.
+       It also includes all feature\-enabled dependencies unless \-\-no\-deps is used.
+    */
+    "packages": [
+        {
+            /* The name of the package. */
+            "name": "my\-package",
+            /* The version of the package. */
+            "version": "0.1.0",
+            /* The Package ID, a unique identifier for referring to the package. */
+            "id": "my\-package 0.1.0 (path+file:///path/to/my\-package)",
+            /* The license value from the manifest, or null. */
+            "license": "MIT/Apache\-2.0",
+            /* The license\-file value from the manifest, or null. */
+            "license_file": "LICENSE",
+            /* The description value from the manifest, or null. */
+            "description": "Package description.",
+            /* The source ID of the package. This represents where
+               a package is retrieved from.
+               This is null for path dependencies and workspace members.
+               For other dependencies, it is a string with the format:
+               \- "registry+URL" for registry\-based dependencies.
+                 Example: "registry+https://github.com/rust\-lang/crates.io\-index"
+               \- "git+URL" for git\-based dependencies.
+                 Example: "git+https://github.com/rust\-lang/cargo?rev=5e85ba14aaa20f8133863373404cb0af69eeef2c#5e85ba14aaa20f8133863373404cb0af69eeef2c"
+            */
+            "source": null,
+            /* Array of dependencies declared in the package\(aqs manifest. */
+            "dependencies": [
+                {
+                    /* The name of the dependency. */
+                    "name": "bitflags",
+                    /* The source ID of the dependency. May be null, see
+                       description for the package source.
+                    */
+                    "source": "registry+https://github.com/rust\-lang/crates.io\-index",
+                    /* The version requirement for the dependency.
+                       Dependencies without a version requirement have a value of "*".
+                    */
+                    "req": "^1.0",
+                    /* The dependency kind.
+                       "dev", "build", or null for a normal dependency.
+                    */
+                    "kind": null,
+                    /* If the dependency is renamed, this is the new name for
+                       the dependency as a string.  null if it is not renamed.
+                    */
+                    "rename": null,
+                    /* Boolean of whether or not this is an optional dependency. */
+                    "optional": false,
+                    /* Boolean of whether or not default features are enabled. */
+                    "uses_default_features": true,
+                    /* Array of features enabled. */
+                    "features": [],
+                    /* The target platform for the dependency.
+                       null if not a target dependency.
+                    */
+                    "target": "cfg(windows)",
+                    /* A string of the URL of the registry this dependency is from.
+                       If not specified or null, the dependency is from the default
+                       registry (crates.io).
+                    */
+                    "registry": null
+                }
+            ],
+            /* Array of Cargo targets. */
+            "targets": [
+                {
+                    /* Array of target kinds.
+                       \- lib targets list the `crate\-type` values from the
+                         manifest such as "lib", "rlib", "dylib",
+                         "proc\-macro", etc. (default ["lib"])
+                       \- binary is ["bin"]
+                       \- example is ["example"]
+                       \- integration test is ["test"]
+                       \- benchmark is ["bench"]
+                       \- build script is ["custom\-build"]
+                    */
+                    "kind": [
+                        "bin"
+                    ],
+                    /* Array of crate types.
+                       \- lib and example libraries list the `crate\-type` values
+                         from the manifest such as "lib", "rlib", "dylib",
+                         "proc\-macro", etc. (default ["lib"])
+                       \- all other target kinds are ["bin"]
+                    */
+                    "crate_types": [
+                        "bin"
+                    ],
+                    /* The name of the target. */
+                    "name": "my\-package",
+                    /* Absolute path to the root source file of the target. */
+                    "src_path": "/path/to/my\-package/src/main.rs",
+                    /* The Rust edition of the target.
+                       Defaults to the package edition.
+                    */
+                    "edition": "2018",
+                    /* Array of required features.
+                       This property is not included if no required features are set.
+                    */
+                    "required\-features": ["feat1"]
+                }
+            ],
+            /* Set of features defined for the package.
+               Each feature maps to an array of features or dependencies it
+               enables.
+            */
+            "features": {
+                "default": [
+                    "feat1"
+                ],
+                "feat1": [],
+                "feat2": []
+            },
+            /* Absolute path to this package\(aqs manifest. */
+            "manifest_path": "/path/to/my\-package/Cargo.toml",
+            /* Package metadata.
+               This is null if no metadata is specified.
+            */
+            "metadata": {
+                "docs": {
+                    "rs": {
+                        "all\-features": true
+                    }
+                }
+            },
+            /* Array of authors from the manifest.
+               Empty array if no authors specified.
+            */
+            "authors": [
+                "Jane Doe <user@example.com>"
+            ],
+            /* Array of categories from the manifest. */
+            "categories": [
+                "command\-line\-utilities"
+            ],
+            /* Array of keywords from the manifest. */
+            "keywords": [
+                "cli"
+            ],
+            /* The readme value from the manifest or null if not specified. */
+            "readme": "README.md",
+            /* The repository value from the manifest or null if not specified. */
+            "repository": "https://github.com/rust\-lang/cargo",
+            /* The default edition of the package.
+               Note that individual targets may have different editions.
+            */
+            "edition": "2018",
+            /* Optional string that is the name of a native library the package
+               is linking to.
+            */
+            "links": null,
+        }
+    ],
+    /* Array of members of the workspace.
+       Each entry is the Package ID for the package.
+    */
+    "workspace_members": [
+        "my\-package 0.1.0 (path+file:///path/to/my\-package)",
+    ],
+    /* The resolved dependency graph, with the concrete versions and features
+       selected. The set depends on the enabled features.
+       This is null if \-\-no\-deps is specified.
+    */
+    "resolve": {
+        /* Array of nodes within the dependency graph.
+           Each node is a package.
+        */
+        "nodes": [
+            {
+                /* The Package ID of this node. */
+                "id": "my\-package 0.1.0 (path+file:///path/to/my\-package)",
+                /* The dependencies of this package, an array of Package IDs. */
+                "dependencies": [
+                    "bitflags 1.0.4 (registry+https://github.com/rust\-lang/crates.io\-index)"
+                ],
+                /* The dependencies of this package. This is an alternative to
+                   "dependencies" which contains additional information. In
+                   particular, this handles renamed dependencies.
+                */
+                "deps": [
+                    {
+                        /* The name of the dependency\(aqs library target.
+                           If this is a renamed dependency, this is the new
+                           name.
+                        */
+                        "name": "bitflags",
+                        /* The Package ID of the dependency. */
+                        "pkg": "bitflags 1.0.4 (registry+https://github.com/rust\-lang/crates.io\-index)"
+                    }
+                ],
+                /* Array of features enabled on this package. */
+                "features": [
+                    "default"
+                ]
+            }
+        ],
+        /* The root package of the workspace.
+           This is null if this is a virtual workspace. Otherwise it is
+           the Package ID of the root package.
+        */
+        "root": "my\-package 0.1.0 (path+file:///path/to/my\-package)"
+    },
+    /* The absolute path to the build directory where Cargo places its output. */
+    "target_directory": "/path/to/my\-package/target",
+    /* The version of the schema for this metadata structure.
+       This will be changed if incompatible changes are ever made.
+    */
+    "version": 1,
+    /* The absolute path to the root of the workspace. */
+    "workspace_root": "/path/to/my\-package"
+}
+.fi
+.if n .RE
+.SH "OPTIONS"
+.SS "Output Options"
+.sp
+\fB\-\-no\-deps\fP
+.RS 4
+Output information only about the workspace members and don\(cqt fetch
+dependencies.
+.RE
+.sp
+\fB\-\-format\-version\fP \fIVERSION\fP
+.RS 4
+Specify the version of the output format to use. Currently \fB1\fP is the only
+possible value.
+.RE
+.SS "Feature Selection"
+.sp
+When no feature options are given, the \fBdefault\fP feature is activated for
+every selected package.
+.sp
+\fB\-\-features\fP \fIFEATURES\fP
+.RS 4
+Space or comma separated list of features to activate. These features only
+apply to the current directory\(cqs package. Features of direct dependencies
+may be enabled with \fB<dep\-name>/<feature\-name>\fP syntax.
+.RE
+.sp
+\fB\-\-all\-features\fP
+.RS 4
+Activate all available features of all selected packages.
+.RE
+.sp
+\fB\-\-no\-default\-features\fP
+.RS 4
+Do not activate the \fBdefault\fP feature of the current directory\(cqs
+package.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.sp
+\fB\-\-offline\fP
+.RS 4
+Prevents Cargo from accessing the network for any reason. Without this
+flag, Cargo will stop with an error if it needs to access the network and
+the network is not available. With this flag, Cargo will attempt to
+proceed without the network if possible.
+.sp
+Beware that this may result in different dependency resolution than online
+mode. Cargo will restrict itself to crates that are downloaded locally, even
+if there might be a newer version as indicated in the local copy of the index.
+See the \fBcargo\-fetch\fP(1) command to download dependencies before going
+offline.
+.sp
+May also be specified with the \fBnet.offline\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Output JSON about the current package:
+.sp
+.if n .RS 4
+.nf
+cargo metadata \-\-format\-version=1
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-new.1 b/linux-x86/1.36.0/share/man/man1/cargo-new.1
new file mode 100644
index 0000000..894b5ab
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-new.1
@@ -0,0 +1,359 @@
+'\" t
+.\"     Title: cargo-new
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-01-23
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-NEW" "1" "2019-01-23" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-new \- Create a new Cargo package
+.SH "SYNOPSIS"
+.sp
+\fBcargo new [\fIOPTIONS\fP] \fIPATH\fP\fP
+.SH "DESCRIPTION"
+.sp
+This command will create a new Cargo package in the given directory. This
+includes a simple template with a \fBCargo.toml\fP manifest, sample source file,
+and a VCS ignore file. If the directory is not already in a VCS repository,
+then a new repository is created (see \fB\-\-vcs\fP below).
+.sp
+The "authors" field in the manifest is determined from the environment or
+configuration settings. A name is required and is determined from (first match
+wins):
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBcargo\-new.name\fP Cargo config value
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBCARGO_NAME\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBGIT_AUTHOR_NAME\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBGIT_COMMITTER_NAME\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBuser.name\fP git configuration value
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBUSER\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBUSERNAME\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBNAME\fP environment variable
+.RE
+.sp
+The email address is optional and is determined from:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBcargo\-new.email\fP Cargo config value
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBCARGO_EMAIL\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBGIT_AUTHOR_EMAIL\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBGIT_COMMITTER_EMAIL\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBuser.email\fP git configuration value
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBEMAIL\fP environment variable
+.RE
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "the reference" " "
+for more information about
+configuration files.
+.sp
+See \fBcargo\-init\fP(1) for a similar command which will create a new manifest
+in an existing directory.
+.SH "OPTIONS"
+.SS "New Options"
+.sp
+\fB\-\-bin\fP
+.RS 4
+Create a package with a binary target (\fBsrc/main.rs\fP).
+This is the default behavior.
+.RE
+.sp
+\fB\-\-lib\fP
+.RS 4
+Create a package with a library target (\fBsrc/lib.rs\fP).
+.RE
+.sp
+\fB\-\-edition\fP \fIEDITION\fP
+.RS 4
+Specify the Rust edition to use. Default is 2018.
+Possible values: 2015, 2018
+.RE
+.sp
+\fB\-\-name\fP \fINAME\fP
+.RS 4
+Set the package name. Defaults to the directory name.
+.RE
+.sp
+\fB\-\-vcs\fP \fIVCS\fP
+.RS 4
+Initialize a new VCS repository for the given version control system (git,
+hg, pijul, or fossil) or do not initialize any version control at all
+(none). If not specified, defaults to \fBgit\fP or the configuration value
+\fBcargo\-new.vcs\fP, or \fBnone\fP if already inside a VCS repository.
+.RE
+.sp
+\fB\-\-registry\fP \fIREGISTRY\fP
+.RS 4
+This sets the \fBpublish\fP field in \fBCargo.toml\fP to the given registry name
+which will restrict publishing only to that registry.
+.sp
+Registry names are defined in \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "Cargo config files" "."
+If not specified, the default registry defined by the \fBregistry.default\fP
+config key is used. If the default registry is not set and \fB\-\-registry\fP is not
+used, the \fBpublish\fP field will not be set which means that publishing will not
+be restricted.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Create a binary Cargo package in the given directory:
+.sp
+.if n .RS 4
+.nf
+cargo new foo
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-init\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-owner.1 b/linux-x86/1.36.0/share/man/man1/cargo-owner.1
new file mode 100644
index 0000000..8e798a3
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-owner.1
@@ -0,0 +1,238 @@
+'\" t
+.\"     Title: cargo-owner
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-02-05
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-OWNER" "1" "2019-02-05" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-owner \- Manage the owners of a crate on the registry
+.SH "SYNOPSIS"
+.sp
+\fBcargo owner [\fIOPTIONS\fP] \-\-add \fILOGIN\fP [\fICRATE\fP]\fP
+.br
+\fBcargo owner [\fIOPTIONS\fP] \-\-remove \fILOGIN\fP [\fICRATE\fP]\fP
+.br
+\fBcargo owner [\fIOPTIONS\fP] \-\-list [\fICRATE\fP]\fP
+.SH "DESCRIPTION"
+.sp
+This command will modify the owners for a crate on the registry. Owners of a
+crate can upload new versions and yank old versions. Non\-team owners can also
+modify the set of owners, so take care!
+.sp
+This command requires you to be authenticated with either the \fB\-\-token\fP option
+or using \fBcargo\-login\fP(1).
+.sp
+If the crate name is not specified, it will use the package name from the
+current directory.
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/publishing.html#cargo\-owner" "the reference" " "
+for more
+information about owners and publishing.
+.SH "OPTIONS"
+.SS "Owner Options"
+.sp
+\fB\-a\fP, \fB\-\-add\fP \fILOGIN\fP...
+.RS 4
+Invite the given user or team as an owner.
+.RE
+.sp
+\fB\-r\fP, \fB\-\-remove\fP \fILOGIN\fP...
+.RS 4
+Remove the given user or team as an owner.
+.RE
+.sp
+\fB\-l\fP, \fB\-\-list\fP
+.RS 4
+List owners of a crate.
+.RE
+.sp
+\fB\-\-token\fP \fITOKEN\fP
+.RS 4
+API token to use when authenticating. This overrides the token stored in
+the credentials file (which is created by \fBcargo\-login\fP(1)).
+.sp
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "Cargo config" " "
+environment variables can be
+used to override the tokens stored in the credentials file. The token for
+crates.io may be specified with the \fBCARGO_REGISTRY_TOKEN\fP environment
+variable. Tokens for other registries may be specified with environment
+variables of the form \fBCARGO_REGISTRIES_NAME_TOKEN\fP where \fBNAME\fP is the name
+of the registry in all capital letters.
+.RE
+.sp
+\fB\-\-index\fP \fIINDEX\fP
+.RS 4
+The URL of the registry index to use.
+.RE
+.sp
+\fB\-\-registry\fP \fIREGISTRY\fP
+.RS 4
+Name of the registry to use. Registry names are defined in \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "Cargo config files" "."
+If not specified, the default registry is used, which is defined by the
+\fBregistry.default\fP config key which defaults to \fBcrates\-io\fP.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+List owners of a package:
+.sp
+.if n .RS 4
+.nf
+cargo owner \-\-list foo
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 2." 4.2
+.\}
+Invite an owner to a package:
+.sp
+.if n .RS 4
+.nf
+cargo owner \-\-add username foo
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 3.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 3." 4.2
+.\}
+Remove an owner from a package:
+.sp
+.if n .RS 4
+.nf
+cargo owner \-\-remove username foo
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-login\fP(1), \fBcargo\-publish\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-package.1 b/linux-x86/1.36.0/share/man/man1/cargo-package.1
new file mode 100644
index 0000000..3bf48b8
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-package.1
@@ -0,0 +1,342 @@
+'\" t
+.\"     Title: cargo-package
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-02-13
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-PACKAGE" "1" "2019-02-13" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-package \- Assemble the local package into a distributable tarball
+.SH "SYNOPSIS"
+.sp
+\fBcargo package [\fIOPTIONS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+This command will create a distributable, compressed \fB.crate\fP file with the
+source code of the package in the current directory. The resulting file will
+be stored in the \fBtarget/package\fP directory. This performs the following
+steps:
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Load and check the current workspace, performing some basic checks.
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+Path dependencies are not allowed unless they have a version key. Cargo
+will ignore the path key for dependencies in published packages.
+.RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 2." 4.2
+.\}
+Create the compressed \fB.crate\fP file.
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+The original \fBCargo.toml\fP file is rewritten and normalized.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fB[patch]\fP, \fB[replace]\fP, and \fB[workspace]\fP sections are removed from the
+manifest.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+A \fB.cargo_vcs_info.json\fP file is included that contains information
+about the current VCS checkout hash if available (not included with
+\fB\-\-allow\-dirty\fP).
+.RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 3.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 3." 4.2
+.\}
+Extract the \fB.crate\fP file and build it to verify it can build.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 4.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 4." 4.2
+.\}
+Check that build scripts did not modify any source files.
+.RE
+.sp
+The list of files included can be controlled with the \fBinclude\fP and \fBexclude\fP
+fields in the manifest.
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/publishing.html" "the reference" " "
+for more details about
+packaging and publishing.
+.SH "OPTIONS"
+.SS "Package Options"
+.sp
+\fB\-l\fP, \fB\-\-list\fP
+.RS 4
+Print files included in a package without making one.
+.RE
+.sp
+\fB\-\-no\-verify\fP
+.RS 4
+Don\(cqt verify the contents by building them.
+.RE
+.sp
+\fB\-\-no\-metadata\fP
+.RS 4
+Ignore warnings about a lack of human\-usable metadata (such as the
+description or the license).
+.RE
+.sp
+\fB\-\-allow\-dirty\fP
+.RS 4
+Allow working directories with uncommitted VCS changes to be packaged.
+.RE
+.SS "Compilation Options"
+.sp
+\fB\-\-target\fP \fITRIPLE\fP
+.RS 4
+Package for the given architecture. The default is the host
+architecture. The general format of the triple is
+\fB<arch><sub>\-<vendor>\-<sys>\-<abi>\fP. Run \fBrustc \-\-print target\-list\fP for a
+list of supported targets.
+.sp
+This may also be specified with the \fBbuild.target\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-target\-dir\fP \fIDIRECTORY\fP
+.RS 4
+Directory for all generated artifacts and intermediate files. May also be
+specified with the \fBCARGO_TARGET_DIR\fP environment variable, or the
+\fBbuild.target\-dir\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults
+to \fBtarget\fP in the root of the workspace.
+.RE
+.SS "Feature Selection"
+.sp
+When no feature options are given, the \fBdefault\fP feature is activated for
+every selected package.
+.sp
+\fB\-\-features\fP \fIFEATURES\fP
+.RS 4
+Space or comma separated list of features to activate. These features only
+apply to the current directory\(cqs package. Features of direct dependencies
+may be enabled with \fB<dep\-name>/<feature\-name>\fP syntax.
+.RE
+.sp
+\fB\-\-all\-features\fP
+.RS 4
+Activate all available features of all selected packages.
+.RE
+.sp
+\fB\-\-no\-default\-features\fP
+.RS 4
+Do not activate the \fBdefault\fP feature of the current directory\(cqs
+package.
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.SS "Miscellaneous Options"
+.sp
+\fB\-j\fP \fIN\fP, \fB\-\-jobs\fP \fIN\fP
+.RS 4
+Number of parallel jobs to run. May also be specified with the
+\fBbuild.jobs\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults to
+the number of CPUs.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Create a compressed \fB.crate\fP file of the current package:
+.sp
+.if n .RS 4
+.nf
+cargo package
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-publish\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-pkgid.1 b/linux-x86/1.36.0/share/man/man1/cargo-pkgid.1
new file mode 100644
index 0000000..1b80afa
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-pkgid.1
@@ -0,0 +1,296 @@
+'\" t
+.\"     Title: cargo-pkgid
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-04-16
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-PKGID" "1" "2019-04-16" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-pkgid \- Print a fully qualified package specification
+.SH "SYNOPSIS"
+.sp
+\fBcargo pkgid [\fIOPTIONS\fP] [\fISPEC\fP]\fP
+.SH "DESCRIPTION"
+.sp
+Given a \fISPEC\fP argument, print out the fully qualified package ID specifier
+for a package or dependency in the current workspace. This command will
+generate an error if \fISPEC\fP is ambiguous as to which package it refers to in
+the dependency graph. If no \fISPEC\fP is given, then the specifier for the local
+package is printed.
+.sp
+This command requires that a lockfile is available and dependencies have been
+fetched.
+.sp
+A package specifier consists of a name, version, and source URL. You are
+allowed to use partial specifiers to succinctly match a specific package as
+long as it matches only one package. The format of a \fISPEC\fP can be one of the
+following:
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.B Table 1. SPEC Query Format
+.TS
+allbox tab(:);
+lt lt.
+T{
+.sp
+SPEC Structure
+T}:T{
+.sp
+Example SPEC
+T}
+T{
+.sp
+\fINAME\fP
+T}:T{
+.sp
+\fBbitflags\fP
+T}
+T{
+.sp
+\fINAME\fP\fB:\fP\fIVERSION\fP
+T}:T{
+.sp
+\fBbitflags:1.0.4\fP
+T}
+T{
+.sp
+\fIURL\fP
+T}:T{
+.sp
+\fB\c
+.URL "https://github.com/rust\-lang/cargo" "" "\fP"
+T}
+T{
+.sp
+\fIURL\fP\fB#\fP\fIVERSION\fP
+T}:T{
+.sp
+\fB\c
+.URL "https://github.com/rust\-lang/cargo#0.33.0" "" "\fP"
+T}
+T{
+.sp
+\fIURL\fP\fB#\fP\fINAME\fP
+T}:T{
+.sp
+\fB\c
+.URL "https://github.com/rust\-lang/crates.io\-index#bitflags" "" "\fP"
+T}
+T{
+.sp
+\fIURL\fP\fB#\fP\fINAME\fP\fB:\fP\fIVERSION\fP
+T}:T{
+.sp
+\fB\c
+.URL "https://github.com/rust\-lang/cargo#crates\-io:0.21.0" "" "\fP"
+T}
+.TE
+.sp
+.SH "OPTIONS"
+.SS "Package Selection"
+.sp
+\fB\-p\fP \fISPEC\fP, \fB\-\-package\fP \fISPEC\fP
+.RS 4
+Get the package ID for the given package instead of the current package.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.sp
+\fB\-\-offline\fP
+.RS 4
+Prevents Cargo from accessing the network for any reason. Without this
+flag, Cargo will stop with an error if it needs to access the network and
+the network is not available. With this flag, Cargo will attempt to
+proceed without the network if possible.
+.sp
+Beware that this may result in different dependency resolution than online
+mode. Cargo will restrict itself to crates that are downloaded locally, even
+if there might be a newer version as indicated in the local copy of the index.
+See the \fBcargo\-fetch\fP(1) command to download dependencies before going
+offline.
+.sp
+May also be specified with the \fBnet.offline\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Retrieve package specification for \fBfoo\fP package:
+.sp
+.if n .RS 4
+.nf
+cargo pkgid foo
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 2." 4.2
+.\}
+Retrieve package specification for version 1.0.0 of \fBfoo\fP:
+.sp
+.if n .RS 4
+.nf
+cargo pkgid foo:1.0.0
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 3.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 3." 4.2
+.\}
+Retrieve package specification for \fBfoo\fP from crates.io:
+.sp
+.if n .RS 4
+.nf
+cargo pkgid https://github.com/rust\-lang/crates.io\-index#foo
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-generate\-lockfile\fP(1), \fBcargo\-metadata\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-publish.1 b/linux-x86/1.36.0/share/man/man1/cargo-publish.1
new file mode 100644
index 0000000..c457a00
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-publish.1
@@ -0,0 +1,336 @@
+'\" t
+.\"     Title: cargo-publish
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-05-08
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-PUBLISH" "1" "2019-05-08" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-publish \- Upload a package to the registry
+.SH "SYNOPSIS"
+.sp
+\fBcargo publish [\fIOPTIONS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+This command will create a distributable, compressed \fB.crate\fP file with the
+source code of the package in the current directory and upload it to a
+registry. The default registry is \c
+.URL "https://crates.io" "" "."
+This performs the
+following steps:
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Performs a few checks, including:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+Checks the \fBpackage.publish\fP key in the manifest for restrictions on which
+registries you are allowed to publish to.
+.RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 2." 4.2
+.\}
+Create a \fB.crate\fP file by following the steps in \fBcargo\-package\fP(1).
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 3.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 3." 4.2
+.\}
+Upload the crate to the registry. Note that the server will perform
+additional checks on the crate.
+.RE
+.sp
+This command requires you to be authenticated with either the \fB\-\-token\fP option
+or using \fBcargo\-login\fP(1).
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/publishing.html" "the reference" " "
+for more details about
+packaging and publishing.
+.SH "OPTIONS"
+.SS "Publish Options"
+.sp
+\fB\-\-dry\-run\fP
+.RS 4
+Perform all checks without uploading.
+.RE
+.sp
+\fB\-\-token\fP \fITOKEN\fP
+.RS 4
+API token to use when authenticating. This overrides the token stored in
+the credentials file (which is created by \fBcargo\-login\fP(1)).
+.sp
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "Cargo config" " "
+environment variables can be
+used to override the tokens stored in the credentials file. The token for
+crates.io may be specified with the \fBCARGO_REGISTRY_TOKEN\fP environment
+variable. Tokens for other registries may be specified with environment
+variables of the form \fBCARGO_REGISTRIES_NAME_TOKEN\fP where \fBNAME\fP is the name
+of the registry in all capital letters.
+.RE
+.sp
+\fB\-\-no\-verify\fP
+.RS 4
+Don\(cqt verify the contents by building them.
+.RE
+.sp
+\fB\-\-allow\-dirty\fP
+.RS 4
+Allow working directories with uncommitted VCS changes to be packaged.
+.RE
+.sp
+\fB\-\-index\fP \fIINDEX\fP
+.RS 4
+The URL of the registry index to use.
+.RE
+.sp
+\fB\-\-registry\fP \fIREGISTRY\fP
+.RS 4
+Name of the registry to use. Registry names are defined in \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "Cargo config files" "."
+If not specified, the default registry is used, which is defined by the
+\fBregistry.default\fP config key which defaults to \fBcrates\-io\fP.
+.RE
+.SS "Compilation Options"
+.sp
+\fB\-\-target\fP \fITRIPLE\fP
+.RS 4
+Publish for the given architecture. The default is the host
+architecture. The general format of the triple is
+\fB<arch><sub>\-<vendor>\-<sys>\-<abi>\fP. Run \fBrustc \-\-print target\-list\fP for a
+list of supported targets.
+.sp
+This may also be specified with the \fBbuild.target\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-target\-dir\fP \fIDIRECTORY\fP
+.RS 4
+Directory for all generated artifacts and intermediate files. May also be
+specified with the \fBCARGO_TARGET_DIR\fP environment variable, or the
+\fBbuild.target\-dir\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults
+to \fBtarget\fP in the root of the workspace.
+.RE
+.SS "Feature Selection"
+.sp
+When no feature options are given, the \fBdefault\fP feature is activated for
+every selected package.
+.sp
+\fB\-\-features\fP \fIFEATURES\fP
+.RS 4
+Space or comma separated list of features to activate. These features only
+apply to the current directory\(cqs package. Features of direct dependencies
+may be enabled with \fB<dep\-name>/<feature\-name>\fP syntax.
+.RE
+.sp
+\fB\-\-all\-features\fP
+.RS 4
+Activate all available features of all selected packages.
+.RE
+.sp
+\fB\-\-no\-default\-features\fP
+.RS 4
+Do not activate the \fBdefault\fP feature of the current directory\(cqs
+package.
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.sp
+\fB\-\-offline\fP
+.RS 4
+Prevents Cargo from accessing the network for any reason. Without this
+flag, Cargo will stop with an error if it needs to access the network and
+the network is not available. With this flag, Cargo will attempt to
+proceed without the network if possible.
+.sp
+Beware that this may result in different dependency resolution than online
+mode. Cargo will restrict itself to crates that are downloaded locally, even
+if there might be a newer version as indicated in the local copy of the index.
+See the \fBcargo\-fetch\fP(1) command to download dependencies before going
+offline.
+.sp
+May also be specified with the \fBnet.offline\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Miscellaneous Options"
+.sp
+\fB\-j\fP \fIN\fP, \fB\-\-jobs\fP \fIN\fP
+.RS 4
+Number of parallel jobs to run. May also be specified with the
+\fBbuild.jobs\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults to
+the number of CPUs.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Publish the current package:
+.sp
+.if n .RS 4
+.nf
+cargo publish
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-package\fP(1), \fBcargo\-login\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-run.1 b/linux-x86/1.36.0/share/man/man1/cargo-run.1
new file mode 100644
index 0000000..bd5f1bf
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-run.1
@@ -0,0 +1,375 @@
+'\" t
+.\"     Title: cargo-run
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-05-08
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-RUN" "1" "2019-05-08" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-run \- Run the current package
+.SH "SYNOPSIS"
+.sp
+\fBcargo run [\fIOPTIONS\fP] [\-\- \fIARGS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+Run a binary or example of the local package.
+.sp
+All the arguments following the two dashes (\fB\-\-\fP) are passed to the binary to
+run. If you\(cqre passing arguments to both Cargo and the binary, the ones after
+\fB\-\-\fP go to the binary, the ones before go to Cargo.
+.SH "OPTIONS"
+.SS "Package Selection"
+.sp
+By default, the package in the current working directory is selected. The \fB\-p\fP
+flag can be used to choose a different package in a workspace.
+.sp
+\fB\-p\fP \fISPEC\fP, \fB\-\-package\fP \fISPEC\fP
+.RS 4
+The package to run. See \fBcargo\-pkgid\fP(1) for
+the SPEC format.
+.RE
+.SS "Target Selection"
+.sp
+When no target selection options are given, \fBcargo run\fP will run the binary
+target. If there are multiple binary targets, you must pass a target flag to
+choose one.
+.sp
+\fB\-\-bin\fP \fINAME\fP
+.RS 4
+Run the specified binary.
+.RE
+.sp
+\fB\-\-example\fP \fINAME\fP
+.RS 4
+Run the specified example.
+.RE
+.SS "Feature Selection"
+.sp
+When no feature options are given, the \fBdefault\fP feature is activated for
+every selected package.
+.sp
+\fB\-\-features\fP \fIFEATURES\fP
+.RS 4
+Space or comma separated list of features to activate. These features only
+apply to the current directory\(cqs package. Features of direct dependencies
+may be enabled with \fB<dep\-name>/<feature\-name>\fP syntax.
+.RE
+.sp
+\fB\-\-all\-features\fP
+.RS 4
+Activate all available features of all selected packages.
+.RE
+.sp
+\fB\-\-no\-default\-features\fP
+.RS 4
+Do not activate the \fBdefault\fP feature of the current directory\(cqs
+package.
+.RE
+.SS "Compilation Options"
+.sp
+\fB\-\-target\fP \fITRIPLE\fP
+.RS 4
+Run for the given architecture. The default is the host
+architecture. The general format of the triple is
+\fB<arch><sub>\-<vendor>\-<sys>\-<abi>\fP. Run \fBrustc \-\-print target\-list\fP for a
+list of supported targets.
+.sp
+This may also be specified with the \fBbuild.target\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-release\fP
+.RS 4
+Run optimized artifacts with the \fBrelease\fP profile. See the
+PROFILES section for details on how this affects profile selection.
+.RE
+.SS "Output Options"
+.sp
+\fB\-\-target\-dir\fP \fIDIRECTORY\fP
+.RS 4
+Directory for all generated artifacts and intermediate files. May also be
+specified with the \fBCARGO_TARGET_DIR\fP environment variable, or the
+\fBbuild.target\-dir\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults
+to \fBtarget\fP in the root of the workspace.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-message\-format\fP \fIFMT\fP
+.RS 4
+The output format for diagnostic messages. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBhuman\fP (default): Display in a human\-readable text format.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBjson\fP: Emit JSON messages to stdout.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBshort\fP: Emit shorter, human\-readable text messages.
+.RE
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.sp
+\fB\-\-offline\fP
+.RS 4
+Prevents Cargo from accessing the network for any reason. Without this
+flag, Cargo will stop with an error if it needs to access the network and
+the network is not available. With this flag, Cargo will attempt to
+proceed without the network if possible.
+.sp
+Beware that this may result in different dependency resolution than online
+mode. Cargo will restrict itself to crates that are downloaded locally, even
+if there might be a newer version as indicated in the local copy of the index.
+See the \fBcargo\-fetch\fP(1) command to download dependencies before going
+offline.
+.sp
+May also be specified with the \fBnet.offline\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SS "Miscellaneous Options"
+.sp
+\fB\-j\fP \fIN\fP, \fB\-\-jobs\fP \fIN\fP
+.RS 4
+Number of parallel jobs to run. May also be specified with the
+\fBbuild.jobs\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults to
+the number of CPUs.
+.RE
+.SH "PROFILES"
+.sp
+Profiles may be used to configure compiler options such as optimization levels
+and debug settings. See
+\c
+.URL "https://doc.rust\-lang.org/cargo/reference/manifest.html#the\-profile\-sections" "the reference"
+for more details.
+.sp
+Profile selection depends on the target and crate being built. By default the
+\fBdev\fP or \fBtest\fP profiles are used. If the \fB\-\-release\fP flag is given, then the
+\fBrelease\fP or \fBbench\fP profiles are used.
+.TS
+allbox tab(:);
+lt lt lt.
+T{
+.sp
+Target
+T}:T{
+.sp
+Default Profile
+T}:T{
+.sp
+\fB\-\-release\fP Profile
+T}
+T{
+.sp
+lib, bin, example
+T}:T{
+.sp
+\fBdev\fP
+T}:T{
+.sp
+\fBrelease\fP
+T}
+T{
+.sp
+test, bench, or any target
+.br
+in "test" or "bench" mode
+T}:T{
+.sp
+\fBtest\fP
+T}:T{
+.sp
+\fBbench\fP
+T}
+.TE
+.sp
+.sp
+Dependencies use the \fBdev\fP/\fBrelease\fP profiles.
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Build the local package and run its main target (assuming only one binary):
+.sp
+.if n .RS 4
+.nf
+cargo run
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 2." 4.2
+.\}
+Run an example with extra arguments:
+.sp
+.if n .RS 4
+.nf
+cargo run \-\-example exname \-\- \-\-exoption exarg1 exarg2
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-build\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-rustc.1 b/linux-x86/1.36.0/share/man/man1/cargo-rustc.1
new file mode 100644
index 0000000..f4cdd99
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-rustc.1
@@ -0,0 +1,446 @@
+'\" t
+.\"     Title: cargo-rustc
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-04-16
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-RUSTC" "1" "2019-04-16" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-rustc \- Compile the current package, and pass extra options to the compiler
+.SH "SYNOPSIS"
+.sp
+\fBcargo rustc [\fIOPTIONS\fP] [\-\- \fIARGS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+The specified target for the current package (or package specified by \fB\-p\fP if
+provided) will be compiled along with all of its dependencies. The specified
+\fIARGS\fP will all be passed to the final compiler invocation, not any of the
+dependencies. Note that the compiler will still unconditionally receive
+arguments such as \fB\-L\fP, \fB\-\-extern\fP, and \fB\-\-crate\-type\fP, and the specified
+\fIARGS\fP will simply be added to the compiler invocation.
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/rustc/index.html" "" " "
+for documentation on rustc
+flags.
+.sp
+This command requires that only one target is being compiled when additional
+arguments are provided. If more than one target is available for the current
+package the filters of \fB\-\-lib\fP, \fB\-\-bin\fP, etc, must be used to select which
+target is compiled.
+To pass flags to all compiler processes spawned by Cargo, use the \fBRUSTFLAGS\fP
+environment variable or the \fBbuild.rustflags\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.SH "OPTIONS"
+.SS "Package Selection"
+.sp
+By default, the package in the current working directory is selected. The \fB\-p\fP
+flag can be used to choose a different package in a workspace.
+.sp
+\fB\-p\fP \fISPEC\fP, \fB\-\-package\fP \fISPEC\fP
+.RS 4
+The package to build. See \fBcargo\-pkgid\fP(1) for
+the SPEC format.
+.RE
+.SS "Target Selection"
+.sp
+When no target selection options are given, \fBcargo rustc\fP will build all
+binary and library targets of the selected package.
+.sp
+Passing target selection flags will build only the
+specified targets.
+.sp
+\fB\-\-lib\fP
+.RS 4
+Build the package\(cqs library.
+.RE
+.sp
+\fB\-\-bin\fP \fINAME\fP...
+.RS 4
+Build the specified binary. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-bins\fP
+.RS 4
+Build all binary targets.
+.RE
+.sp
+\fB\-\-example\fP \fINAME\fP...
+.RS 4
+Build the specified example. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-examples\fP
+.RS 4
+Build all example targets.
+.RE
+.sp
+\fB\-\-test\fP \fINAME\fP...
+.RS 4
+Build the specified integration test. This flag may be specified multiple
+times.
+.RE
+.sp
+\fB\-\-tests\fP
+.RS 4
+Build all targets in test mode that have the \fBtest = true\fP manifest
+flag set. By default this includes the library and binaries built as
+unittests, and integration tests. Be aware that this will also build any
+required dependencies, so the lib target may be built twice (once as a
+unittest, and once as a dependency for binaries, integration tests, etc.).
+Targets may be enabled or disabled by setting the \fBtest\fP flag in the
+manifest settings for the target.
+.RE
+.sp
+\fB\-\-bench\fP \fINAME\fP...
+.RS 4
+Build the specified benchmark. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-benches\fP
+.RS 4
+Build all targets in benchmark mode that have the \fBbench = true\fP
+manifest flag set. By default this includes the library and binaries built
+as benchmarks, and bench targets. Be aware that this will also build any
+required dependencies, so the lib target may be built twice (once as a
+benchmark, and once as a dependency for binaries, benchmarks, etc.).
+Targets may be enabled or disabled by setting the \fBbench\fP flag in the
+manifest settings for the target.
+.RE
+.sp
+\fB\-\-all\-targets\fP
+.RS 4
+Build all targets. This is equivalent to specifying \fB\-\-lib \-\-bins
+\-\-tests \-\-benches \-\-examples\fP.
+.RE
+.SS "Feature Selection"
+.sp
+When no feature options are given, the \fBdefault\fP feature is activated for
+every selected package.
+.sp
+\fB\-\-features\fP \fIFEATURES\fP
+.RS 4
+Space or comma separated list of features to activate. These features only
+apply to the current directory\(cqs package. Features of direct dependencies
+may be enabled with \fB<dep\-name>/<feature\-name>\fP syntax.
+.RE
+.sp
+\fB\-\-all\-features\fP
+.RS 4
+Activate all available features of all selected packages.
+.RE
+.sp
+\fB\-\-no\-default\-features\fP
+.RS 4
+Do not activate the \fBdefault\fP feature of the current directory\(cqs
+package.
+.RE
+.SS "Compilation Options"
+.sp
+\fB\-\-target\fP \fITRIPLE\fP
+.RS 4
+Build for the given architecture. The default is the host
+architecture. The general format of the triple is
+\fB<arch><sub>\-<vendor>\-<sys>\-<abi>\fP. Run \fBrustc \-\-print target\-list\fP for a
+list of supported targets.
+.sp
+This may also be specified with the \fBbuild.target\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-release\fP
+.RS 4
+Build optimized artifacts with the \fBrelease\fP profile. See the
+PROFILES section for details on how this affects profile selection.
+.RE
+.SS "Output Options"
+.sp
+\fB\-\-target\-dir\fP \fIDIRECTORY\fP
+.RS 4
+Directory for all generated artifacts and intermediate files. May also be
+specified with the \fBCARGO_TARGET_DIR\fP environment variable, or the
+\fBbuild.target\-dir\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults
+to \fBtarget\fP in the root of the workspace.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-message\-format\fP \fIFMT\fP
+.RS 4
+The output format for diagnostic messages. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBhuman\fP (default): Display in a human\-readable text format.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBjson\fP: Emit JSON messages to stdout.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBshort\fP: Emit shorter, human\-readable text messages.
+.RE
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.sp
+\fB\-\-offline\fP
+.RS 4
+Prevents Cargo from accessing the network for any reason. Without this
+flag, Cargo will stop with an error if it needs to access the network and
+the network is not available. With this flag, Cargo will attempt to
+proceed without the network if possible.
+.sp
+Beware that this may result in different dependency resolution than online
+mode. Cargo will restrict itself to crates that are downloaded locally, even
+if there might be a newer version as indicated in the local copy of the index.
+See the \fBcargo\-fetch\fP(1) command to download dependencies before going
+offline.
+.sp
+May also be specified with the \fBnet.offline\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SS "Miscellaneous Options"
+.sp
+\fB\-j\fP \fIN\fP, \fB\-\-jobs\fP \fIN\fP
+.RS 4
+Number of parallel jobs to run. May also be specified with the
+\fBbuild.jobs\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults to
+the number of CPUs.
+.RE
+.SH "PROFILES"
+.sp
+Profiles may be used to configure compiler options such as optimization levels
+and debug settings. See
+\c
+.URL "https://doc.rust\-lang.org/cargo/reference/manifest.html#the\-profile\-sections" "the reference"
+for more details.
+.sp
+Profile selection depends on the target and crate being built. By default the
+\fBdev\fP or \fBtest\fP profiles are used. If the \fB\-\-release\fP flag is given, then the
+\fBrelease\fP or \fBbench\fP profiles are used.
+.TS
+allbox tab(:);
+lt lt lt.
+T{
+.sp
+Target
+T}:T{
+.sp
+Default Profile
+T}:T{
+.sp
+\fB\-\-release\fP Profile
+T}
+T{
+.sp
+lib, bin, example
+T}:T{
+.sp
+\fBdev\fP
+T}:T{
+.sp
+\fBrelease\fP
+T}
+T{
+.sp
+test, bench, or any target
+.br
+in "test" or "bench" mode
+T}:T{
+.sp
+\fBtest\fP
+T}:T{
+.sp
+\fBbench\fP
+T}
+.TE
+.sp
+.sp
+Dependencies use the \fBdev\fP/\fBrelease\fP profiles.
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Check if your package (not including dependencies) uses unsafe code:
+.sp
+.if n .RS 4
+.nf
+cargo rustc \-\-lib \-\- \-D unsafe\-code
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 2." 4.2
+.\}
+Try an experimental flag on the nightly compiler, such as this which prints
+the size of every type:
+.sp
+.if n .RS 4
+.nf
+cargo rustc \-\-lib \-\- \-Z print\-type\-sizes
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-build\fP(1), \fBrustc\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-rustdoc.1 b/linux-x86/1.36.0/share/man/man1/cargo-rustdoc.1
new file mode 100644
index 0000000..4e1cc36
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-rustdoc.1
@@ -0,0 +1,436 @@
+'\" t
+.\"     Title: cargo-rustdoc
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-04-16
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-RUSTDOC" "1" "2019-04-16" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-rustdoc \- Build a package\(aqs documentation, using specified custom flags
+.SH "SYNOPSIS"
+.sp
+\fBcargo rustdoc [\fIOPTIONS\fP] [\-\- \fIARGS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+The specified target for the current package (or package specified by \fB\-p\fP if
+provided) will be documented with the specified \fIARGS\fP being passed to the
+final rustdoc invocation. Dependencies will not be documented as part of this
+command. Note that rustdoc will still unconditionally receive arguments such
+as \fB\-L\fP, \fB\-\-extern\fP, and \fB\-\-crate\-type\fP, and the specified \fIARGS\fP will simply
+be added to the rustdoc invocation.
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/rustdoc/index.html" "" " "
+for documentation on rustdoc
+flags.
+.sp
+This command requires that only one target is being compiled when additional
+arguments are provided. If more than one target is available for the current
+package the filters of \fB\-\-lib\fP, \fB\-\-bin\fP, etc, must be used to select which
+target is compiled.
+To pass flags to all rustdoc processes spawned by Cargo, use the
+\fBRUSTDOCFLAGS\fP environment variable or the \fBbuild.rustdocflags\fP configuration
+option.
+.SH "OPTIONS"
+.SS "Documentation Options"
+.sp
+\fB\-\-open\fP
+.RS 4
+Open the docs in a browser after building them.
+.RE
+.SS "Package Selection"
+.sp
+By default, the package in the current working directory is selected. The \fB\-p\fP
+flag can be used to choose a different package in a workspace.
+.sp
+\fB\-p\fP \fISPEC\fP, \fB\-\-package\fP \fISPEC\fP
+.RS 4
+The package to document. See \fBcargo\-pkgid\fP(1) for
+the SPEC format.
+.RE
+.SS "Target Selection"
+.sp
+When no target selection options are given, \fBcargo rustdoc\fP will document all
+binary and library targets of the selected package. The binary will be skipped
+if its name is the same as the lib target. Binaries are skipped if they have
+\fBrequired\-features\fP that are missing.
+.sp
+Passing target selection flags will document only the
+specified targets.
+.sp
+\fB\-\-lib\fP
+.RS 4
+Document the package\(cqs library.
+.RE
+.sp
+\fB\-\-bin\fP \fINAME\fP...
+.RS 4
+Document the specified binary. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-bins\fP
+.RS 4
+Document all binary targets.
+.RE
+.sp
+\fB\-\-example\fP \fINAME\fP...
+.RS 4
+Document the specified example. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-examples\fP
+.RS 4
+Document all example targets.
+.RE
+.sp
+\fB\-\-test\fP \fINAME\fP...
+.RS 4
+Document the specified integration test. This flag may be specified multiple
+times.
+.RE
+.sp
+\fB\-\-tests\fP
+.RS 4
+Document all targets in test mode that have the \fBtest = true\fP manifest
+flag set. By default this includes the library and binaries built as
+unittests, and integration tests. Be aware that this will also build any
+required dependencies, so the lib target may be built twice (once as a
+unittest, and once as a dependency for binaries, integration tests, etc.).
+Targets may be enabled or disabled by setting the \fBtest\fP flag in the
+manifest settings for the target.
+.RE
+.sp
+\fB\-\-bench\fP \fINAME\fP...
+.RS 4
+Document the specified benchmark. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-benches\fP
+.RS 4
+Document all targets in benchmark mode that have the \fBbench = true\fP
+manifest flag set. By default this includes the library and binaries built
+as benchmarks, and bench targets. Be aware that this will also build any
+required dependencies, so the lib target may be built twice (once as a
+benchmark, and once as a dependency for binaries, benchmarks, etc.).
+Targets may be enabled or disabled by setting the \fBbench\fP flag in the
+manifest settings for the target.
+.RE
+.sp
+\fB\-\-all\-targets\fP
+.RS 4
+Document all targets. This is equivalent to specifying \fB\-\-lib \-\-bins
+\-\-tests \-\-benches \-\-examples\fP.
+.RE
+.SS "Feature Selection"
+.sp
+When no feature options are given, the \fBdefault\fP feature is activated for
+every selected package.
+.sp
+\fB\-\-features\fP \fIFEATURES\fP
+.RS 4
+Space or comma separated list of features to activate. These features only
+apply to the current directory\(cqs package. Features of direct dependencies
+may be enabled with \fB<dep\-name>/<feature\-name>\fP syntax.
+.RE
+.sp
+\fB\-\-all\-features\fP
+.RS 4
+Activate all available features of all selected packages.
+.RE
+.sp
+\fB\-\-no\-default\-features\fP
+.RS 4
+Do not activate the \fBdefault\fP feature of the current directory\(cqs
+package.
+.RE
+.SS "Compilation Options"
+.sp
+\fB\-\-target\fP \fITRIPLE\fP
+.RS 4
+Document for the given architecture. The default is the host
+architecture. The general format of the triple is
+\fB<arch><sub>\-<vendor>\-<sys>\-<abi>\fP. Run \fBrustc \-\-print target\-list\fP for a
+list of supported targets.
+.sp
+This may also be specified with the \fBbuild.target\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-release\fP
+.RS 4
+Document optimized artifacts with the \fBrelease\fP profile. See the
+PROFILES section for details on how this affects profile selection.
+.RE
+.SS "Output Options"
+.sp
+\fB\-\-target\-dir\fP \fIDIRECTORY\fP
+.RS 4
+Directory for all generated artifacts and intermediate files. May also be
+specified with the \fBCARGO_TARGET_DIR\fP environment variable, or the
+\fBbuild.target\-dir\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults
+to \fBtarget\fP in the root of the workspace.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-message\-format\fP \fIFMT\fP
+.RS 4
+The output format for diagnostic messages. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBhuman\fP (default): Display in a human\-readable text format.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBjson\fP: Emit JSON messages to stdout.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBshort\fP: Emit shorter, human\-readable text messages.
+.RE
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.sp
+\fB\-\-offline\fP
+.RS 4
+Prevents Cargo from accessing the network for any reason. Without this
+flag, Cargo will stop with an error if it needs to access the network and
+the network is not available. With this flag, Cargo will attempt to
+proceed without the network if possible.
+.sp
+Beware that this may result in different dependency resolution than online
+mode. Cargo will restrict itself to crates that are downloaded locally, even
+if there might be a newer version as indicated in the local copy of the index.
+See the \fBcargo\-fetch\fP(1) command to download dependencies before going
+offline.
+.sp
+May also be specified with the \fBnet.offline\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SS "Miscellaneous Options"
+.sp
+\fB\-j\fP \fIN\fP, \fB\-\-jobs\fP \fIN\fP
+.RS 4
+Number of parallel jobs to run. May also be specified with the
+\fBbuild.jobs\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults to
+the number of CPUs.
+.RE
+.SH "PROFILES"
+.sp
+Profiles may be used to configure compiler options such as optimization levels
+and debug settings. See
+\c
+.URL "https://doc.rust\-lang.org/cargo/reference/manifest.html#the\-profile\-sections" "the reference"
+for more details.
+.sp
+Profile selection depends on the target and crate being built. By default the
+\fBdev\fP or \fBtest\fP profiles are used. If the \fB\-\-release\fP flag is given, then the
+\fBrelease\fP or \fBbench\fP profiles are used.
+.TS
+allbox tab(:);
+lt lt lt.
+T{
+.sp
+Target
+T}:T{
+.sp
+Default Profile
+T}:T{
+.sp
+\fB\-\-release\fP Profile
+T}
+T{
+.sp
+lib, bin, example
+T}:T{
+.sp
+\fBdev\fP
+T}:T{
+.sp
+\fBrelease\fP
+T}
+T{
+.sp
+test, bench, or any target
+.br
+in "test" or "bench" mode
+T}:T{
+.sp
+\fBtest\fP
+T}:T{
+.sp
+\fBbench\fP
+T}
+.TE
+.sp
+.sp
+Dependencies use the \fBdev\fP/\fBrelease\fP profiles.
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Build documentation with custom CSS included from a given file:
+.sp
+.if n .RS 4
+.nf
+cargo rustdoc \-\-lib \-\- \-\-extend\-css extra.css
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-doc\fP(1), \fBrustdoc\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-search.1 b/linux-x86/1.36.0/share/man/man1/cargo-search.1
new file mode 100644
index 0000000..a789ac6
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-search.1
@@ -0,0 +1,167 @@
+'\" t
+.\"     Title: cargo-search
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-01-23
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-SEARCH" "1" "2019-01-23" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-search \- Search packages in crates.io
+.SH "SYNOPSIS"
+.sp
+\fBcargo search [\fIOPTIONS\fP] [\fIQUERY\fP...]\fP
+.SH "DESCRIPTION"
+.sp
+This performs a textual search for crates on \c
+.URL "https://crates.io" "" "."
+The matching
+crates will be displayed along with their description in TOML format suitable
+for copying into a \fBCargo.toml\fP manifest.
+.SH "OPTIONS"
+.SS "Search Options"
+.sp
+\fB\-\-limit\fP \fILIMIT\fP
+.RS 4
+Limit the number of results (default: 10, max: 100).
+.RE
+.sp
+\fB\-\-index\fP \fIINDEX\fP
+.RS 4
+The URL of the registry index to use.
+.RE
+.sp
+\fB\-\-registry\fP \fIREGISTRY\fP
+.RS 4
+Name of the registry to use. Registry names are defined in \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "Cargo config files" "."
+If not specified, the default registry is used, which is defined by the
+\fBregistry.default\fP config key which defaults to \fBcrates\-io\fP.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Search for a package from crates.io:
+.sp
+.if n .RS 4
+.nf
+cargo search serde
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-install\fP(1), \fBcargo\-publish\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-test.1 b/linux-x86/1.36.0/share/man/man1/cargo-test.1
new file mode 100644
index 0000000..c856952
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-test.1
@@ -0,0 +1,607 @@
+'\" t
+.\"     Title: cargo-test
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-05-08
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-TEST" "1" "2019-05-08" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-test \- Execute unit and integration tests of a package
+.SH "SYNOPSIS"
+.sp
+\fBcargo test [\fIOPTIONS\fP] [TESTNAME] [\-\- \fITEST\-OPTIONS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+Compile and execute unit and integration tests.
+.sp
+The test filtering argument \fBTESTNAME\fP and all the arguments following the two
+dashes (\fB\-\-\fP) are passed to the test binaries and thus to \fIlibtest\fP (rustc\(cqs
+built in unit\-test and micro\-benchmarking framework).  If you\(cqre passing
+arguments to both Cargo and the binary, the ones after \fB\-\-\fP go to the binary,
+the ones before go to Cargo.  For details about libtest\(cqs arguments see the
+output of \fBcargo test \(em \-\-help\fP.  As an example, this will run all tests with
+\fBfoo\fP in their name on 3 threads in parallel:
+.sp
+.if n .RS 4
+.nf
+cargo test foo \-\- \-\-test\-threads 3
+.fi
+.if n .RE
+.sp
+Tests are built with the \fB\-\-test\fP option to \fBrustc\fP which creates an
+executable with a \fBmain\fP function that automatically runs all functions
+annotated with the \fB#[test]\fP attribute in multiple threads. \fB#[bench]\fP
+annotated functions will also be run with one iteration to verify that they
+are functional.
+.sp
+The libtest harness may be disabled by setting \fBharness = false\fP in the target
+manifest settings, in which case your code will need to provide its own \fBmain\fP
+function to handle running tests.
+.sp
+Documentation tests are also run by default, which is handled by \fBrustdoc\fP. It
+extracts code samples from documentation comments and executes them. See the
+.URL "https://doc.rust\-lang.org/rustdoc/" "rustdoc book" " "
+for more information on
+writing doc tests.
+.SH "OPTIONS"
+.SS "Test Options"
+.sp
+\fB\-\-no\-run\fP
+.RS 4
+Compile, but don\(cqt run tests.
+.RE
+.sp
+\fB\-\-no\-fail\-fast\fP
+.RS 4
+Run all tests regardless of failure. Without this flag, Cargo will exit
+after the first executable fails. The Rust test harness will run all
+tests within the executable to completion, this flag only applies to
+the executable as a whole.
+.RE
+.SS "Package Selection"
+.sp
+By default, when no package selection options are given, the packages selected
+depend on the current working directory. In the root of a virtual workspace,
+all workspace members are selected (\fB\-\-all\fP is implied). Otherwise, only the
+package in the current directory will be selected. The default packages may be
+overridden with the \fBworkspace.default\-members\fP key in the root \fBCargo.toml\fP
+manifest.
+.sp
+\fB\-p\fP \fISPEC\fP..., \fB\-\-package\fP \fISPEC\fP...
+.RS 4
+Test only the specified packages. See \fBcargo\-pkgid\fP(1) for the
+SPEC format. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-all\fP
+.RS 4
+Test all members in the workspace.
+.RE
+.sp
+\fB\-\-exclude\fP \fISPEC\fP...
+.RS 4
+Exclude the specified packages. Must be used in conjunction with the
+\fB\-\-all\fP flag. This flag may be specified multiple times.
+.RE
+.SS "Target Selection"
+.sp
+When no target selection options are given, \fBcargo test\fP will build the
+following targets of the selected packages:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+lib — used to link with binaries, examples, integration tests, and doc tests
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+bins (only if integration tests are built and required features are
+available)
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+examples — to ensure they compile
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+lib as a unit test
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+bins as unit tests
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+integration tests
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+doc tests for the lib target
+.RE
+.sp
+The default behavior can be changed by setting the \fBtest\fP flag for the target
+in the manifest settings. Setting examples to \fBtest = true\fP will build and run
+the example as a test. Setting targets to \fBtest = false\fP will stop them from
+being tested by default. Target selection options that take a target by name
+ignore the \fBtest\fP flag and will always test the given target.
+.sp
+Doc tests for libraries may be disabled by setting \fBdoctest = false\fP for the
+library in the manifest.
+.sp
+Passing target selection flags will test only the
+specified targets.
+.sp
+\fB\-\-lib\fP
+.RS 4
+Test the package\(cqs library.
+.RE
+.sp
+\fB\-\-bin\fP \fINAME\fP...
+.RS 4
+Test the specified binary. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-bins\fP
+.RS 4
+Test all binary targets.
+.RE
+.sp
+\fB\-\-example\fP \fINAME\fP...
+.RS 4
+Test the specified example. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-examples\fP
+.RS 4
+Test all example targets.
+.RE
+.sp
+\fB\-\-test\fP \fINAME\fP...
+.RS 4
+Test the specified integration test. This flag may be specified multiple
+times.
+.RE
+.sp
+\fB\-\-tests\fP
+.RS 4
+Test all targets in test mode that have the \fBtest = true\fP manifest
+flag set. By default this includes the library and binaries built as
+unittests, and integration tests. Be aware that this will also build any
+required dependencies, so the lib target may be built twice (once as a
+unittest, and once as a dependency for binaries, integration tests, etc.).
+Targets may be enabled or disabled by setting the \fBtest\fP flag in the
+manifest settings for the target.
+.RE
+.sp
+\fB\-\-bench\fP \fINAME\fP...
+.RS 4
+Test the specified benchmark. This flag may be specified multiple times.
+.RE
+.sp
+\fB\-\-benches\fP
+.RS 4
+Test all targets in benchmark mode that have the \fBbench = true\fP
+manifest flag set. By default this includes the library and binaries built
+as benchmarks, and bench targets. Be aware that this will also build any
+required dependencies, so the lib target may be built twice (once as a
+benchmark, and once as a dependency for binaries, benchmarks, etc.).
+Targets may be enabled or disabled by setting the \fBbench\fP flag in the
+manifest settings for the target.
+.RE
+.sp
+\fB\-\-all\-targets\fP
+.RS 4
+Test all targets. This is equivalent to specifying \fB\-\-lib \-\-bins
+\-\-tests \-\-benches \-\-examples\fP.
+.RE
+.sp
+\fB\-\-doc\fP
+.RS 4
+Test only the library\(cqs documentation. This cannot be mixed with other
+target options.
+.RE
+.SS "Feature Selection"
+.sp
+When no feature options are given, the \fBdefault\fP feature is activated for
+every selected package.
+.sp
+\fB\-\-features\fP \fIFEATURES\fP
+.RS 4
+Space or comma separated list of features to activate. These features only
+apply to the current directory\(cqs package. Features of direct dependencies
+may be enabled with \fB<dep\-name>/<feature\-name>\fP syntax.
+.RE
+.sp
+\fB\-\-all\-features\fP
+.RS 4
+Activate all available features of all selected packages.
+.RE
+.sp
+\fB\-\-no\-default\-features\fP
+.RS 4
+Do not activate the \fBdefault\fP feature of the current directory\(cqs
+package.
+.RE
+.SS "Compilation Options"
+.sp
+\fB\-\-target\fP \fITRIPLE\fP
+.RS 4
+Test for the given architecture. The default is the host
+architecture. The general format of the triple is
+\fB<arch><sub>\-<vendor>\-<sys>\-<abi>\fP. Run \fBrustc \-\-print target\-list\fP for a
+list of supported targets.
+.sp
+This may also be specified with the \fBbuild.target\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-release\fP
+.RS 4
+Test optimized artifacts with the \fBrelease\fP profile. See the
+PROFILES section for details on how this affects profile selection.
+.RE
+.SS "Output Options"
+.sp
+\fB\-\-target\-dir\fP \fIDIRECTORY\fP
+.RS 4
+Directory for all generated artifacts and intermediate files. May also be
+specified with the \fBCARGO_TARGET_DIR\fP environment variable, or the
+\fBbuild.target\-dir\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults
+to \fBtarget\fP in the root of the workspace.
+.RE
+.SS "Display Options"
+.sp
+By default the Rust test harness hides output from test execution to keep
+results readable. Test output can be recovered (e.g., for debugging) by passing
+\fB\-\-nocapture\fP to the test binaries:
+.sp
+.if n .RS 4
+.nf
+cargo test \-\- \-\-nocapture
+.fi
+.if n .RE
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-\-message\-format\fP \fIFMT\fP
+.RS 4
+The output format for diagnostic messages. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBhuman\fP (default): Display in a human\-readable text format.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBjson\fP: Emit JSON messages to stdout.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBshort\fP: Emit shorter, human\-readable text messages.
+.RE
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.sp
+\fB\-\-offline\fP
+.RS 4
+Prevents Cargo from accessing the network for any reason. Without this
+flag, Cargo will stop with an error if it needs to access the network and
+the network is not available. With this flag, Cargo will attempt to
+proceed without the network if possible.
+.sp
+Beware that this may result in different dependency resolution than online
+mode. Cargo will restrict itself to crates that are downloaded locally, even
+if there might be a newer version as indicated in the local copy of the index.
+See the \fBcargo\-fetch\fP(1) command to download dependencies before going
+offline.
+.sp
+May also be specified with the \fBnet.offline\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SS "Miscellaneous Options"
+.sp
+The \fB\-\-jobs\fP argument affects the building of the test executable but does not
+affect how many threads are used when running the tests. The Rust test harness
+includes an option to control the number of threads used:
+.sp
+.if n .RS 4
+.nf
+cargo test \-j 2 \-\- \-\-test\-threads=2
+.fi
+.if n .RE
+.sp
+\fB\-j\fP \fIN\fP, \fB\-\-jobs\fP \fIN\fP
+.RS 4
+Number of parallel jobs to run. May also be specified with the
+\fBbuild.jobs\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+Defaults to
+the number of CPUs.
+.RE
+.SH "PROFILES"
+.sp
+Profiles may be used to configure compiler options such as optimization levels
+and debug settings. See
+\c
+.URL "https://doc.rust\-lang.org/cargo/reference/manifest.html#the\-profile\-sections" "the reference"
+for more details.
+.sp
+Profile selection depends on the target and crate being built. By default the
+\fBdev\fP or \fBtest\fP profiles are used. If the \fB\-\-release\fP flag is given, then the
+\fBrelease\fP or \fBbench\fP profiles are used.
+.TS
+allbox tab(:);
+lt lt lt.
+T{
+.sp
+Target
+T}:T{
+.sp
+Default Profile
+T}:T{
+.sp
+\fB\-\-release\fP Profile
+T}
+T{
+.sp
+lib, bin, example
+T}:T{
+.sp
+\fBdev\fP
+T}:T{
+.sp
+\fBrelease\fP
+T}
+T{
+.sp
+test, bench, or any target
+.br
+in "test" or "bench" mode
+T}:T{
+.sp
+\fBtest\fP
+T}:T{
+.sp
+\fBbench\fP
+T}
+.TE
+.sp
+.sp
+Dependencies use the \fBdev\fP/\fBrelease\fP profiles.
+.sp
+Unit tests are separate executable artifacts which use the \fBtest\fP/\fBbench\fP
+profiles. Example targets are built the same as with \fBcargo build\fP (using the
+\fBdev\fP/\fBrelease\fP profiles) unless you are building them with the test harness
+(by setting \fBtest = true\fP in the manifest or using the \fB\-\-example\fP flag) in
+which case they use the \fBtest\fP/\fBbench\fP profiles. Library targets are built
+with the \fBdev\fP/\fBrelease\fP profiles when linked to an integration test, binary,
+or doctest.
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Execute all the unit and integration tests of the current package:
+.sp
+.if n .RS 4
+.nf
+cargo test
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 2." 4.2
+.\}
+Run only a specific test within a specific integration test:
+.sp
+.if n .RS 4
+.nf
+cargo test \-\-test int_test_name \-\- modname::test_name
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-bench\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-uninstall.1 b/linux-x86/1.36.0/share/man/man1/cargo-uninstall.1
new file mode 100644
index 0000000..36ea8a8
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-uninstall.1
@@ -0,0 +1,223 @@
+'\" t
+.\"     Title: cargo-uninstall
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2018-12-20
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-UNINSTALL" "1" "2018-12-20" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-uninstall \- Remove a Rust binary
+.SH "SYNOPSIS"
+.sp
+\fBcargo uninstall [\fIOPTIONS\fP] [\fISPEC\fP...]\fP
+.SH "DESCRIPTION"
+.sp
+This command removes a package installed with \fBcargo\-install\fP(1). The \fISPEC\fP
+argument is a package ID specification of the package to remove (see
+\fBcargo\-pkgid\fP(1)).
+.sp
+By default all binaries are removed for a crate but the \fB\-\-bin\fP and
+\fB\-\-example\fP flags can be used to only remove particular binaries.
+.sp
+The installation root is determined, in order of precedence:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fB\-\-root\fP option
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBCARGO_INSTALL_ROOT\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBinstall.root\fP Cargo \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" ""
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBCARGO_HOME\fP environment variable
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fB$HOME/.cargo\fP
+.RE
+.SH "OPTIONS"
+.SS "Install Options"
+.sp
+\fB\-p\fP, \fB\-\-package\fP \fISPEC\fP...
+.RS 4
+Package to uninstall.
+.RE
+.sp
+\fB\-\-bin\fP \fINAME\fP...
+.RS 4
+Only uninstall the binary \fINAME\fP.
+.RE
+.sp
+\fB\-\-root\fP \fIDIR\fP
+.RS 4
+Directory to uninstall packages from.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Uninstall a previously installed package.
+.sp
+.if n .RS 4
+.nf
+cargo uninstall ripgrep
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-install\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-update.1 b/linux-x86/1.36.0/share/man/man1/cargo-update.1
new file mode 100644
index 0000000..835e6c3
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-update.1
@@ -0,0 +1,249 @@
+'\" t
+.\"     Title: cargo-update
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-04-16
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-UPDATE" "1" "2019-04-16" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-update \- Update dependencies as recorded in the local lock file
+.SH "SYNOPSIS"
+.sp
+\fBcargo update [\fIOPTIONS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+This command will update dependencies in the \fBCargo.lock\fP file to the latest
+version. It requires that the \fBCargo.lock\fP file already exists as generated
+by commands such as \fBcargo\-build\fP(1) or \fBcargo\-generate\-lockfile\fP(1).
+.SH "OPTIONS"
+.SS "Update Options"
+.sp
+\fB\-p\fP \fISPEC\fP..., \fB\-\-package\fP \fISPEC\fP...
+.RS 4
+Update only the specified packages. This flag may be specified
+multiple times. See \fBcargo\-pkgid\fP(1) for the SPEC format.
+.sp
+If packages are specified with the \fB\-p\fP flag, then a conservative update of
+the lockfile will be performed. This means that only the dependency specified
+by SPEC will be updated. Its transitive dependencies will be updated only if
+SPEC cannot be updated without updating dependencies.  All other dependencies
+will remain locked at their currently recorded versions.
+.sp
+If \fB\-p\fP is not specified, all dependencies are updated.
+.RE
+.sp
+\fB\-\-aggressive\fP
+.RS 4
+When used with \fB\-p\fP, dependencies of \fISPEC\fP are forced to update as well.
+Cannot be used with \fB\-\-precise\fP.
+.RE
+.sp
+\fB\-\-precise\fP \fIPRECISE\fP
+.RS 4
+When used with \fB\-p\fP, allows you to specify a specific version number to
+set the package to. If the package comes from a git repository, this can
+be a git revision (such as a SHA hash or tag).
+.RE
+.sp
+\fB\-\-dry\-run\fP
+.RS 4
+Displays what would be updated, but doesn\(cqt actually write the lockfile.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.sp
+\fB\-\-offline\fP
+.RS 4
+Prevents Cargo from accessing the network for any reason. Without this
+flag, Cargo will stop with an error if it needs to access the network and
+the network is not available. With this flag, Cargo will attempt to
+proceed without the network if possible.
+.sp
+Beware that this may result in different dependency resolution than online
+mode. Cargo will restrict itself to crates that are downloaded locally, even
+if there might be a newer version as indicated in the local copy of the index.
+See the \fBcargo\-fetch\fP(1) command to download dependencies before going
+offline.
+.sp
+May also be specified with the \fBnet.offline\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Update all dependencies in the lockfile:
+.sp
+.if n .RS 4
+.nf
+cargo update
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 2." 4.2
+.\}
+Update only specific dependencies:
+.sp
+.if n .RS 4
+.nf
+cargo update \-p foo \-p bar
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 3.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 3." 4.2
+.\}
+Set a specific dependency to a specific version:
+.sp
+.if n .RS 4
+.nf
+cargo update \-p foo \-\-precise 1.2.3
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-generate\-lockfile\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-verify-project.1 b/linux-x86/1.36.0/share/man/man1/cargo-verify-project.1
new file mode 100644
index 0000000..a395013
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-verify-project.1
@@ -0,0 +1,195 @@
+'\" t
+.\"     Title: cargo-verify-project
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-04-16
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-VERIFY\-PROJECT" "1" "2019-04-16" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-verify\-project \- Check correctness of crate manifest
+.SH "SYNOPSIS"
+.sp
+\fBcargo verify\-project [\fIOPTIONS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+This command will parse the local manifest and check its validity. It emits a
+JSON object with the result. A successful validation will display:
+.sp
+.if n .RS 4
+.nf
+{"success":"true"}
+.fi
+.if n .RE
+.sp
+An invalid workspace will display:
+.sp
+.if n .RS 4
+.nf
+{"invalid":"human\-readable error message"}
+.fi
+.if n .RE
+.SH "OPTIONS"
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-manifest\-path\fP \fIPATH\fP
+.RS 4
+Path to the \fBCargo.toml\fP file. By default, Cargo searches in the current
+directory or any parent directory for the \fBCargo.toml\fP file.
+.RE
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.sp
+\fB\-\-offline\fP
+.RS 4
+Prevents Cargo from accessing the network for any reason. Without this
+flag, Cargo will stop with an error if it needs to access the network and
+the network is not available. With this flag, Cargo will attempt to
+proceed without the network if possible.
+.sp
+Beware that this may result in different dependency resolution than online
+mode. Cargo will restrict itself to crates that are downloaded locally, even
+if there might be a newer version as indicated in the local copy of the index.
+See the \fBcargo\-fetch\fP(1) command to download dependencies before going
+offline.
+.sp
+May also be specified with the \fBnet.offline\fP \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+The workspace is OK.
+.RE
+.sp
+1
+.RS 4
+The workspace is invalid.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Check the current workspace for errors:
+.sp
+.if n .RS 4
+.nf
+cargo verify\-project
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-package\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-version.1 b/linux-x86/1.36.0/share/man/man1/cargo-version.1
new file mode 100644
index 0000000..4527d14
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-version.1
@@ -0,0 +1,99 @@
+'\" t
+.\"     Title: cargo-version
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2018-12-20
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-VERSION" "1" "2018-12-20" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-version \- Show version information
+.SH "SYNOPSIS"
+.sp
+\fBcargo version [\fIOPTIONS\fP]\fP
+.SH "DESCRIPTION"
+.sp
+Displays the version of Cargo.
+.SH "OPTIONS"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Display additional version information.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Display the version:
+.sp
+.if n .RS 4
+.nf
+cargo version
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 2." 4.2
+.\}
+The version is also available via flags:
+.sp
+.if n .RS 4
+.nf
+cargo \-\-version
+cargo \-V
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 3.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 3." 4.2
+.\}
+Display extra version information:
+.sp
+.if n .RS 4
+.nf
+cargo \-Vv
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo-yank.1 b/linux-x86/1.36.0/share/man/man1/cargo-yank.1
new file mode 100644
index 0000000..c3a637c
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo-yank.1
@@ -0,0 +1,194 @@
+'\" t
+.\"     Title: cargo-yank
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-01-23
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO\-YANK" "1" "2019-01-23" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo\-yank \- Remove a pushed crate from the index
+.SH "SYNOPSIS"
+.sp
+\fBcargo yank [\fIOPTIONS\fP] \-\-vers \fIVERSION\fP [\fICRATE\fP]\fP
+.SH "DESCRIPTION"
+.sp
+The yank command removes a previously published crate\(cqs version from the
+server\(cqs index. This command does not delete any data, and the crate will
+still be available for download via the registry\(cqs download link.
+.sp
+Note that existing crates locked to a yanked version will still be able to
+download the yanked version to use it. Cargo will, however, not allow any new
+crates to be locked to any yanked version.
+.sp
+This command requires you to be authenticated with either the \fB\-\-token\fP option
+or using \fBcargo\-login\fP(1).
+.sp
+If the crate name is not specified, it will use the package name from the
+current directory.
+.SH "OPTIONS"
+.SS "Owner Options"
+.sp
+\fB\-\-vers\fP \fIVERSION\fP
+.RS 4
+The version to yank or un\-yank.
+.RE
+.sp
+\fB\-\-undo\fP
+.RS 4
+Undo a yank, putting a version back into the index.
+.RE
+.sp
+\fB\-\-token\fP \fITOKEN\fP
+.RS 4
+API token to use when authenticating. This overrides the token stored in
+the credentials file (which is created by \fBcargo\-login\fP(1)).
+.sp
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "Cargo config" " "
+environment variables can be
+used to override the tokens stored in the credentials file. The token for
+crates.io may be specified with the \fBCARGO_REGISTRY_TOKEN\fP environment
+variable. Tokens for other registries may be specified with environment
+variables of the form \fBCARGO_REGISTRIES_NAME_TOKEN\fP where \fBNAME\fP is the name
+of the registry in all capital letters.
+.RE
+.sp
+\fB\-\-index\fP \fIINDEX\fP
+.RS 4
+The URL of the registry index to use.
+.RE
+.sp
+\fB\-\-registry\fP \fIREGISTRY\fP
+.RS 4
+Name of the registry to use. Registry names are defined in \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "Cargo config files" "."
+If not specified, the default registry is used, which is defined by the
+\fBregistry.default\fP config key which defaults to \fBcrates\-io\fP.
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Yank a crate from the index:
+.sp
+.if n .RS 4
+.nf
+cargo yank \-\-vers 1.0.7 foo
+.fi
+.if n .RE
+.RE
+.SH "SEE ALSO"
+.sp
+\fBcargo\fP(1), \fBcargo\-login\fP(1), \fBcargo\-publish\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/cargo.1 b/linux-x86/1.36.0/share/man/man1/cargo.1
new file mode 100644
index 0000000..4927f46
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/cargo.1
@@ -0,0 +1,473 @@
+'\" t
+.\"     Title: cargo
+.\"    Author: [see the "AUTHOR(S)" section]
+.\" Generator: Asciidoctor 1.5.8
+.\"      Date: 2019-02-05
+.\"    Manual: \ \&
+.\"    Source: \ \&
+.\"  Language: English
+.\"
+.TH "CARGO" "1" "2019-02-05" "\ \&" "\ \&"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.ss \n[.ss] 0
+.nh
+.ad l
+.de URL
+\fI\\$2\fP <\\$1>\\$3
+..
+.als MTO URL
+.if \n[.g] \{\
+.  mso www.tmac
+.  am URL
+.    ad l
+.  .
+.  am MTO
+.    ad l
+.  .
+.  LINKSTYLE blue R < >
+.\}
+.SH "NAME"
+cargo \- The Rust package manager
+.SH "SYNOPSIS"
+.sp
+\fBcargo [\fIOPTIONS\fP] \fICOMMAND\fP [\fIARGS\fP]\fP
+.br
+\fBcargo [\fIOPTIONS\fP] \-\-version\fP
+.br
+\fBcargo [\fIOPTIONS\fP] \-\-list\fP
+.br
+\fBcargo [\fIOPTIONS\fP] \-\-help\fP
+.br
+\fBcargo [\fIOPTIONS\fP] \-\-explain \fICODE\fP\fP
+.SH "DESCRIPTION"
+.sp
+This program is a package manager and build tool for the Rust language,
+available at \c
+.URL "https://rust\-lang.org" "" "."
+.SH "COMMANDS"
+.SS "Build Commands"
+.sp
+\fBcargo\-bench\fP(1)
+.RS 4
+Execute benchmarks of a package.
+.RE
+.sp
+\fBcargo\-build\fP(1)
+.RS 4
+Compile a package.
+.RE
+.sp
+\fBcargo\-check\fP(1)
+.RS 4
+Check a local package and all of its dependencies for errors.
+.RE
+.sp
+\fBcargo\-clean\fP(1)
+.RS 4
+Remove artifacts that Cargo has generated in the past.
+.RE
+.sp
+\fBcargo\-doc\fP(1)
+.RS 4
+Build a package\(cqs documentation.
+.RE
+.sp
+\fBcargo\-fetch\fP(1)
+.RS 4
+Fetch dependencies of a package from the network.
+.RE
+.sp
+\fBcargo\-fix\fP(1)
+.RS 4
+Automatically fix lint warnings reported by rustc.
+.RE
+.sp
+\fBcargo\-run\fP(1)
+.RS 4
+Run a binary or example of the local package.
+.RE
+.sp
+\fBcargo\-rustc\fP(1)
+.RS 4
+Compile a package, and pass extra options to the compiler.
+.RE
+.sp
+\fBcargo\-rustdoc\fP(1)
+.RS 4
+Build a package\(cqs documentation, using specified custom flags.
+.RE
+.sp
+\fBcargo\-test\fP(1)
+.RS 4
+Execute unit and integration tests of a package.
+.RE
+.SS "Manifest Commands"
+.sp
+\fBcargo\-generate\-lockfile\fP(1)
+.RS 4
+Generate \fBCargo.lock\fP for a project.
+.RE
+.sp
+\fBcargo\-locate\-project\fP(1)
+.RS 4
+Print a JSON representation of a \fBCargo.toml\fP file\(cqs location.
+.RE
+.sp
+\fBcargo\-metadata\fP(1)
+.RS 4
+Output the resolved dependencies of a package, the concrete used versions
+including overrides, in machine\-readable format.
+.RE
+.sp
+\fBcargo\-pkgid\fP(1)
+.RS 4
+Print a fully qualified package specification.
+.RE
+.sp
+\fBcargo\-update\fP(1)
+.RS 4
+Update dependencies as recorded in the local lock file.
+.RE
+.sp
+\fBcargo\-verify\-project\fP(1)
+.RS 4
+Check correctness of crate manifest.
+.RE
+.SS "Package Commands"
+.sp
+\fBcargo\-init\fP(1)
+.RS 4
+Create a new Cargo package in an existing directory.
+.RE
+.sp
+\fBcargo\-install\fP(1)
+.RS 4
+Build and install a Rust binary.
+.RE
+.sp
+\fBcargo\-new\fP(1)
+.RS 4
+Create a new Cargo package.
+.RE
+.sp
+\fBcargo\-search\fP(1)
+.RS 4
+Search packages in crates.io.
+.RE
+.sp
+\fBcargo\-uninstall\fP(1)
+.RS 4
+Remove a Rust binary.
+.RE
+.SS "Publishing Commands"
+.sp
+\fBcargo\-login\fP(1)
+.RS 4
+Save an API token from the registry locally.
+.RE
+.sp
+\fBcargo\-owner\fP(1)
+.RS 4
+Manage the owners of a crate on the registry.
+.RE
+.sp
+\fBcargo\-package\fP(1)
+.RS 4
+Assemble the local package into a distributable tarball.
+.RE
+.sp
+\fBcargo\-publish\fP(1)
+.RS 4
+Upload a package to the registry.
+.RE
+.sp
+\fBcargo\-yank\fP(1)
+.RS 4
+Remove a pushed crate from the index.
+.RE
+.SS "General Commands"
+.sp
+\fBcargo\-help\fP(1)
+.RS 4
+Display help information about Cargo.
+.RE
+.sp
+\fBcargo\-version\fP(1)
+.RS 4
+Show version information.
+.RE
+.SH "OPTIONS"
+.SS "Special Options"
+.sp
+\fB\-V\fP, \fB\-\-version\fP
+.RS 4
+Print version info and exit. If used with \fB\-\-verbose\fP, prints extra
+information.
+.RE
+.sp
+\fB\-\-list\fP
+.RS 4
+List all installed Cargo subcommands. If used with \fB\-\-verbose\fP, prints
+extra information.
+.RE
+.sp
+\fB\-\-explain \fICODE\fP\fP
+.RS 4
+Run \fBrustc \-\-explain CODE\fP which will print out a detailed explanation of
+an error message (for example, \fBE0004\fP).
+.RE
+.SS "Display Options"
+.sp
+\fB\-v\fP, \fB\-\-verbose\fP
+.RS 4
+Use verbose output. May be specified twice for "very verbose" output which
+includes extra output such as dependency warnings and build script output.
+May also be specified with the \fBterm.verbose\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.sp
+\fB\-q\fP, \fB\-\-quiet\fP
+.RS 4
+No output printed to stdout.
+.RE
+.sp
+\fB\-\-color\fP \fIWHEN\fP
+.RS 4
+Control when colored output is used. Valid values:
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBauto\fP (default): Automatically detect if color support is available on the
+terminal.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBalways\fP: Always display colors.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.  sp -1
+.  IP \(bu 2.3
+.\}
+\fBnever\fP: Never display colors.
+.RE
+.sp
+May also be specified with the \fBterm.color\fP
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "config value" "."
+.RE
+.SS "Manifest Options"
+.sp
+\fB\-\-frozen\fP, \fB\-\-locked\fP
+.RS 4
+Either of these flags requires that the \fBCargo.lock\fP file is
+up\-to\-date. If the lock file is missing, or it needs to be updated, Cargo will
+exit with an error. The \fB\-\-frozen\fP flag also prevents Cargo from
+attempting to access the network to determine if it is out\-of\-date.
+.sp
+These may be used in environments where you want to assert that the
+\fBCargo.lock\fP file is up\-to\-date (such as a CI build) or want to avoid network
+access.
+.RE
+.SS "Common Options"
+.sp
+\fB\-h\fP, \fB\-\-help\fP
+.RS 4
+Prints help information.
+.RE
+.sp
+\fB\-Z\fP \fIFLAG\fP...
+.RS 4
+Unstable (nightly\-only) flags to Cargo. Run \fBcargo \-Z help\fP for
+details.
+.RE
+.SH "ENVIRONMENT"
+.sp
+See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/environment\-variables.html" "the reference" " "
+for
+details on environment variables that Cargo reads.
+.SH "EXIT STATUS"
+.sp
+0
+.RS 4
+Cargo succeeded.
+.RE
+.sp
+101
+.RS 4
+Cargo failed to complete.
+.RE
+.SH "FILES"
+.sp
+\fB~/.cargo/\fP
+.RS 4
+Default location for Cargo\(cqs "home" directory where it stores various
+files. The location can be changed with the \fBCARGO_HOME\fP environment
+variable.
+.RE
+.sp
+\fB$CARGO_HOME/bin/\fP
+.RS 4
+Binaries installed by \fBcargo\-install\fP(1) will be located here. If using
+rustup, executables distributed with Rust are also located here.
+.RE
+.sp
+\fB$CARGO_HOME/config\fP
+.RS 4
+The global configuration file. See \c
+.URL "https://doc.rust\-lang.org/cargo/reference/config.html" "the reference"
+for more information about configuration files.
+.RE
+.sp
+\fB.cargo/config\fP
+.RS 4
+Cargo automatically searches for a file named \fB.cargo/config\fP in the
+current directory, and all parent directories. These configuration files
+will be merged with the global configuration file.
+.RE
+.sp
+\fB$CARGO_HOME/credentials\fP
+.RS 4
+Private authentication information for logging in to a registry.
+.RE
+.sp
+\fB$CARGO_HOME/registry/\fP
+.RS 4
+This directory contains cached downloads of the registry index and any
+downloaded dependencies.
+.RE
+.sp
+\fB$CARGO_HOME/git/\fP
+.RS 4
+This directory contains cached downloads of git dependencies.
+.RE
+.SH "EXAMPLES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 1." 4.2
+.\}
+Build a local package and all of its dependencies:
+.sp
+.if n .RS 4
+.nf
+cargo build
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 2." 4.2
+.\}
+Build a package with optimizations:
+.sp
+.if n .RS 4
+.nf
+cargo build \-\-release
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 3.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 3." 4.2
+.\}
+Run tests for a cross\-compiled target:
+.sp
+.if n .RS 4
+.nf
+cargo test \-\-target i686\-unknown\-linux\-gnu
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 4.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 4." 4.2
+.\}
+Create a new package that builds an executable:
+.sp
+.if n .RS 4
+.nf
+cargo new foobar
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 5.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 5." 4.2
+.\}
+Create a package in the current directory:
+.sp
+.if n .RS 4
+.nf
+mkdir foo && cd foo
+cargo init .
+.fi
+.if n .RE
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 6.\h'+01'\c
+.\}
+.el \{\
+.  sp -1
+.  IP " 6." 4.2
+.\}
+Learn about a command\(cqs options and usage:
+.sp
+.if n .RS 4
+.nf
+cargo help clean
+.fi
+.if n .RE
+.RE
+.SH "BUGS"
+.sp
+See \c
+.URL "https://github.com/rust\-lang/cargo/issues" "" " "
+for issues.
+.SH "SEE ALSO"
+.sp
+\fBrustc\fP(1), \fBrustdoc\fP(1)
\ No newline at end of file
diff --git a/linux-x86/1.36.0/share/man/man1/rustc.1 b/linux-x86/1.36.0/share/man/man1/rustc.1
new file mode 100644
index 0000000..aec0d74
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/rustc.1
@@ -0,0 +1,314 @@
+.TH RUSTC "1" "September 2019" "rustc 1.36.0" "User Commands"
+.SH NAME
+rustc \- The Rust compiler
+.SH SYNOPSIS
+.B rustc
+[\fIOPTIONS\fR] \fIINPUT\fR
+
+.SH DESCRIPTION
+This program is a compiler for the Rust language, available at https://www.rust\-lang.org.
+
+.SH OPTIONS
+
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Display the help message.
+.TP
+\fB\-\-cfg\fR \fISPEC\fR
+Configure the compilation environment.
+.TP
+\fB\-L\fR [\fIKIND\fR=]\fIPATH\fR
+Add a directory to the library search path.
+The optional \fIKIND\fR can be one of:
+.RS
+.TP
+\fBdependency\fR
+only lookup transitive dependencies here
+.TP
+.B crate
+only lookup local `extern crate` directives here
+.TP
+.B native
+only lookup native libraries here
+.TP
+.B framework
+only look for OSX frameworks here
+.TP
+.B all
+look for anything here (the default)
+.RE
+.TP
+\fB\-l\fR [\fIKIND\fR=]\fINAME\fR
+Link the generated crate(s) to the specified library \fINAME\fR.
+The optional \fIKIND\fR can be one of \fIstatic\fR, \fIdylib\fR, or
+\fIframework\fR.
+If omitted, \fIdylib\fR is assumed.
+.TP
+\fB\-\-crate\-type\fR [bin|lib|rlib|dylib|cdylib|staticlib]
+Comma separated list of types of crates for the compiler to emit.
+.TP
+\fB\-\-crate\-name\fR \fINAME\fR
+Specify the name of the crate being built.
+.TP
+\fB\-\-emit\fR [asm|llvm\-bc|llvm\-ir|obj|link|dep\-info|mir][=\fIPATH\fR]
+Configure the output that \fBrustc\fR will produce. Each emission may also have
+an optional explicit output \fIPATH\fR specified for that particular emission
+kind. This path takes precedence over the \fB-o\fR option.
+.TP
+\fB\-\-print\fR [crate\-name|\:file\-names|\:sysroot|\:cfg|\:target\-list|\:target\-cpus|\:target\-features|\:relocation\-models|\:code\-models|\:tls\-models|\:target\-spec\-json|\:native\-static\-libs]
+Comma separated list of compiler information to print on stdout.
+.TP
+\fB\-g\fR
+Equivalent to \fI\-C\ debuginfo=2\fR.
+.TP
+\fB\-O\fR
+Equivalent to \fI\-C\ opt\-level=2\fR.
+.TP
+\fB\-o\fR \fIFILENAME\fR
+Write output to \fIFILENAME\fR. Ignored if multiple \fI\-\-emit\fR outputs are specified which
+don't have an explicit path otherwise.
+.TP
+\fB\-\-out\-dir\fR \fIDIR\fR
+Write output to compiler\[hy]chosen filename in \fIDIR\fR. Ignored if \fI\-o\fR is specified.
+Defaults to the current directory.
+.TP
+\fB\-\-explain\fR \fIOPT\fR
+Provide a detailed explanation of an error message.
+.TP
+\fB\-\-test\fR
+Build a test harness.
+.TP
+\fB\-\-target\fR \fITARGET\fR
+Target triple for which the code is compiled. This option defaults to the host’s target
+triple. The target triple has the general format <arch><sub>\-<vendor>\-<sys>\-<abi>, where:
+.RS
+.TP
+.B <arch>
+x86, arm, thumb, mips, etc.
+.TP
+.B <sub>
+for example on ARM: v5, v6m, v7a, v7m, etc.
+.TP
+.B <vendor>
+pc, apple, nvidia, ibm, etc.
+.TP
+.B <sys>
+none, linux, win32, darwin, cuda, etc.
+.TP
+.B <abi>
+eabi, gnu, android, macho, elf, etc.
+.RE
+.TP
+\fB\-W help\fR
+Print 'lint' options and default settings.
+.TP
+\fB\-W\fR \fIOPT\fR, \fB\-\-warn\fR \fIOPT\fR
+Set lint warnings.
+.TP
+\fB\-A\fR \fIOPT\fR, \fB\-\-allow\fR \fIOPT\fR
+Set lint allowed.
+.TP
+\fB\-D\fR \fIOPT\fR, \fB\-\-deny\fR \fIOPT\fR
+Set lint denied.
+.TP
+\fB\-F\fR \fIOPT\fR, \fB\-\-forbid\fR \fIOPT\fR
+Set lint forbidden.
+.TP
+\fB\-C\fR \fIFLAG\fR[=\fIVAL\fR], \fB\-\-codegen\fR \fIFLAG\fR[=\fIVAL\fR]
+Set a codegen\[hy]related flag to the value specified.
+Use \fI\-C help\fR to print available flags.
+See CODEGEN OPTIONS below.
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+Print version info and exit.
+.TP
+\fB\-v\fR, \fB\-\-verbose\fR
+Use verbose output.
+.TP
+\fB\-\-remap\-path\-prefix\fR \fIfrom\fR=\fIto\fR
+Remap source path prefixes in all output, including compiler diagnostics, debug information,
+macro expansions, etc. The \fIfrom\fR=\fIto\fR parameter is scanned from right to left, so \fIfrom\fR
+may contain '=', but \fIto\fR may not.
+
+This is useful for normalizing build products, for example by removing the current directory out of
+pathnames emitted into the object files. The replacement is purely textual, with no consideration of
+the current system's pathname syntax. For example \fI\-\-remap\-path\-prefix foo=bar\fR will
+match \fBfoo/lib.rs\fR but not \fB./foo/lib.rs\fR.
+.TP
+\fB\-\-extern\fR \fINAME\fR=\fIPATH\fR
+Specify where an external rust library is located. These should match
+\fIextern\fR declarations in the crate's source code.
+.TP
+\fB\-\-sysroot\fR \fIPATH\fR
+Override the system root.
+.TP
+\fB\-Z\fR \fIFLAG\fR
+Set internal debugging options.
+Use \fI\-Z help\fR to print available options.
+.TP
+\fB\-\-color\fR auto|always|never
+Configure coloring of output:
+.RS
+.TP
+.B auto
+colorize, if output goes to a tty (default);
+.TP
+.B always
+always colorize output;
+.TP
+.B never
+never colorize output.
+.RE
+
+.SH CODEGEN OPTIONS
+
+.TP
+\fBlinker\fR=\fI/path/to/cc\fR
+Path to the linker utility to use when linking libraries, executables, and
+objects.
+.TP
+\fBlink\-args\fR='\fI\-flag1 \-flag2\fR'
+A space\[hy]separated list of extra arguments to pass to the linker when the linker
+is invoked.
+.TP
+\fBlto\fR
+Perform LLVM link\[hy]time optimizations.
+.TP
+\fBtarget\-cpu\fR=\fIhelp\fR
+Selects a target processor.
+If the value is 'help', then a list of available CPUs is printed.
+.TP
+\fBtarget\-feature\fR='\fI+feature1\fR,\fI\-feature2\fR'
+A comma\[hy]separated list of features to enable or disable for the target.
+A preceding '+' enables a feature while a preceding '\-' disables it.
+Available features can be discovered through \fIllc -mcpu=help\fR.
+.TP
+\fBpasses\fR=\fIval\fR
+A space\[hy]separated list of extra LLVM passes to run.
+A value of 'list' will cause \fBrustc\fR to print all known passes and
+exit.
+The passes specified are appended at the end of the normal pass manager.
+.TP
+\fBllvm\-args\fR='\fI\-arg1\fR \fI\-arg2\fR'
+A space\[hy]separated list of arguments to pass through to LLVM.
+.TP
+\fBsave\-temps\fR
+If specified, the compiler will save more files (.bc, .o, .no\-opt.bc) generated
+throughout compilation in the output directory.
+.TP
+\fBrpath\fR
+If specified, then the rpath value for dynamic libraries will be set in
+either dynamic library or executable outputs.
+.TP
+\fBno\-prepopulate\-passes\fR
+Suppresses pre\[hy]population of the LLVM pass manager that is run over the module.
+.TP
+\fBno\-vectorize\-loops\fR
+Suppresses running the loop vectorization LLVM pass, regardless of optimization
+level.
+.TP
+\fBno\-vectorize\-slp\fR
+Suppresses running the LLVM SLP vectorization pass, regardless of optimization
+level.
+.TP
+\fBsoft\-float\fR
+Generates software floating point library calls instead of hardware
+instructions.
+.TP
+\fBprefer\-dynamic\fR
+Prefers dynamic linking to static linking.
+.TP
+\fBno\-integrated\-as\fR
+Force usage of an external assembler rather than LLVM's integrated one.
+.TP
+\fBno\-redzone\fR
+Disable the use of the redzone.
+.TP
+\fBrelocation\-model\fR=[pic,static,dynamic\-no\-pic]
+The relocation model to use.
+(Default: \fIpic\fR)
+.TP
+\fBcode\-model\fR=[small,kernel,medium,large]
+Choose the code model to use.
+.TP
+\fBmetadata\fR=\fIval\fR
+Metadata to mangle symbol names with.
+.TP
+\fBextra\-filename\fR=\fIval\fR
+Extra data to put in each output filename.
+.TP
+\fBcodegen\-units\fR=\fIn\fR
+Divide crate into \fIn\fR units to optimize in parallel.
+.TP
+\fBremark\fR=\fIval\fR
+Print remarks for these optimization passes (space separated, or "all").
+.TP
+\fBno\-stack\-check\fR
+Disable checks for stack exhaustion (a memory\[hy]safety hazard!).
+.TP
+\fBdebuginfo\fR=\fIval\fR
+Debug info emission level:
+.RS
+.TP
+.B 0
+no debug info;
+.TP
+.B 1
+line\[hy]tables only (for stacktraces and breakpoints);
+.TP
+.B 2
+full debug info with variable and type information.
+.RE
+.TP
+\fBopt\-level\fR=\fIVAL\fR
+Optimize with possible levels 0\[en]3, s (optimize for size), or z (for minimal size)
+
+.SH ENVIRONMENT
+
+Some of these affect only test harness programs (generated via rustc --test);
+others affect all programs which link to the Rust standard library.
+
+.TP
+\fBRUST_TEST_THREADS\fR
+The test framework Rust provides executes tests in parallel. This variable sets
+the maximum number of threads used for this purpose. This setting is overridden
+by the --test-threads option.
+
+.TP
+\fBRUST_TEST_NOCAPTURE\fR
+If set to a value other than "0", a synonym for the --nocapture flag.
+
+.TP
+\fBRUST_MIN_STACK\fR
+Sets the minimum stack size for new threads.
+
+.TP
+\fBRUST_BACKTRACE\fR
+If set to a value different than "0", produces a backtrace in the output of a program which panics.
+
+.SH "EXAMPLES"
+To build an executable from a source file with a main function:
+    $ rustc \-o hello hello.rs
+
+To build a library from a source file:
+    $ rustc \-\-crate\-type=lib hello\-lib.rs
+
+To build either with a crate (.rs) file:
+    $ rustc hello.rs
+
+To build an executable with debug info:
+    $ rustc \-g \-o hello hello.rs
+
+.SH "SEE ALSO"
+
+.BR rustdoc (1)
+
+.SH "BUGS"
+See https://github.com/rust\-lang/rust/issues for issues.
+
+.SH "AUTHOR"
+See https://github.com/rust\-lang/rust/graphs/contributors or use `git log --all --format='%cN <%cE>' | sort -u` in the rust source distribution.
+
+.SH "COPYRIGHT"
+This work is dual\[hy]licensed under Apache\ 2.0 and MIT terms.
+See \fICOPYRIGHT\fR file in the rust source distribution.
diff --git a/linux-x86/1.36.0/share/man/man1/rustdoc.1 b/linux-x86/1.36.0/share/man/man1/rustdoc.1
new file mode 100644
index 0000000..65c5c89
--- /dev/null
+++ b/linux-x86/1.36.0/share/man/man1/rustdoc.1
@@ -0,0 +1,126 @@
+.TH RUSTDOC "1" "September 2019" "rustdoc 1.36.0" "User Commands"
+.SH NAME
+rustdoc \- generate documentation from Rust source code
+.SH SYNOPSIS
+.B rustdoc
+[\fIOPTIONS\fR] \fIINPUT\fR
+
+.SH DESCRIPTION
+This tool generates API reference documentation by extracting comments from
+source code written in the Rust language, available at
+<\fBhttps://www.rust-lang.org\fR>. It accepts several input formats and
+provides several output formats for the generated documentation.
+
+.SH OPTIONS
+
+.TP
+\fB\-r\fR, \fB\-\-input\-format\fR \fIFORMAT\fR
+rust
+.TP
+\fB\-w\fR, \fB\-\-output\-format\fR \fIFORMAT\fR
+html
+.TP
+\fB\-o\fR, \fB\-\-output\fR \fIOUTPUT\fR,
+where to place the output (default: \fIdoc/\fR for html)
+.TP
+\fB\-\-passes\fR \fILIST\fR
+space\[hy]separated list of passes to run (default: '')
+.TP
+\fB\-\-no\-defaults\fR
+don't run the default passes
+.TP
+\fB\-\-plugins\fR \fILIST\fR
+space-separated list of plugins to run (default: '')
+.TP
+\fB\-\-plugin\-path\fR \fIDIR\fR
+directory to load plugins from (default: \fI/tmp/rustdoc_ng/plugins\fR)
+.TP
+\fB\-\-target\fR \fITRIPLE\fR
+target triple to document
+.TP
+\fB\-\-crate\-name\fR \fINAME\fR
+specify the name of this crate
+.TP
+\fB\-L\fR, \fB\-\-library\-path\fR \fIDIR\fR
+directory to add to crate search path
+.TP
+\fB\-\-cfg\fR \fISPEC\fR
+pass a \fI\-\-cfg\fR to rustc
+.TP
+\fB\-\-extern\fR \fIVAL\fR
+pass an \fI\-\-extern\fR to rustc
+.TP
+\fB\-\-test\fR
+run code examples as tests
+.TP
+\fB\-\-test\-args\fR \fIARGS\fR
+pass arguments to the test runner
+.TP
+\fB\-\-html\-in\-header\fR \fIFILE\fR
+file to add to <head>
+.TP
+\fB\-\-html\-before\-content\fR \fIFILES\fR
+files to include inline between <body> and the content of a rendered Markdown
+file or generated documentation
+.TP
+\fB\-\-markdown\-before\-content\fR \fIFILES\fR
+files to include inline between <body> and the content of a rendered
+Markdown file or generated documentation
+.TP
+\fB\-\-html\-after\-content\fR \fIFILES\fR
+files to include inline between the content and </body> of a rendered
+Markdown file or generated documentation
+.TP
+\fB\-\-markdown\-after\-content\fR \fIFILES\fR
+files to include inline between the content and </body> of a rendered
+Markdown file or generated documentation
+.TP
+\fB\-\-markdown\-css\fR \fIFILES\fR
+CSS files to include via <link> in a rendered Markdown file Markdown file or
+generated documentation
+.TP
+\fB\-\-markdown\-playground\-url\fR \fIURL\fR
+URL to send code snippets to
+.TP
+\fB\-\-markdown\-no\-toc\fR
+don't include table of contents
+.TP
+\fB\-h\fR, \fB\-\-extend\-css\fR
+to redefine some css rules with a given file to generate doc with your own theme
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+Print rustdoc's version
+
+.SH "OUTPUT FORMATS"
+
+The rustdoc tool can generate output in an HTML format.
+
+If using an HTML format, then the specified output destination will be the root
+directory of an HTML structure for all the documentation.
+Pages will be placed into this directory, and source files will also
+possibly be rendered into it as well.
+
+.SH "EXAMPLES"
+
+To generate documentation for the source in the current directory:
+    $ rustdoc hello.rs
+
+List all available passes that rustdoc has, along with default passes:
+    $ rustdoc \-\-passes list
+
+The generated HTML can be viewed with any standard web browser.
+
+.SH "SEE ALSO"
+
+.BR rustc (1)
+
+.SH "BUGS"
+See <\fBhttps://github.com/rust\-lang/rust/issues\fR>
+for issues.
+
+.SH "AUTHOR"
+See the version control history or <\fBhttps://thanks.rust\-lang.org\fR>
+
+.SH "COPYRIGHT"
+This work is dual\[hy]licensed under Apache\ 2.0 and MIT terms.
+See \fICOPYRIGHT\fR file in the rust source distribution.
diff --git a/linux-x86/1.36.0/share/zsh/site-functions/_cargo b/linux-x86/1.36.0/share/zsh/site-functions/_cargo
new file mode 100644
index 0000000..4f11922
--- /dev/null
+++ b/linux-x86/1.36.0/share/zsh/site-functions/_cargo
@@ -0,0 +1,546 @@
+#compdef cargo
+
+autoload -U regexp-replace
+
+zstyle -T ':completion:*:*:cargo:*' tag-order && \
+  zstyle ':completion:*:*:cargo:*' tag-order 'common-commands'
+
+_cargo() {
+local context state state_descr line
+typeset -A opt_args
+
+# leading items in parentheses are an exclusion list for the arguments following that arg
+# See: http://zsh.sourceforge.net/Doc/Release/Completion-System.html#Completion-Functions
+#   - => exclude all other options
+#   1 => exclude positional arg 1
+#   * => exclude all other args
+#   +blah => exclude +blah
+_arguments \
+    '(- 1 *)'{-h,--help}'[show help message]' \
+    '(- 1 *)--list[list installed commands]' \
+    '(- 1 *)'{-V,--version}'[show version information]' \
+    {-v,--verbose}'[use verbose output]' \
+    --color'[colorization option]' \
+    '(+beta +nightly)+stable[use the stable toolchain]' \
+    '(+stable +nightly)+beta[use the beta toolchain]' \
+    '(+stable +beta)+nightly[use the nightly toolchain]' \
+    '1: :->command' \
+    '*:: :->args'
+
+case $state in
+    command)
+      _alternative 'common-commands:common:_cargo_cmds' 'all-commands:all:_cargo_all_cmds'
+      ;;
+
+    args)
+        case $words[1] in
+            bench)
+                _arguments \
+                    '--features=[space separated feature list]' \
+                    '--all-features[enable all available features]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
+                    "${command_scope_spec[@]}" \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '--no-default-features[do not build the default features]' \
+                    '--no-run[compile but do not run]' \
+                    '(-p,--package)'{-p=,--package=}'[package to run benchmarks for]:packages:_get_package_names' \
+                    '--target=[target triple]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            build)
+                _arguments \
+                    '--features=[space separated feature list]' \
+                    '--all-features[enable all available features]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
+                    "${command_scope_spec[@]}" \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '--no-default-features[do not build the default features]' \
+                    '(-p,--package)'{-p=,--package=}'[package to build]:packages:_get_package_names' \
+                    '--release=[build in release mode]' \
+                    '--target=[target triple]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            check)
+                _arguments \
+                    '--features=[space separated feature list]' \
+                    '--all-features[enable all available features]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
+                    "${command_scope_spec[@]}" \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '--no-default-features[do not check the default features]' \
+                    '(-p,--package)'{-p=,--package=}'[package to check]:packages:_get_package_names' \
+                    '--release=[check in release mode]' \
+                    '--target=[target triple]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            clean)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '(-p,--package)'{-p=,--package=}'[package to clean]:packages:_get_package_names' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--release[whether or not to clean release artifacts]' \
+                    '--target=[target triple(default:all)]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            doc)
+                _arguments \
+                    '--features=[space separated feature list]' \
+                    '--all-features[enable all available features]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '--no-deps[do not build docs for dependencies]' \
+                    '--no-default-features[do not build the default features]' \
+                    '--document-private-items[include non-public items in the documentation]' \
+                    '--open[open docs in browser after the build]' \
+                    '(-p, --package)'{-p,--package}'=[package to document]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--release[build artifacts in release mode, with optimizations]' \
+                    '--target=[build for the target triple]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            fetch)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            generate-lockfile)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            git-checkout)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--reference=[REF]' \
+                    '--url=[URL]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            help)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '*: :_cargo_cmds' \
+                    ;;
+
+            init)
+                _arguments \
+                    '--lib[use library template]' \
+                    '--vcs:initialize a new repo with a given VCS:(git hg none)' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--name=[set the resulting package name]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            install)
+                _arguments \
+                    '--bin=[only install the specified binary]' \
+                    '--branch=[branch to use when installing from git]' \
+                    '--color=:colorization option:(auto always never)' \
+                    '--debug[build in debug mode instead of release mode]' \
+                    '--example[install the specified example instead of binaries]' \
+                    '--features=[space separated feature list]' \
+                    '--all-features[enable all available features]' \
+                    '--git=[URL from which to install the crate]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
+                    '--no-default-features[do not build the default features]' \
+                    '--path=[local filesystem path to crate to install]: :_files -/' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--rev=[specific commit to use when installing from git]' \
+                    '--root=[directory to install packages into]: :_files -/' \
+                    '--tag=[tag to use when installing from git]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--vers=[version to install from crates.io]' \
+                    ;;
+
+            locate-project)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    ;;
+
+            login)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--host=[Host to set the token for]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            metadata)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    "--no-deps[output information only about the root package and don't fetch dependencies]" \
+                    '--no-default-features[do not include the default feature]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '--features=[space separated feature list]' \
+                    '--all-features[enable all available features]' \
+                    '--format-version=[format version(default: 1)]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            new)
+                _arguments \
+                    '--lib[use library template]' \
+                    '--vcs:initialize a new repo with a given VCS:(git hg none)' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--name=[set the resulting package name]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            owner)
+                _arguments \
+                    '(-a, --add)'{-a,--add}'[add owner LOGIN]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--index[registry index]' \
+                    '(-l, --list)'{-l,--list}'[list owners of a crate]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-r, --remove)'{-r,--remove}'[remove owner LOGIN]' \
+                    '--token[API token to use when authenticating]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            package)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-l, --list)'{-l,--list}'[print files included in a package without making one]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '--no-metadata[ignore warnings about a lack of human-usable metadata]' \
+                    '--no-verify[do not build to verify contents]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            pkgid)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            publish)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--host=[Host to set the token for]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '--no-verify[Do not verify tarball until before publish]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--token[token to use when uploading]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            read-manifest)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            run)
+                _arguments \
+                    '--example=[name of the bin target]' \
+                    '--features=[space separated feature list]' \
+                    '--all-features[enable all available features]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '--bin=[name of the bin target]' \
+                    '--no-default-features[do not build the default features]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--release=[build in release mode]' \
+                    '--target=[target triple]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    '*: :_normal' \
+                    ;;
+
+            rustc)
+                _arguments \
+                    '--color=:colorization option:(auto always never)' \
+                    '--features=[features to compile for the package]' \
+                    '--all-features[enable all available features]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-j, --jobs)'{-j,--jobs}'=[number of parallel jobs, defaults to # of CPUs]' \
+                    '--manifest-path=[path to the manifest to fetch dependencies for]: :_files -/' \
+                    '--no-default-features[do not compile default features for the package]' \
+                    '(-p, --package)'{-p,--package}'=[profile to compile for]' \
+                    '--profile=[profile to build the selected target for]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--release[build artifacts in release mode, with optimizations]' \
+                    '--target=[target triple which compiles will be for]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    "${command_scope_spec[@]}" \
+                    ;;
+
+            rustdoc)
+                _arguments \
+                    '--color=:colorization option:(auto always never)' \
+                    '--features=[space-separated list of features to also build]' \
+                    '--all-features[enable all available features]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-j, --jobs)'{-j,--jobs}'=[number of parallel jobs, defaults to # of CPUs]' \
+                    '--manifest-path=[path to the manifest to document]: :_files -/' \
+                    '--no-default-features[do not build the `default` feature]' \
+                    '--document-private-items[include non-public items in the documentation]' \
+                    '--open[open the docs in a browser after the operation]' \
+                    '(-p, --package)'{-p,--package}'=[package to document]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--release[build artifacts in release mode, with optimizations]' \
+                    '--target=[build for the target triple]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    "${command_scope_spec[@]}" \
+                    ;;
+
+            search)
+                _arguments \
+                    '--color=:colorization option:(auto always never)' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--host=[host of a registry to search in]' \
+                    '--limit=[limit the number of results]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    ;;
+
+            test)
+                _arguments \
+                    '--features=[space separated feature list]' \
+                    '--all-features[enable all available features]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-j, --jobs)'{-j,--jobs}'[number of parallel jobs, defaults to # of CPUs]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '--test=[test name]: :_test_names' \
+                    '--no-default-features[do not build the default features]' \
+                    '--no-fail-fast[run all tests regardless of failure]' \
+                    '--no-run[compile but do not run]' \
+                    '(-p,--package)'{-p=,--package=}'[package to run tests for]:packages:_get_package_names' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--release[build artifacts in release mode, with optimizations]' \
+                    '--target=[target triple]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    '1: :_test_names' \
+                    '(--doc --bin --example --test --bench)--lib[only test library]' \
+                    '(--lib --bin --example --test --bench)--doc[only test documentation]' \
+                    '(--lib --doc --example --test --bench)--bin=[binary name]' \
+                    '(--lib --doc --bin --test --bench)--example=[example name]' \
+                    '(--lib --doc --bin --example --bench)--test=[test name]' \
+                    '(--lib --doc --bin --example --test)--bench=[benchmark name]' \
+                    '--message-format:error format:(human json short)' \
+                    '--frozen[require lock and cache up to date]' \
+                    '--locked[require lock up to date]'
+                    ;;
+
+            uninstall)
+                _arguments \
+                    '--bin=[only uninstall the binary NAME]' \
+                    '--color=:colorization option:(auto always never)' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-q, --quiet)'{-q,--quiet}'[less output printed to stdout]' \
+                    '--root=[directory to uninstall packages from]: :_files -/' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    ;;
+
+            update)
+                _arguments \
+                    '--aggressive=[force dependency update]' \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '(-p,--package)'{-p=,--package=}'[package to update]:packages:__get_package_names' \
+                    '--precise=[update single dependency to PRECISE]: :' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            verify-project)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--manifest-path=[path to manifest]: :_files -/' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            version)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    ;;
+
+            yank)
+                _arguments \
+                    '(-h, --help)'{-h,--help}'[show help message]' \
+                    '--index[registry index]' \
+                    '(-q, --quiet)'{-q,--quiet}'[no output printed to stdout]' \
+                    '--token[API token to use when authenticating]' \
+                    '--undo[undo a yank, putting a version back into the index]' \
+                    '(-v, --verbose)'{-v,--verbose}'[use verbose output]' \
+                    '--color=:colorization option:(auto always never)' \
+                    '--vers[yank version]' \
+                    ;;
+        esac
+        ;;
+esac
+}
+
+_cargo_cmds(){
+local -a commands;commands=(
+'bench:execute all benchmarks of a local package'
+'build:compile the current package'
+'check:check the current package without compiling'
+'clean:remove generated artifacts'
+'doc:build package documentation'
+'fetch:fetch package dependencies'
+'generate-lockfile:create lockfile'
+'git-checkout:git checkout'
+'help:get help for commands'
+'init:create new package in current directory'
+'install:install a Rust binary'
+'locate-project:print "Cargo.toml" location'
+'login:login to remote server'
+'metadata:the metadata for a package in json'
+'new:create a new package'
+'owner:manage the owners of a crate on the registry'
+'package:assemble local package into a distributable tarball'
+'pkgid:print a fully qualified package specification'
+'publish:upload package to the registry'
+'read-manifest:print manifest in JSON format'
+'run:run the main binary of the local package'
+'rustc:compile a package and all of its dependencies'
+'rustdoc:build documentation for a package'
+'search:search packages on crates.io'
+'test:execute all unit and tests of a local package'
+'uninstall:remove a Rust binary'
+'update:update dependencies'
+'verify-project:check Cargo.toml'
+'version:show version information'
+'yank:remove pushed file from index'
+)
+_describe -t common-commands 'common commands' commands
+}
+
+_cargo_all_cmds(){
+local -a commands;commands=($(cargo --list))
+_describe -t all-commands 'all commands' commands
+}
+
+
+#FIXME: Disabled until fixed
+#gets package names from the manifest file
+_get_package_names()
+{
+}
+
+#TODO:see if it makes sense to have 'locate-project' to have non-json output.
+#strips package name from json stuff
+_locate_manifest(){
+local manifest=`cargo locate-project 2>/dev/null`
+regexp-replace manifest '\{"root":"|"\}' ''
+echo $manifest
+}
+
+# Extracts the values of "name" from the array given in $1 and shows them as
+# command line options for completion
+_get_names_from_array()
+{
+    local -a filelist;
+    local manifest=$(_locate_manifest)
+    if [[ -z $manifest ]]; then
+        return 0
+    fi
+
+    local last_line
+    local -a names;
+    local in_block=false
+    local block_name=$1
+    names=()
+    while read line
+    do
+        if [[ $last_line == "[[$block_name]]" ]]; then
+            in_block=true
+        else
+            if [[ $last_line =~ '.*\[\[.*' ]]; then
+                in_block=false
+            fi
+        fi
+
+        if [[ $in_block == true ]]; then
+            if [[ $line =~ '.*name.*=' ]]; then
+                regexp-replace line '^.*name *= *|"' ""
+                names+=$line
+            fi
+        fi
+
+        last_line=$line
+    done < $manifest
+    _describe $block_name names
+
+}
+
+#Gets the test names from the manifest file
+_test_names()
+{
+    _get_names_from_array "test"
+}
+
+#Gets the bench names from the manifest file
+_benchmark_names()
+{
+    _get_names_from_array "bench"
+}
+
+# These flags are mutually exclusive specifiers for the scope of a command; as
+# they are used in multiple places without change, they are expanded into the
+# appropriate command's `_arguments` where appropriate.
+set command_scope_spec
+command_scope_spec=(
+    '(--bin --example --test --lib)--bench=[benchmark name]: :_benchmark_names'
+    '(--bench --bin --test --lib)--example=[example name]'
+    '(--bench --example --test --lib)--bin=[binary name]'
+    '(--bench --bin --example --test)--lib=[library name]'
+    '(--bench --bin --example --lib)--test=[test name]'
+)
+
+_cargo
