# This file may be modified to make local changes to the environment and command
# line that app_shell_launcher uses to run app_shell. It contains one directive
# per line, with the following forms available:
#
# --some-argument=/tmp/some file
#   Adds "--some-argument=/tmp/some file" to app_shell's command line. The
#   entire line will be passed as a single argument; do not include quotation
#   marks unless you want them to be passed verbatim to app_shell.
#
# !--a-prefix
#   Removes all arguments beginning with "--a-prefix" from the command line.
#
# vmodule=foo=1
#   Adds a "foo=1" pattern to the --vmodule argument. Multiple patterns may be
#   listed on separate "vmodule=" lines. A --vmodule argument containing all of
#   the requested patterns will be automatically constructed and passed to
#   app_shell; do not explicitly add a "--vmodule=" line.
#
# NAME=some value
#   Sets the environment variable "NAME" to the value "some value". As above, do
#   not quote the value unless you want the quotes to appear verbatim in the
#   variable's value.
#
# Directives are applied in the order they appear (i.e. to change a flag, first
# delete it and then re-add it with the desired value).

