conversion from a WORD_LIST into a string. This makes it more
consistent with other arithmetic expansions. Inspired by a
discussion begun by Nils Emmerich <nemmerich@ernw.de>
+
+ 6/10
+ ----
+jobs.c
+ - waitchld: since process substitutions are asynchronous, save the
+ status of one that exits (that we still know about) in the bgpids
+ list
+
+ 6/12
+ ----
+jobs.c
+ - wait_for_background_pids: wait for the last procsub only if it's the
+ same as last_asynchronous_pid
+
+bashline.c
+ - bash_backward_shellword: changes to behave better when at the
+ beginning of the last character on the line and to leave point at
+ the beginning of the shellword, like backward-word. Fixes from
+ Andrew Gaylard <a.gaylard@gmail.com>
+
+ 6/13
+ ----
+bashline.c
+ - __P: Replaced with PARAMS. First of many
+ - bash_transpose_shellwords: transpose-words, but using `shellword'
+ word boundaries like shell-forward-word and shell-backward-word.
+ Contributed by Andrew Gaylard <a.gaylard@gmail.com>
+ - "shell-transpose-words": new name binding for bash_transpose_shellwords
+ - bash_readline_initialize: add default bindings for shell-forward-word,
+ shell-backward-word, shell-transpose-words, and shell-kill-word.
+ Suggested by Andrew Gaylard <a.gaylard@gmail.com>
+
+lib/readline/doc/rluser.texi
+ - shell-transpose-words: document
+ - {shell-forward-word,shell-backward-word,shell-kill-word,shell-transpose-words}:
+ document new default bindings bash now adds
+
+variables.c
+ - set_argv0: function to assign argv0 if it's found in the initial
+ shell environment. Suggested by Cuong Manh Le
+ <coung.manhle.vn@gmail.com>
+ - initialize_shell_variables: call set_argv0() as part of shell
+ initialization
#define RL_BOOLEAN_VARIABLE_VALUE(s) ((s)[0] == 'o' && (s)[1] == 'n' && (s)[2] == '\0')
#if defined (BRACE_COMPLETION)
-extern int bash_brace_completion __P((int, int));
+extern int bash_brace_completion PARAMS((int, int));
#endif /* BRACE_COMPLETION */
/* To avoid including curses.h/term.h/termcap.h and that whole mess. */
#ifdef _MINIX
-extern int tputs __P((const char *string, int nlines, void (*outx)(int)));
+extern int tputs PARAMS((const char *string, int nlines, void (*outx)(int)));
#else
-extern int tputs __P((const char *string, int nlines, int (*outx)(int)));
+extern int tputs PARAMS((const char *string, int nlines, int (*outx)(int)));
#endif
/* Forward declarations */
/* Functions bound to keys in Readline for Bash users. */
-static int shell_expand_line __P((int, int));
-static int display_shell_version __P((int, int));
-static int operate_and_get_next __P((int, int));
+static int shell_expand_line PARAMS((int, int));
+static int display_shell_version PARAMS((int, int));
+static int operate_and_get_next PARAMS((int, int));
-static int bash_ignore_filenames __P((char **));
-static int bash_ignore_everything __P((char **));
-static int bash_progcomp_ignore_filenames __P((char **));
+static int bash_ignore_filenames PARAMS((char **));
+static int bash_ignore_everything PARAMS((char **));
+static int bash_progcomp_ignore_filenames PARAMS((char **));
#if defined (BANG_HISTORY)
-static char *history_expand_line_internal __P((char *));
-static int history_expand_line __P((int, int));
-static int tcsh_magic_space __P((int, int));
+static char *history_expand_line_internal PARAMS((char *));
+static int history_expand_line PARAMS((int, int));
+static int tcsh_magic_space PARAMS((int, int));
#endif /* BANG_HISTORY */
#ifdef ALIAS
-static int alias_expand_line __P((int, int));
+static int alias_expand_line PARAMS((int, int));
#endif
#if defined (BANG_HISTORY) && defined (ALIAS)
-static int history_and_alias_expand_line __P((int, int));
+static int history_and_alias_expand_line PARAMS((int, int));
#endif
-static int bash_forward_shellword __P((int, int));
-static int bash_backward_shellword __P((int, int));
-static int bash_kill_shellword __P((int, int));
-static int bash_backward_kill_shellword __P((int, int));
+static int bash_forward_shellword PARAMS((int, int));
+static int bash_backward_shellword PARAMS((int, int));
+static int bash_kill_shellword PARAMS((int, int));
+static int bash_backward_kill_shellword PARAMS((int, int));
+static int bash_transpose_shellwords PARAMS((int, int));
/* Helper functions for Readline. */
-static char *restore_tilde __P((char *, char *));
-static char *maybe_restore_tilde __P((char *, char *));
+static char *restore_tilde PARAMS((char *, char *));
+static char *maybe_restore_tilde PARAMS((char *, char *));
-static char *bash_filename_rewrite_hook __P((char *, int));
+static char *bash_filename_rewrite_hook PARAMS((char *, int));
-static void bash_directory_expansion __P((char **));
-static int bash_filename_stat_hook __P((char **));
-static int bash_command_name_stat_hook __P((char **));
-static int bash_directory_completion_hook __P((char **));
-static int filename_completion_ignore __P((char **));
-static int bash_push_line __P((void));
+static void bash_directory_expansion PARAMS((char **));
+static int bash_filename_stat_hook PARAMS((char **));
+static int bash_command_name_stat_hook PARAMS((char **));
+static int bash_directory_completion_hook PARAMS((char **));
+static int filename_completion_ignore PARAMS((char **));
+static int bash_push_line PARAMS((void));
-static int executable_completion __P((const char *, int));
+static int executable_completion PARAMS((const char *, int));
-static rl_icppfunc_t *save_directory_hook __P((void));
-static void restore_directory_hook __P((rl_icppfunc_t));
+static rl_icppfunc_t *save_directory_hook PARAMS((void));
+static void restore_directory_hook PARAMS((rl_icppfunc_t));
-static int directory_exists __P((const char *, int));
+static int directory_exists PARAMS((const char *, int));
-static void cleanup_expansion_error __P((void));
-static void maybe_make_readline_line __P((char *));
-static void set_up_new_line __P((char *));
+static void cleanup_expansion_error PARAMS((void));
+static void maybe_make_readline_line PARAMS((char *));
+static void set_up_new_line PARAMS((char *));
-static int check_redir __P((int));
-static char **attempt_shell_completion __P((const char *, int, int));
-static char *variable_completion_function __P((const char *, int));
-static char *hostname_completion_function __P((const char *, int));
-static char *command_subst_completion_function __P((const char *, int));
+static int check_redir PARAMS((int));
+static char **attempt_shell_completion PARAMS((const char *, int, int));
+static char *variable_completion_function PARAMS((const char *, int));
+static char *hostname_completion_function PARAMS((const char *, int));
+static char *command_subst_completion_function PARAMS((const char *, int));
-static void build_history_completion_array __P((void));
-static char *history_completion_generator __P((const char *, int));
-static int dynamic_complete_history __P((int, int));
-static int bash_dabbrev_expand __P((int, int));
+static void build_history_completion_array PARAMS((void));
+static char *history_completion_generator PARAMS((const char *, int));
+static int dynamic_complete_history PARAMS((int, int));
+static int bash_dabbrev_expand PARAMS((int, int));
-static void initialize_hostname_list __P((void));
-static void add_host_name __P((char *));
-static void snarf_hosts_from_file __P((char *));
-static char **hostnames_matching __P((char *));
+static void initialize_hostname_list PARAMS((void));
+static void add_host_name PARAMS((char *));
+static void snarf_hosts_from_file PARAMS((char *));
+static char **hostnames_matching PARAMS((char *));
-static void _ignore_completion_names __P((char **, sh_ignore_func_t *));
-static int name_is_acceptable __P((const char *));
-static int test_for_directory __P((const char *));
-static int test_for_canon_directory __P((const char *));
-static int return_zero __P((const char *));
+static void _ignore_completion_names PARAMS((char **, sh_ignore_func_t *));
+static int name_is_acceptable PARAMS((const char *));
+static int test_for_directory PARAMS((const char *));
+static int test_for_canon_directory PARAMS((const char *));
+static int return_zero PARAMS((const char *));
-static char *bash_dequote_filename __P((char *, int));
-static char *quote_word_break_chars __P((char *));
-static void set_filename_bstab __P((const char *));
-static char *bash_quote_filename __P((char *, int, char *));
+static char *bash_dequote_filename PARAMS((char *, int));
+static char *quote_word_break_chars PARAMS((char *));
+static void set_filename_bstab PARAMS((const char *));
+static char *bash_quote_filename PARAMS((char *, int, char *));
#ifdef _MINIX
-static void putx __P((int));
+static void putx PARAMS((int));
#else
-static int putx __P((int));
+static int putx PARAMS((int));
#endif
-static Keymap get_cmd_xmap_from_edit_mode __P((void));
-static Keymap get_cmd_xmap_from_keymap __P((Keymap));
+static Keymap get_cmd_xmap_from_edit_mode PARAMS((void));
+static Keymap get_cmd_xmap_from_keymap PARAMS((Keymap));
-static int bash_execute_unix_command __P((int, int));
-static void init_unix_command_map __P((void));
-static int isolate_sequence __P((char *, int, int, int *));
+static int bash_execute_unix_command PARAMS((int, int));
+static void init_unix_command_map PARAMS((void));
+static int isolate_sequence PARAMS((char *, int, int, int *));
-static int set_saved_history __P((void));
+static int set_saved_history PARAMS((void));
#if defined (ALIAS)
-static int posix_edit_macros __P((int, int));
+static int posix_edit_macros PARAMS((int, int));
#endif
-static int bash_event_hook __P((void));
+static int bash_event_hook PARAMS((void));
#if defined (PROGRAMMABLE_COMPLETION)
-static int find_cmd_start __P((int));
-static int find_cmd_end __P((int));
-static char *find_cmd_name __P((int, int *, int *));
-static char *prog_complete_return __P((const char *, int));
+static int find_cmd_start PARAMS((int));
+static int find_cmd_end PARAMS((int));
+static char *find_cmd_name PARAMS((int, int *, int *));
+static char *prog_complete_return PARAMS((const char *, int));
static char **prog_complete_matches;
#endif
#define SPECIFIC_COMPLETION_FUNCTIONS
#if defined (SPECIFIC_COMPLETION_FUNCTIONS)
-static int bash_specific_completion __P((int, rl_compentry_func_t *));
-
-static int bash_complete_filename_internal __P((int));
-static int bash_complete_username_internal __P((int));
-static int bash_complete_hostname_internal __P((int));
-static int bash_complete_variable_internal __P((int));
-static int bash_complete_command_internal __P((int));
-
-static int bash_complete_filename __P((int, int));
-static int bash_possible_filename_completions __P((int, int));
-static int bash_complete_username __P((int, int));
-static int bash_possible_username_completions __P((int, int));
-static int bash_complete_hostname __P((int, int));
-static int bash_possible_hostname_completions __P((int, int));
-static int bash_complete_variable __P((int, int));
-static int bash_possible_variable_completions __P((int, int));
-static int bash_complete_command __P((int, int));
-static int bash_possible_command_completions __P((int, int));
-
-static int completion_glob_pattern __P((char *));
-static char *glob_complete_word __P((const char *, int));
-static int bash_glob_completion_internal __P((int));
-static int bash_glob_complete_word __P((int, int));
-static int bash_glob_expand_word __P((int, int));
-static int bash_glob_list_expansions __P((int, int));
+static int bash_specific_completion PARAMS((int, rl_compentry_func_t *));
+
+static int bash_complete_filename_internal PARAMS((int));
+static int bash_complete_username_internal PARAMS((int));
+static int bash_complete_hostname_internal PARAMS((int));
+static int bash_complete_variable_internal PARAMS((int));
+static int bash_complete_command_internal PARAMS((int));
+
+static int bash_complete_filename PARAMS((int, int));
+static int bash_possible_filename_completions PARAMS((int, int));
+static int bash_complete_username PARAMS((int, int));
+static int bash_possible_username_completions PARAMS((int, int));
+static int bash_complete_hostname PARAMS((int, int));
+static int bash_possible_hostname_completions PARAMS((int, int));
+static int bash_complete_variable PARAMS((int, int));
+static int bash_possible_variable_completions PARAMS((int, int));
+static int bash_complete_command PARAMS((int, int));
+static int bash_possible_command_completions PARAMS((int, int));
+
+static int completion_glob_pattern PARAMS((char *));
+static char *glob_complete_word PARAMS((const char *, int));
+static int bash_glob_completion_internal PARAMS((int));
+static int bash_glob_complete_word PARAMS((int, int));
+static int bash_glob_expand_word PARAMS((int, int));
+static int bash_glob_list_expansions PARAMS((int, int));
#endif /* SPECIFIC_COMPLETION_FUNCTIONS */
-static int edit_and_execute_command __P((int, int, int, char *));
+static int edit_and_execute_command PARAMS((int, int, int, char *));
#if defined (VI_MODE)
-static int vi_edit_and_execute_command __P((int, int));
-static int bash_vi_complete __P((int, int));
+static int vi_edit_and_execute_command PARAMS((int, int));
+static int bash_vi_complete PARAMS((int, int));
#endif
-static int emacs_edit_and_execute_command __P((int, int));
+static int emacs_edit_and_execute_command PARAMS((int, int));
/* Non-zero once initalize_readline () has been called. */
int bash_readline_initialized = 0;
rl_add_defun ("shell-backward-word", bash_backward_shellword, -1);
rl_add_defun ("shell-kill-word", bash_kill_shellword, -1);
rl_add_defun ("shell-backward-kill-word", bash_backward_kill_shellword, -1);
+ rl_add_defun ("shell-transpose-words", bash_transpose_shellwords, -1);
#ifdef ALIAS
rl_add_defun ("alias-expand-line", alias_expand_line, -1);
rl_filename_dequoting_function = bash_dequote_filename;
rl_char_is_quoted_p = char_is_quoted;
+ /* Add some default bindings for the "shellwords" functions, roughly
+ parallelling the default word bindings in emacs mode. */
+ rl_bind_key_if_unbound_in_map (CTRL('B'), bash_backward_shellword, emacs_meta_keymap);
+ rl_bind_key_if_unbound_in_map (CTRL('D'), bash_kill_shellword, emacs_meta_keymap);
+ rl_bind_key_if_unbound_in_map (CTRL('F'), bash_forward_shellword, emacs_meta_keymap);
+ rl_bind_key_if_unbound_in_map (CTRL('T'), bash_transpose_shellwords, emacs_meta_keymap);
+
#if 0
/* This is superfluous and makes it impossible to use tab completion in
vi mode even when explicitly binding it in ~/.inputrc. sv_strict_posix()
int count, key;
{
size_t slen;
- int c, p;
+ int c, p, prev_p;
DECLARE_MBSTATE;
if (count < 0)
p = rl_point;
slen = rl_end;
- if (p == rl_end && p > 0)
- p--;
-
while (count)
{
if (p == 0)
return 0;
}
- /* Move backward until we hit a non-metacharacter. */
+ /* Move backward until we hit a non-metacharacter. We want to deal
+ with the characters before point, so we move off a word if we're
+ at its first character. */
+ BACKUP_CHAR (rl_line_buffer, slen, p);
while (p > 0)
{
c = rl_line_buffer[p];
return 0;
}
- /* Now move backward until we hit a metacharacter or BOL. */
+ /* Now move backward until we hit a metacharacter or BOL. Leave point
+ at the start of the shellword or at BOL. */
+ prev_p = p;
while (p > 0)
{
c = rl_line_buffer[p];
if (WORDDELIM (c) && char_is_quoted (rl_line_buffer, p) == 0)
- break;
+ {
+ p = prev_p;
+ break;
+ }
+ prev_p = p;
BACKUP_CHAR (rl_line_buffer, slen, p);
}
return 0;
}
+static int
+bash_transpose_shellwords (count, key)
+ int count, key;
+{
+ char *word1, *word2;
+ int w1_beg, w1_end, w2_beg, w2_end;
+ int orig_point = rl_point;
+
+ if (count == 0)
+ return 0;
+
+ /* Find the two shell words. */
+ bash_forward_shellword (count, key);
+ w2_end = rl_point;
+ bash_backward_shellword (1, key);
+ w2_beg = rl_point;
+ bash_backward_shellword (count, key);
+ w1_beg = rl_point;
+ bash_forward_shellword (1, key);
+ w1_end = rl_point;
+
+ /* check that there really are two words. */
+ if ((w1_beg == w2_beg) || (w2_beg < w1_end))
+ {
+ rl_ding ();
+ rl_point = orig_point;
+ return 1;
+ }
+
+ /* Get the text of the words. */
+ word1 = rl_copy_text (w1_beg, w1_end);
+ word2 = rl_copy_text (w2_beg, w2_end);
+
+ /* We are about to do many insertions and deletions. Remember them
+ as one operation. */
+ rl_begin_undo_group ();
+
+ /* Do the stuff at word2 first, so that we don't have to worry
+ about word1 moving. */
+ rl_point = w2_beg;
+ rl_delete_text (w2_beg, w2_end);
+ rl_insert_text (word1);
+
+ rl_point = w1_beg;
+ rl_delete_text (w1_beg, w1_end);
+ rl_insert_text (word2);
+
+ /* This is exactly correct since the text before this point has not
+ changed in length. */
+ rl_point = w2_end;
+
+ /* I think that does it. */
+ rl_end_undo_group ();
+ xfree (word1);
+ xfree (word2);
+
+ return 0;
+}
/* **************************************************************** */
/* */
Wait for each specified child process and return its termination
status. Each _\bi_\bd may be a process ID or a job specification; if
a job spec is given, all processes in that job's pipeline are
- waited for. If _\bi_\bd is not given, all currently active child pro-
- cesses are waited for, and the return status is zero. If the -\b-n\bn
- option is supplied, w\bwa\bai\bit\bt waits for a single job to terminate and
- returns its exit status. Supplying the -\b-f\bf option, when job con-
- trol is enabled, forces w\bwa\bai\bit\bt to wait for _\bi_\bd to terminate before
- returning its status, instead of returning when it changes sta-
- tus. If _\bi_\bd specifies a non-existent process or job, the return
- status is 127. Otherwise, the return status is the exit status
- of the last process or job waited for.
+ waited for. If _\bi_\bd is not given, w\bwa\bai\bit\bt waits for all running
+ background jobs and the last-executed process substitution, if
+ its process id is the same as $\b$!\b!, and the return status is zero.
+ If the -\b-n\bn option is supplied, w\bwa\bai\bit\bt waits for a single job to
+ terminate and returns its exit status. Supplying the -\b-f\bf option,
+ when job control is enabled, forces w\bwa\bai\bit\bt to wait for _\bi_\bd to ter-
+ minate before returning its status, instead of returning when it
+ changes status. If _\bi_\bd specifies a non-existent process or job,
+ the return status is 127. Otherwise, the return status is the
+ exit status of the last process or job waited for.
R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
If b\bba\bas\bsh\bh is started with the name r\brb\bba\bas\bsh\bh, or the -\b-r\br option is supplied at
- invocation, the shell becomes restricted. A restricted shell is used
- to set up an environment more controlled than the standard shell. It
- behaves identically to b\bba\bas\bsh\bh with the exception that the following are
+ invocation, the shell becomes restricted. A restricted shell is used
+ to set up an environment more controlled than the standard shell. It
+ behaves identically to b\bba\bas\bsh\bh with the exception that the following are
disallowed or not performed:
+\bo changing directories with c\bcd\bd
+\bo specifying command names containing /\b/
- +\bo specifying a filename containing a /\b/ as an argument to the .\b.
+ +\bo specifying a filename containing a /\b/ as an argument to the .\b.
builtin command
- +\bo specifying a filename containing a slash as an argument to the
+ +\bo specifying a filename containing a slash as an argument to the
-\b-p\bp option to the h\bha\bas\bsh\bh builtin command
- +\bo importing function definitions from the shell environment at
+ +\bo importing function definitions from the shell environment at
startup
- +\bo parsing the value of S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS from the shell environment at
+ +\bo parsing the value of S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS from the shell environment at
startup
+\bo redirecting output using the >, >|, <>, >&, &>, and >> redirect-
+\bo using the e\bex\bxe\bec\bc builtin command to replace the shell with another
command
- +\bo adding or deleting builtin commands with the -\b-f\bf and -\b-d\bd options
+ +\bo adding or deleting builtin commands with the -\b-f\bf and -\b-d\bd options
to the e\ben\bna\bab\bbl\ble\be builtin command
- +\bo using the e\ben\bna\bab\bbl\ble\be builtin command to enable disabled shell
+ +\bo using the e\ben\bna\bab\bbl\ble\be builtin command to enable disabled shell
builtins
+\bo specifying the -\b-p\bp option to the c\bco\bom\bmm\bma\ban\bnd\bd builtin command
These restrictions are enforced after any startup files are read.
When a command that is found to be a shell script is executed (see C\bCO\bOM\bM-\b-
- M\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN above), r\brb\bba\bas\bsh\bh turns off any restrictions in the shell
+ M\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN above), r\brb\bba\bas\bsh\bh turns off any restrictions in the shell
spawned to execute the script.
S\bSE\bEE\bE A\bAL\bLS\bSO\bO
_\bB_\ba_\bs_\bh _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be _\bM_\ba_\bn_\bu_\ba_\bl, Brian Fox and Chet Ramey
_\bT_\bh_\be _\bG_\bn_\bu _\bR_\be_\ba_\bd_\bl_\bi_\bn_\be _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
_\bT_\bh_\be _\bG_\bn_\bu _\bH_\bi_\bs_\bt_\bo_\br_\by _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
- _\bP_\bo_\br_\bt_\ba_\bb_\bl_\be _\bO_\bp_\be_\br_\ba_\bt_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm _\bI_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\b(_\bP_\bO_\bS_\bI_\bX_\b) _\bP_\ba_\br_\bt _\b2_\b: _\bS_\bh_\be_\bl_\bl _\ba_\bn_\bd _\bU_\bt_\bi_\bl_\bi_\b-
+ _\bP_\bo_\br_\bt_\ba_\bb_\bl_\be _\bO_\bp_\be_\br_\ba_\bt_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm _\bI_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\b(_\bP_\bO_\bS_\bI_\bX_\b) _\bP_\ba_\br_\bt _\b2_\b: _\bS_\bh_\be_\bl_\bl _\ba_\bn_\bd _\bU_\bt_\bi_\bl_\bi_\b-
_\bt_\bi_\be_\bs, IEEE --
http://pubs.opengroup.org/onlinepubs/9699919799/
http://tiswww.case.edu/~chet/bash/POSIX -- a description of posix mode
_\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc
The individual per-interactive-shell startup file
_\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bo_\bu_\bt
- The individual login shell cleanup file, executed when a login
+ The individual login shell cleanup file, executed when a login
shell exits
_\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc
Individual _\br_\be_\ba_\bd_\bl_\bi_\bn_\be initialization file
B\bBU\bUG\bG R\bRE\bEP\bPO\bOR\bRT\bTS\bS
If you find a bug in b\bba\bas\bsh\bh,\b, you should report it. But first, you should
- make sure that it really is a bug, and that it appears in the latest
- version of b\bba\bas\bsh\bh. The latest version is always available from
+ make sure that it really is a bug, and that it appears in the latest
+ version of b\bba\bas\bsh\bh. The latest version is always available from
_\bf_\bt_\bp_\b:_\b/_\b/_\bf_\bt_\bp_\b._\bg_\bn_\bu_\b._\bo_\br_\bg_\b/_\bp_\bu_\bb_\b/_\bg_\bn_\bu_\b/_\bb_\ba_\bs_\bh_\b/.
- Once you have determined that a bug actually exists, use the _\bb_\ba_\bs_\bh_\bb_\bu_\bg
- command to submit a bug report. If you have a fix, you are encouraged
- to mail that as well! Suggestions and `philosophical' bug reports may
- be mailed to _\bb_\bu_\bg_\b-_\bb_\ba_\bs_\bh_\b@_\bg_\bn_\bu_\b._\bo_\br_\bg or posted to the Usenet newsgroup
+ Once you have determined that a bug actually exists, use the _\bb_\ba_\bs_\bh_\bb_\bu_\bg
+ command to submit a bug report. If you have a fix, you are encouraged
+ to mail that as well! Suggestions and `philosophical' bug reports may
+ be mailed to _\bb_\bu_\bg_\b-_\bb_\ba_\bs_\bh_\b@_\bg_\bn_\bu_\b._\bo_\br_\bg or posted to the Usenet newsgroup
g\bgn\bnu\bu.\b.b\bba\bas\bsh\bh.\b.b\bbu\bug\bg.
ALL bug reports should include:
A description of the bug behaviour
A short script or `recipe' which exercises the bug
- _\bb_\ba_\bs_\bh_\bb_\bu_\bg inserts the first three items automatically into the template
+ _\bb_\ba_\bs_\bh_\bb_\bu_\bg inserts the first three items automatically into the template
it provides for filing a bug report.
Comments and bug reports concerning this manual page should be directed
Shell builtin commands and functions are not stoppable/restartable.
Compound commands and command sequences of the form `a ; b ; c' are not
- handled gracefully when process suspension is attempted. When a
- process is stopped, the shell immediately executes the next command in
- the sequence. It suffices to place the sequence of commands between
- parentheses to force it into a subshell, which may be stopped as a
+ handled gracefully when process suspension is attempted. When a
+ process is stopped, the shell immediately executes the next command in
+ the sequence. It suffices to place the sequence of commands between
+ parentheses to force it into a subshell, which may be stopped as a
unit.
Array variables may not (yet) be exported.
the evaluation of the conditional expression
.IR expr .
Each operator and operand must be a separate argument.
-Expressions are composed of the primaries described above under
+.if \n(zZ=0 Expressions are composed of the primaries described above under
+.if \n(zZ=1 Expressions are composed of the primaries described in the \fBbash\fP manual page under
.SM
.BR "CONDITIONAL EXPRESSIONS" .
\fBtest\fP does not accept any options, nor does it accept and ignore
ID or a job specification; if a job spec is given, all processes
in that job's pipeline are waited for. If
.I id
-is not given, all currently active child processes
-are waited for, and the return status is zero.
+is not given,
+\fBwait\fP waits for all running background jobs and
+the last-executed process substitution, if its process id is the same as
+\fB$!\fP,
+and the return status is zero.
If the \fB\-n\fP option is supplied, \fBwait\fP waits for a single job
to terminate and returns its exit status.
Supplying the \fB\-f\fP option, when job control is enabled,
in that job's pipeline are waited for. If
<I>id</I>
-is not given, all currently active child processes
-are waited for, and the return status is zero.
+is not given,
+<B>wait</B> waits for all running background jobs and
+the last-executed process substitution, if its process id is the same as
+<B>$!</B>,
+and the return status is zero.
If the <B>-n</B> option is supplied, <B>wait</B> waits for a single job
to terminate and returns its exit status.
Supplying the <B>-f</B> option, when job control is enabled,
</DL>
<HR>
This document was created by man2html from bash.1.<BR>
-Time: 20 May 2019 14:36:28 EDT
+Time: 12 June 2019 15:27:00 EDT
</BODY>
</HTML>
bashref.texi.
This text is a brief description of the features that are present in the
-Bash shell (version 5.0, 20 May 2019).
+Bash shell (version 5.0, 12 June 2019).
- This is Edition 5.0, last updated 20 May 2019, of 'The GNU Bash
+ This is Edition 5.0, last updated 12 June 2019, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.0.
Copyright (C) 1988-2018 Free Software Foundation, Inc.
*************
This text is a brief description of the features that are present in the
-Bash shell (version 5.0, 20 May 2019). The Bash home page is
+Bash shell (version 5.0, 12 June 2019). The Bash home page is
<http://www.gnu.org/software/bash/>.
- This is Edition 5.0, last updated 20 May 2019, of 'The GNU Bash
+ This is Edition 5.0, last updated 12 June 2019, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.0.
Bash contains features that appear in other popular shells, and some
Wait until the child process specified by each process ID PID or
job specification JOBSPEC exits and return the exit status of the
last command waited for. If a job spec is given, all processes in
- the job are waited for. If no arguments are given, all currently
- active child processes are waited for, and the return status is
- zero. If the '-n' option is supplied, 'wait' waits for a single
- job to terminate and returns its exit status. Supplying the '-f'
- option, when job control is enabled, forces 'wait' to wait for each
- PID or JOBSPEC to terminate before returning its status, intead of
- returning when it changes status. If neither JOBSPEC nor PID
- specifies an active child process of the shell, the return status
- is 127.
+ the job are waited for. If no arguments are given, 'wait' waits
+ for all running background jobs and the last-executed process
+ substitution, if its process id is the same as $!, and the return
+ status is zero. If the '-n' option is supplied, 'wait' waits for a
+ single job to terminate and returns its exit status. Supplying the
+ '-f' option, when job control is enabled, forces 'wait' to wait for
+ each PID or JOBSPEC to terminate before returning its status,
+ intead of returning when it changes status. If neither JOBSPEC nor
+ PID specifies an active child process of the shell, the return
+ status is 127.
'disown'
disown [-ar] [-h] [JOBSPEC ... | PID ... ]
* dirs: Directory Stack Builtins.
(line 7)
* disown: Job Control Builtins.
- (line 92)
+ (line 93)
* echo: Bash Builtins. (line 246)
* enable: Bash Builtins. (line 295)
* eval: Bourne Shell Builtins.
* shopt: The Shopt Builtin. (line 9)
* source: Bash Builtins. (line 563)
* suspend: Job Control Builtins.
- (line 104)
+ (line 105)
* test: Bourne Shell Builtins.
(line 269)
* times: Bourne Shell Builtins.
\1f
Tag Table:
-Node: Top\7f887
-Node: Introduction\7f2797
-Node: What is Bash?\7f3013
-Node: What is a shell?\7f4127
-Node: Definitions\7f6665
-Node: Basic Shell Features\7f9616
-Node: Shell Syntax\7f10835
-Node: Shell Operation\7f11861
-Node: Quoting\7f13154
-Node: Escape Character\7f14454
-Node: Single Quotes\7f14939
-Node: Double Quotes\7f15287
-Node: ANSI-C Quoting\7f16565
-Node: Locale Translation\7f17824
-Node: Comments\7f18720
-Node: Shell Commands\7f19338
-Node: Simple Commands\7f20210
-Node: Pipelines\7f20841
-Node: Lists\7f23773
-Node: Compound Commands\7f25564
-Node: Looping Constructs\7f26576
-Node: Conditional Constructs\7f29071
-Node: Command Grouping\7f40239
-Node: Coprocesses\7f41718
-Node: GNU Parallel\7f43621
-Node: Shell Functions\7f47679
-Node: Shell Parameters\7f54762
-Node: Positional Parameters\7f59175
-Node: Special Parameters\7f60075
-Node: Shell Expansions\7f63829
-Node: Brace Expansion\7f65952
-Node: Tilde Expansion\7f68675
-Node: Shell Parameter Expansion\7f71292
-Node: Command Substitution\7f85725
-Node: Arithmetic Expansion\7f87080
-Node: Process Substitution\7f88012
-Node: Word Splitting\7f89132
-Node: Filename Expansion\7f91076
-Node: Pattern Matching\7f93606
-Node: Quote Removal\7f97592
-Node: Redirections\7f97887
-Node: Executing Commands\7f107445
-Node: Simple Command Expansion\7f108115
-Node: Command Search and Execution\7f110045
-Node: Command Execution Environment\7f112421
-Node: Environment\7f115405
-Node: Exit Status\7f117064
-Node: Signals\7f118734
-Node: Shell Scripts\7f120701
-Node: Shell Builtin Commands\7f123216
-Node: Bourne Shell Builtins\7f125254
-Node: Bash Builtins\7f146004
-Node: Modifying Shell Behavior\7f174929
-Node: The Set Builtin\7f175274
-Node: The Shopt Builtin\7f185687
-Node: Special Builtins\7f203357
-Node: Shell Variables\7f204336
-Node: Bourne Shell Variables\7f204773
-Node: Bash Variables\7f206877
-Node: Bash Features\7f237824
-Node: Invoking Bash\7f238723
-Node: Bash Startup Files\7f244736
-Node: Interactive Shells\7f249839
-Node: What is an Interactive Shell?\7f250249
-Node: Is this Shell Interactive?\7f250898
-Node: Interactive Shell Behavior\7f251713
-Node: Bash Conditional Expressions\7f255200
-Node: Shell Arithmetic\7f259777
-Node: Aliases\7f262594
-Node: Arrays\7f265214
-Node: The Directory Stack\7f270579
-Node: Directory Stack Builtins\7f271363
-Node: Controlling the Prompt\7f274331
-Node: The Restricted Shell\7f277252
-Node: Bash POSIX Mode\7f279734
-Node: Job Control\7f290667
-Node: Job Control Basics\7f291127
-Node: Job Control Builtins\7f296091
-Node: Job Control Variables\7f300831
-Node: Command Line Editing\7f301987
-Node: Introduction and Notation\7f303658
-Node: Readline Interaction\7f305281
-Node: Readline Bare Essentials\7f306472
-Node: Readline Movement Commands\7f308255
-Node: Readline Killing Commands\7f309215
-Node: Readline Arguments\7f311133
-Node: Searching\7f312177
-Node: Readline Init File\7f314363
-Node: Readline Init File Syntax\7f315622
-Node: Conditional Init Constructs\7f336061
-Node: Sample Init File\7f340257
-Node: Bindable Readline Commands\7f343374
-Node: Commands For Moving\7f344578
-Node: Commands For History\7f346427
-Node: Commands For Text\7f350722
-Node: Commands For Killing\7f354110
-Node: Numeric Arguments\7f356591
-Node: Commands For Completion\7f357730
-Node: Keyboard Macros\7f361921
-Node: Miscellaneous Commands\7f362608
-Node: Readline vi Mode\7f368561
-Node: Programmable Completion\7f369468
-Node: Programmable Completion Builtins\7f377248
-Node: A Programmable Completion Example\7f387943
-Node: Using History Interactively\7f393190
-Node: Bash History Facilities\7f393874
-Node: Bash History Builtins\7f396879
-Node: History Interaction\7f401410
-Node: Event Designators\7f405030
-Node: Word Designators\7f406249
-Node: Modifiers\7f407886
-Node: Installing Bash\7f409288
-Node: Basic Installation\7f410425
-Node: Compilers and Options\7f413683
-Node: Compiling For Multiple Architectures\7f414424
-Node: Installation Names\7f416117
-Node: Specifying the System Type\7f416935
-Node: Sharing Defaults\7f417651
-Node: Operation Controls\7f418324
-Node: Optional Features\7f419282
-Node: Reporting Bugs\7f429800
-Node: Major Differences From The Bourne Shell\7f430994
-Node: GNU Free Documentation License\7f447846
-Node: Indexes\7f473023
-Node: Builtin Index\7f473477
-Node: Reserved Word Index\7f480304
-Node: Variable Index\7f482752
-Node: Function Index\7f498576
-Node: Concept Index\7f511879
+Node: Top\7f889
+Node: Introduction\7f2801
+Node: What is Bash?\7f3017
+Node: What is a shell?\7f4131
+Node: Definitions\7f6669
+Node: Basic Shell Features\7f9620
+Node: Shell Syntax\7f10839
+Node: Shell Operation\7f11865
+Node: Quoting\7f13158
+Node: Escape Character\7f14458
+Node: Single Quotes\7f14943
+Node: Double Quotes\7f15291
+Node: ANSI-C Quoting\7f16569
+Node: Locale Translation\7f17828
+Node: Comments\7f18724
+Node: Shell Commands\7f19342
+Node: Simple Commands\7f20214
+Node: Pipelines\7f20845
+Node: Lists\7f23777
+Node: Compound Commands\7f25568
+Node: Looping Constructs\7f26580
+Node: Conditional Constructs\7f29075
+Node: Command Grouping\7f40243
+Node: Coprocesses\7f41722
+Node: GNU Parallel\7f43625
+Node: Shell Functions\7f47683
+Node: Shell Parameters\7f54766
+Node: Positional Parameters\7f59179
+Node: Special Parameters\7f60079
+Node: Shell Expansions\7f63833
+Node: Brace Expansion\7f65956
+Node: Tilde Expansion\7f68679
+Node: Shell Parameter Expansion\7f71296
+Node: Command Substitution\7f85729
+Node: Arithmetic Expansion\7f87084
+Node: Process Substitution\7f88016
+Node: Word Splitting\7f89136
+Node: Filename Expansion\7f91080
+Node: Pattern Matching\7f93610
+Node: Quote Removal\7f97596
+Node: Redirections\7f97891
+Node: Executing Commands\7f107449
+Node: Simple Command Expansion\7f108119
+Node: Command Search and Execution\7f110049
+Node: Command Execution Environment\7f112425
+Node: Environment\7f115409
+Node: Exit Status\7f117068
+Node: Signals\7f118738
+Node: Shell Scripts\7f120705
+Node: Shell Builtin Commands\7f123220
+Node: Bourne Shell Builtins\7f125258
+Node: Bash Builtins\7f146008
+Node: Modifying Shell Behavior\7f174933
+Node: The Set Builtin\7f175278
+Node: The Shopt Builtin\7f185691
+Node: Special Builtins\7f203361
+Node: Shell Variables\7f204340
+Node: Bourne Shell Variables\7f204777
+Node: Bash Variables\7f206881
+Node: Bash Features\7f237828
+Node: Invoking Bash\7f238727
+Node: Bash Startup Files\7f244740
+Node: Interactive Shells\7f249843
+Node: What is an Interactive Shell?\7f250253
+Node: Is this Shell Interactive?\7f250902
+Node: Interactive Shell Behavior\7f251717
+Node: Bash Conditional Expressions\7f255204
+Node: Shell Arithmetic\7f259781
+Node: Aliases\7f262598
+Node: Arrays\7f265218
+Node: The Directory Stack\7f270583
+Node: Directory Stack Builtins\7f271367
+Node: Controlling the Prompt\7f274335
+Node: The Restricted Shell\7f277256
+Node: Bash POSIX Mode\7f279738
+Node: Job Control\7f290671
+Node: Job Control Basics\7f291131
+Node: Job Control Builtins\7f296095
+Node: Job Control Variables\7f300913
+Node: Command Line Editing\7f302069
+Node: Introduction and Notation\7f303740
+Node: Readline Interaction\7f305363
+Node: Readline Bare Essentials\7f306554
+Node: Readline Movement Commands\7f308337
+Node: Readline Killing Commands\7f309297
+Node: Readline Arguments\7f311215
+Node: Searching\7f312259
+Node: Readline Init File\7f314445
+Node: Readline Init File Syntax\7f315704
+Node: Conditional Init Constructs\7f336143
+Node: Sample Init File\7f340339
+Node: Bindable Readline Commands\7f343456
+Node: Commands For Moving\7f344660
+Node: Commands For History\7f346509
+Node: Commands For Text\7f350804
+Node: Commands For Killing\7f354192
+Node: Numeric Arguments\7f356673
+Node: Commands For Completion\7f357812
+Node: Keyboard Macros\7f362003
+Node: Miscellaneous Commands\7f362690
+Node: Readline vi Mode\7f368643
+Node: Programmable Completion\7f369550
+Node: Programmable Completion Builtins\7f377330
+Node: A Programmable Completion Example\7f388025
+Node: Using History Interactively\7f393272
+Node: Bash History Facilities\7f393956
+Node: Bash History Builtins\7f396961
+Node: History Interaction\7f401492
+Node: Event Designators\7f405112
+Node: Word Designators\7f406331
+Node: Modifiers\7f407968
+Node: Installing Bash\7f409370
+Node: Basic Installation\7f410507
+Node: Compilers and Options\7f413765
+Node: Compiling For Multiple Architectures\7f414506
+Node: Installation Names\7f416199
+Node: Specifying the System Type\7f417017
+Node: Sharing Defaults\7f417733
+Node: Operation Controls\7f418406
+Node: Optional Features\7f419364
+Node: Reporting Bugs\7f429882
+Node: Major Differences From The Bourne Shell\7f431076
+Node: GNU Free Documentation License\7f447928
+Node: Indexes\7f473105
+Node: Builtin Index\7f473559
+Node: Reserved Word Index\7f480386
+Node: Variable Index\7f482834
+Node: Function Index\7f498658
+Node: Concept Index\7f511961
\1f
End Tag Table
%!PS-Adobe-3.0
%%Creator: groff version 1.22.3
-%%CreationDate: Mon May 20 14:36:19 2019
+%%CreationDate: Wed Jun 12 15:26:50 2019
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
3.929 F .009(ID or a job speci\214cation; if a job spec is gi)144 636 R
-.15(ve)-.25 G .008(n, all processes in that job').15 F 2.508(sp)-.55 G
.008(ipeline are w)-2.508 F .008(aited for)-.1 F 5.008(.I)-.55 G(f)
--5.008 E F2(id)144.01 648 Q F0 .521(is not gi)3.791 F -.15(ve)-.25 G
-.521(n, all currently acti).15 F .821 -.15(ve c)-.25 H .521
-(hild processes are w).15 F .521(aited for)-.1 F 3.021(,a)-.4 G .521
-(nd the return status is zero.)-3.021 F(If)5.522 E(the)144 660 Q F1
-<ad6e>2.948 E F0 .448(option is supplied,)2.948 F F1(wait)2.948 E F0 -.1
-(wa)2.948 G .448(its for a single job to terminate and returns its e).1
-F .447(xit status.)-.15 F(Sup-)5.447 E 1.023(plying the)144 672 R F1
-<ad66>3.523 E F0 1.023(option, when job control is enabled, forces)3.523
-F F1(wait)3.524 E F0 1.024(to w)3.524 F 1.024(ait for)-.1 F F2(id)3.524
-E F0 1.024(to terminate before)3.524 F 1.835
-(returning its status, instead of returning when it changes status.)144
-684 R(If)6.835 E F2(id)4.345 E F0 1.835(speci\214es a non-e)5.105 F
-(xistent)-.15 E 1.022(process or job, the return status is 127.)144 696
-R 1.023(Otherwise, the return status is the e)6.023 F 1.023
-(xit status of the last)-.15 F(process or job w)144 708 Q(aited for)-.1
-E(.)-.55 E(GNU Bash 5.0)72 768 Q(2019 May 20)148.175 E(79)197.335 E 0 Cg
-EP
+-5.008 E F2(id)144.01 648 Q F0 .441(is not gi)3.711 F -.15(ve)-.25 G(n,)
+.15 E F1(wait)2.941 E F0 -.1(wa)2.941 G .441
+(its for all running background jobs and the last-e).1 F -.15(xe)-.15 G
+.442(cuted process substitu-).15 F .598
+(tion, if its process id is the same as)144 660 R F1($!)3.098 E F0 3.098
+(,a)C .598(nd the return status is zero.)-3.098 F .597(If the)5.597 F F1
+<ad6e>3.097 E F0 .597(option is supplied,)3.097 F F1(wait)144 672 Q F0
+-.1(wa)3.056 G .556(its for a single job to terminate and returns its e)
+.1 F .557(xit status.)-.15 F .557(Supplying the)5.557 F F1<ad66>3.057 E
+F0 .557(option, when)3.057 F .346(job control is enabled, forces)144 684
+R F1(wait)2.846 E F0 .346(to w)2.846 F .346(ait for)-.1 F F2(id)2.846 E
+F0 .346(to terminate before returning its status, instead of)2.846 F
+.599(returning when it changes status.)144 696 R(If)5.599 E F2(id)3.109
+E F0 .599(speci\214es a non-e)3.869 F .6
+(xistent process or job, the return status is)-.15 F 2.5
+(127. Otherwise,)144 708 R(the return status is the e)2.5 E
+(xit status of the last process or job w)-.15 E(aited for)-.1 E(.)-.55 E
+(GNU Bash 5.0)72 768 Q(2019 May 20)148.175 E(79)197.335 E 0 Cg EP
%%Page: 80 80
%%BeginPageSetup
BP
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This text is a brief description of the features that are present in
-the Bash shell (version 5.0, 20 May 2019).
+the Bash shell (version 5.0, 12 June 2019).
-This is Edition 5.0, last updated 20 May 2019,
+This is Edition 5.0, last updated 12 June 2019,
of The GNU Bash Reference Manual,
for Bash, Version 5.0.
<h1 class="top">Bash Features</h1>
<p>This text is a brief description of the features that are present in
-the Bash shell (version 5.0, 20 May 2019).
+the Bash shell (version 5.0, 12 June 2019).
The Bash home page is <a href="http://www.gnu.org/software/bash/">http://www.gnu.org/software/bash/</a>.
</p>
-<p>This is Edition 5.0, last updated 20 May 2019,
+<p>This is Edition 5.0, last updated 12 June 2019,
of <cite>The GNU Bash Reference Manual</cite>,
for <code>Bash</code>, Version 5.0.
</p>
or job specification <var>jobspec</var> exits and return the exit status of the
last command waited for.
If a job spec is given, all processes in the job are waited for.
-If no arguments are given, all currently active child processes are
-waited for, and the return status is zero.
+If no arguments are given,
+<code>wait</code> waits for all running background jobs and
+the last-executed process substitution, if its process id is the same as
+<var>$!</var>,
+and the return status is zero.
If the <samp>-n</samp> option is supplied, <code>wait</code> waits for a single job
to terminate and returns its exit status.
Supplying the <samp>-f</samp> option, when job control is enabled,
bashref.texi.
This text is a brief description of the features that are present in the
-Bash shell (version 5.0, 20 May 2019).
+Bash shell (version 5.0, 12 June 2019).
- This is Edition 5.0, last updated 20 May 2019, of 'The GNU Bash
+ This is Edition 5.0, last updated 12 June 2019, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.0.
Copyright (C) 1988-2018 Free Software Foundation, Inc.
*************
This text is a brief description of the features that are present in the
-Bash shell (version 5.0, 20 May 2019). The Bash home page is
+Bash shell (version 5.0, 12 June 2019). The Bash home page is
<http://www.gnu.org/software/bash/>.
- This is Edition 5.0, last updated 20 May 2019, of 'The GNU Bash
+ This is Edition 5.0, last updated 12 June 2019, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.0.
Bash contains features that appear in other popular shells, and some
Wait until the child process specified by each process ID PID or
job specification JOBSPEC exits and return the exit status of the
last command waited for. If a job spec is given, all processes in
- the job are waited for. If no arguments are given, all currently
- active child processes are waited for, and the return status is
- zero. If the '-n' option is supplied, 'wait' waits for a single
- job to terminate and returns its exit status. Supplying the '-f'
- option, when job control is enabled, forces 'wait' to wait for each
- PID or JOBSPEC to terminate before returning its status, intead of
- returning when it changes status. If neither JOBSPEC nor PID
- specifies an active child process of the shell, the return status
- is 127.
+ the job are waited for. If no arguments are given, 'wait' waits
+ for all running background jobs and the last-executed process
+ substitution, if its process id is the same as $!, and the return
+ status is zero. If the '-n' option is supplied, 'wait' waits for a
+ single job to terminate and returns its exit status. Supplying the
+ '-f' option, when job control is enabled, forces 'wait' to wait for
+ each PID or JOBSPEC to terminate before returning its status,
+ intead of returning when it changes status. If neither JOBSPEC nor
+ PID specifies an active child process of the shell, the return
+ status is 127.
'disown'
disown [-ar] [-h] [JOBSPEC ... | PID ... ]
* dirs: Directory Stack Builtins.
(line 7)
* disown: Job Control Builtins.
- (line 92)
+ (line 93)
* echo: Bash Builtins. (line 246)
* enable: Bash Builtins. (line 295)
* eval: Bourne Shell Builtins.
* shopt: The Shopt Builtin. (line 9)
* source: Bash Builtins. (line 563)
* suspend: Job Control Builtins.
- (line 104)
+ (line 105)
* test: Bourne Shell Builtins.
(line 269)
* times: Bourne Shell Builtins.
\1f
Tag Table:
-Node: Top\7f887
-Node: Introduction\7f2797
-Node: What is Bash?\7f3013
-Node: What is a shell?\7f4127
-Node: Definitions\7f6665
-Node: Basic Shell Features\7f9616
-Node: Shell Syntax\7f10835
-Node: Shell Operation\7f11861
-Node: Quoting\7f13154
-Node: Escape Character\7f14454
-Node: Single Quotes\7f14939
-Node: Double Quotes\7f15287
-Node: ANSI-C Quoting\7f16565
-Node: Locale Translation\7f17824
-Node: Comments\7f18720
-Node: Shell Commands\7f19338
-Node: Simple Commands\7f20210
-Node: Pipelines\7f20841
-Node: Lists\7f23773
-Node: Compound Commands\7f25564
-Node: Looping Constructs\7f26576
-Node: Conditional Constructs\7f29071
-Node: Command Grouping\7f40239
-Node: Coprocesses\7f41718
-Node: GNU Parallel\7f43621
-Node: Shell Functions\7f47679
-Node: Shell Parameters\7f54762
-Node: Positional Parameters\7f59175
-Node: Special Parameters\7f60075
-Node: Shell Expansions\7f63829
-Node: Brace Expansion\7f65952
-Node: Tilde Expansion\7f68675
-Node: Shell Parameter Expansion\7f71292
-Node: Command Substitution\7f85725
-Node: Arithmetic Expansion\7f87080
-Node: Process Substitution\7f88012
-Node: Word Splitting\7f89132
-Node: Filename Expansion\7f91076
-Node: Pattern Matching\7f93606
-Node: Quote Removal\7f97592
-Node: Redirections\7f97887
-Node: Executing Commands\7f107445
-Node: Simple Command Expansion\7f108115
-Node: Command Search and Execution\7f110045
-Node: Command Execution Environment\7f112421
-Node: Environment\7f115405
-Node: Exit Status\7f117064
-Node: Signals\7f118734
-Node: Shell Scripts\7f120701
-Node: Shell Builtin Commands\7f123216
-Node: Bourne Shell Builtins\7f125254
-Node: Bash Builtins\7f146004
-Node: Modifying Shell Behavior\7f174929
-Node: The Set Builtin\7f175274
-Node: The Shopt Builtin\7f185687
-Node: Special Builtins\7f203357
-Node: Shell Variables\7f204336
-Node: Bourne Shell Variables\7f204773
-Node: Bash Variables\7f206877
-Node: Bash Features\7f237824
-Node: Invoking Bash\7f238723
-Node: Bash Startup Files\7f244736
-Node: Interactive Shells\7f249839
-Node: What is an Interactive Shell?\7f250249
-Node: Is this Shell Interactive?\7f250898
-Node: Interactive Shell Behavior\7f251713
-Node: Bash Conditional Expressions\7f255200
-Node: Shell Arithmetic\7f259777
-Node: Aliases\7f262594
-Node: Arrays\7f265214
-Node: The Directory Stack\7f270579
-Node: Directory Stack Builtins\7f271363
-Node: Controlling the Prompt\7f274331
-Node: The Restricted Shell\7f277252
-Node: Bash POSIX Mode\7f279734
-Node: Job Control\7f290667
-Node: Job Control Basics\7f291127
-Node: Job Control Builtins\7f296091
-Node: Job Control Variables\7f300831
-Node: Command Line Editing\7f301987
-Node: Introduction and Notation\7f303658
-Node: Readline Interaction\7f305281
-Node: Readline Bare Essentials\7f306472
-Node: Readline Movement Commands\7f308255
-Node: Readline Killing Commands\7f309215
-Node: Readline Arguments\7f311133
-Node: Searching\7f312177
-Node: Readline Init File\7f314363
-Node: Readline Init File Syntax\7f315622
-Node: Conditional Init Constructs\7f336061
-Node: Sample Init File\7f340257
-Node: Bindable Readline Commands\7f343374
-Node: Commands For Moving\7f344578
-Node: Commands For History\7f346427
-Node: Commands For Text\7f350722
-Node: Commands For Killing\7f354110
-Node: Numeric Arguments\7f356591
-Node: Commands For Completion\7f357730
-Node: Keyboard Macros\7f361921
-Node: Miscellaneous Commands\7f362608
-Node: Readline vi Mode\7f368561
-Node: Programmable Completion\7f369468
-Node: Programmable Completion Builtins\7f377248
-Node: A Programmable Completion Example\7f387943
-Node: Using History Interactively\7f393190
-Node: Bash History Facilities\7f393874
-Node: Bash History Builtins\7f396879
-Node: History Interaction\7f401410
-Node: Event Designators\7f405030
-Node: Word Designators\7f406249
-Node: Modifiers\7f407886
-Node: Installing Bash\7f409288
-Node: Basic Installation\7f410425
-Node: Compilers and Options\7f413683
-Node: Compiling For Multiple Architectures\7f414424
-Node: Installation Names\7f416117
-Node: Specifying the System Type\7f416935
-Node: Sharing Defaults\7f417651
-Node: Operation Controls\7f418324
-Node: Optional Features\7f419282
-Node: Reporting Bugs\7f429800
-Node: Major Differences From The Bourne Shell\7f430994
-Node: GNU Free Documentation License\7f447846
-Node: Indexes\7f473023
-Node: Builtin Index\7f473477
-Node: Reserved Word Index\7f480304
-Node: Variable Index\7f482752
-Node: Function Index\7f498576
-Node: Concept Index\7f511879
+Node: Top\7f889
+Node: Introduction\7f2801
+Node: What is Bash?\7f3017
+Node: What is a shell?\7f4131
+Node: Definitions\7f6669
+Node: Basic Shell Features\7f9620
+Node: Shell Syntax\7f10839
+Node: Shell Operation\7f11865
+Node: Quoting\7f13158
+Node: Escape Character\7f14458
+Node: Single Quotes\7f14943
+Node: Double Quotes\7f15291
+Node: ANSI-C Quoting\7f16569
+Node: Locale Translation\7f17828
+Node: Comments\7f18724
+Node: Shell Commands\7f19342
+Node: Simple Commands\7f20214
+Node: Pipelines\7f20845
+Node: Lists\7f23777
+Node: Compound Commands\7f25568
+Node: Looping Constructs\7f26580
+Node: Conditional Constructs\7f29075
+Node: Command Grouping\7f40243
+Node: Coprocesses\7f41722
+Node: GNU Parallel\7f43625
+Node: Shell Functions\7f47683
+Node: Shell Parameters\7f54766
+Node: Positional Parameters\7f59179
+Node: Special Parameters\7f60079
+Node: Shell Expansions\7f63833
+Node: Brace Expansion\7f65956
+Node: Tilde Expansion\7f68679
+Node: Shell Parameter Expansion\7f71296
+Node: Command Substitution\7f85729
+Node: Arithmetic Expansion\7f87084
+Node: Process Substitution\7f88016
+Node: Word Splitting\7f89136
+Node: Filename Expansion\7f91080
+Node: Pattern Matching\7f93610
+Node: Quote Removal\7f97596
+Node: Redirections\7f97891
+Node: Executing Commands\7f107449
+Node: Simple Command Expansion\7f108119
+Node: Command Search and Execution\7f110049
+Node: Command Execution Environment\7f112425
+Node: Environment\7f115409
+Node: Exit Status\7f117068
+Node: Signals\7f118738
+Node: Shell Scripts\7f120705
+Node: Shell Builtin Commands\7f123220
+Node: Bourne Shell Builtins\7f125258
+Node: Bash Builtins\7f146008
+Node: Modifying Shell Behavior\7f174933
+Node: The Set Builtin\7f175278
+Node: The Shopt Builtin\7f185691
+Node: Special Builtins\7f203361
+Node: Shell Variables\7f204340
+Node: Bourne Shell Variables\7f204777
+Node: Bash Variables\7f206881
+Node: Bash Features\7f237828
+Node: Invoking Bash\7f238727
+Node: Bash Startup Files\7f244740
+Node: Interactive Shells\7f249843
+Node: What is an Interactive Shell?\7f250253
+Node: Is this Shell Interactive?\7f250902
+Node: Interactive Shell Behavior\7f251717
+Node: Bash Conditional Expressions\7f255204
+Node: Shell Arithmetic\7f259781
+Node: Aliases\7f262598
+Node: Arrays\7f265218
+Node: The Directory Stack\7f270583
+Node: Directory Stack Builtins\7f271367
+Node: Controlling the Prompt\7f274335
+Node: The Restricted Shell\7f277256
+Node: Bash POSIX Mode\7f279738
+Node: Job Control\7f290671
+Node: Job Control Basics\7f291131
+Node: Job Control Builtins\7f296095
+Node: Job Control Variables\7f300913
+Node: Command Line Editing\7f302069
+Node: Introduction and Notation\7f303740
+Node: Readline Interaction\7f305363
+Node: Readline Bare Essentials\7f306554
+Node: Readline Movement Commands\7f308337
+Node: Readline Killing Commands\7f309297
+Node: Readline Arguments\7f311215
+Node: Searching\7f312259
+Node: Readline Init File\7f314445
+Node: Readline Init File Syntax\7f315704
+Node: Conditional Init Constructs\7f336143
+Node: Sample Init File\7f340339
+Node: Bindable Readline Commands\7f343456
+Node: Commands For Moving\7f344660
+Node: Commands For History\7f346509
+Node: Commands For Text\7f350804
+Node: Commands For Killing\7f354192
+Node: Numeric Arguments\7f356673
+Node: Commands For Completion\7f357812
+Node: Keyboard Macros\7f362003
+Node: Miscellaneous Commands\7f362690
+Node: Readline vi Mode\7f368643
+Node: Programmable Completion\7f369550
+Node: Programmable Completion Builtins\7f377330
+Node: A Programmable Completion Example\7f388025
+Node: Using History Interactively\7f393272
+Node: Bash History Facilities\7f393956
+Node: Bash History Builtins\7f396961
+Node: History Interaction\7f401492
+Node: Event Designators\7f405112
+Node: Word Designators\7f406331
+Node: Modifiers\7f407968
+Node: Installing Bash\7f409370
+Node: Basic Installation\7f410507
+Node: Compilers and Options\7f413765
+Node: Compiling For Multiple Architectures\7f414506
+Node: Installation Names\7f416199
+Node: Specifying the System Type\7f417017
+Node: Sharing Defaults\7f417733
+Node: Operation Controls\7f418406
+Node: Optional Features\7f419364
+Node: Reporting Bugs\7f429882
+Node: Major Differences From The Bourne Shell\7f431076
+Node: GNU Free Documentation License\7f447928
+Node: Indexes\7f473105
+Node: Builtin Index\7f473559
+Node: Reserved Word Index\7f480386
+Node: Variable Index\7f482834
+Node: Function Index\7f498658
+Node: Concept Index\7f511961
\1f
End Tag Table
-This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018/MacPorts 2018.47642_7) (preloaded format=pdfetex 2019.1.16) 20 MAY 2019 14:36
+This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018/MacPorts 2018.47642_7) (preloaded format=pdfetex 2019.1.16) 12 JUN 2019 15:27
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**\input /usr/homes/chet/src/bash/src/doc/bashref.texi
(/usr/homes/chet/src/bash/src/doc/bashref.texi
-(/Users/chet/src/bash/src/doc/texinfo.tex
+(/usr/homes/chet/src/bash/src/doc/texinfo.tex
Loading texinfo [version 2015-11-22.14]:
\outerhsize=\dimen16
\outervsize=\dimen17
texinfo.tex: doing @include of version.texi
-(/Users/chet/src/bash/src/doc/version.texi) [1{/opt/local/var/db/texmf/fonts/ma
-p/pdftex/updmap/pdftex.map}] [2] (/Users/chet/src/bash/src/doc/bashref.toc
-[-1] [-2] [-3]) [-4] (/Users/chet/src/bash/src/doc/bashref.toc)
-(/Users/chet/src/bash/src/doc/bashref.toc) Chapter 1
+(/usr/homes/chet/src/bash/src/doc/version.texi) [1{/opt/local/var/db/texmf/font
+s/map/pdftex/updmap/pdftex.map}] [2]
+(/usr/homes/chet/src/bash/src/doc/bashref.toc [-1] [-2] [-3]) [-4]
+(/usr/homes/chet/src/bash/src/doc/bashref.toc)
+(/usr/homes/chet/src/bash/src/doc/bashref.toc) Chapter 1
\openout0 = `bashref.toc'.
-(/Users/chet/src/bash/src/doc/bashref.aux)
+(/usr/homes/chet/src/bash/src/doc/bashref.aux)
\openout1 = `bashref.aux'.
Chapter 2 [1] [2]
[162] Appendix C [163]
texinfo.tex: doing @include of fdl.texi
- (/Users/chet/src/bash/src/doc/fdl.texi [164] [165]
-[166] [167] [168] [169] [170]) Appendix D [171] [172] [173] [174] [175]
+ (/usr/homes/chet/src/bash/src/doc/fdl.texi [164]
+[165] [166] [167] [168] [169] [170]) Appendix D [171] [172] [173] [174]
+[175]
Overfull \vbox (0.67252pt too high) has occurred while \output is active
\vbox(340.17245+0.0)x207.80492
.\glue(\topskip) 0.0
[176] [177] [178] [179] [180] )
Here is how much of TeX's memory you used:
- 4068 strings out of 497100
- 47087 string characters out of 6206794
- 136969 words of memory out of 5000000
+ 4067 strings out of 497100
+ 47114 string characters out of 6206794
+ 136971 words of memory out of 5000000
4846 multiletter control sequences out of 15000+600000
34315 words of font info for 116 fonts, out of 8000000 for 9000
51 hyphenation exceptions out of 8191
e1/public/amsfonts/cm/cmtt9.pfb></opt/local/share/texmf-texlive/fonts/type1/pub
lic/cm-super/sfrm1095.pfb></opt/local/share/texmf-texlive/fonts/type1/public/cm
-super/sfrm1440.pfb>
-Output written on bashref.pdf (186 pages, 755029 bytes).
+Output written on bashref.pdf (186 pages, 755246 bytes).
PDF statistics:
2634 PDF objects out of 2984 (max. 8388607)
2402 compressed objects within 25 object streams
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.998 Copyright 2018 Radical Eye Software
%%Title: bashref.dvi
-%%CreationDate: Mon May 20 18:36:26 2019
+%%CreationDate: Wed Jun 12 19:26:57 2019
%%Pages: 186
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi
%DVIPSParameters: dpi=600
-%DVIPSSource: TeX output 2019.05.20:1436
+%DVIPSSource: TeX output 2019.06.12:1526
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
dup 11 /ff put
dup 12 /fi put
dup 14 /ffi put
+dup 33 /exclam put
dup 36 /dollar put
dup 45 /hyphen put
dup 49 /one put
22570150178893C418531769CB3D96F799BF1C6415820F96B6EFAB5344E82796
38A0DF66609F5EA332C1065274EC93027D264B84B52AA8AD82E13E2A41AED340
B240D1888CB89FBB748FD10B214773D466A44AA2AF44371CA8B9A4450DA76EDC
-0167B4015A270B9983B89EFFA023A3DFFDE181B90C51D70557B0844362B0652A
-6345C6EC83DFEFE099455232455943718297254186940D6305C96EE2B9E3E7C9
-A622D25E0471AC31A8ED3AF8897BD19E322CFC3BD3860D8A0634081D9AF53A9D
-84F4ED39D8127CBCAF9AD48E9CBD10A67A2CD0CF93D61B05DA38E98D5DD8A805
-FB9774EDA40EA0BB44E1795C5826022F3D20F30569D86C3FA13E1E4024BDE38D
-4D3D1BA8B063146DD129739FAB9FBEF85236DAEBB462BD424F7E97B2310556B6
-5B13C70CD7423B6DD024E053FB603801A398761BC030C7889ED6D24A1F05C48A
-D5239EDC8BE23B4883D7312096DAA334A3F3E1567B92F3766867E9910C8F685C
-9DD1FCE797555BEEC6C8D2E3FD919B81A951EF6D6C42F88844BB8714EA87AD0D
-0DECBF323B05DDB409AC534A5087E7C18A839CDCE0A6AAAA79B8E35C68F21375
-9A2A80C092141FDAC6C5ACC84B5F31D70C35B4708A664F06AC8C7EDF9BCB2421
-21ED066E07B1070694AD4C976CE867F5C953E2740CA3E3B0941E270676C7C892
-52C991B67220CA89F7E8417E8F718666A1744E7A5777E370EE148A7853DBB174
-21A597F2FCBC7B6D45D3D56B997568AF83FBB42CAADC7AD151EBA769D11ADB0A
-CB6D59F82F70AA275D606D1BF29CB10EEFD1FA9FC35B97A1EAC17B519BCFBB64
-A6FA812023BFDA1E346A73A678A2F1EC7BF4AE861F420746AB464C05758268AE
-A8CC1D1484D908C8A610F58D1B46A641F5482D0C8B70169EB6711E8DDD7E3B8C
-589483F94B5E6657B8EF887C36E503EC83BA302F11473D6DB4904546EC5CB9B5
-4DBC948F26C63B41A493073EA3B9F1184D6901F0308B4A6996F91FC314FFA54C
-921F102839D5D4530502E3EFD9F1B0F4B557D19DDA4EFF711262A15FCFF137BB
-16BD2253F1E9AE6FFF3090AB3259FBBEBA165B0081EFC32EAA0A87D6050C5B26
-7DA8B4A6FC94ED80BBD9B3348EA511263F33567AA6C268E10DF72CCDD21B4550
-03473C8C5F3E3D281352BC940D27CBBD087C13AC70F72F557754FB53421C1CF1
-5D6CFA7F86869AB323167785FE3DAE8688EBF312203907234C3872A69F25944F
-108FA20DC643FA98929F4423B4CD1CEDAC1A365185E86FDD4E3978154AF581F8
-17BFD9BAE8FE55844C4077E3502DE33F70B669768CC7ABC2C408102FDDD41939
-21595BF555AEFAFEB319937A7DFF06AD2253F97F7E5FCC866D1827806E588358
-B2B26362169574670FE1302AAB6D0B8BD86801413D72687A6EEC5498FC26F95B
-97389FA20EB48D356290336BBE9F8F8602FD3538348AC68FFC6F0216B31C5962
-ACC612AB7BC54EE4E7DBFFE7B23F7B2E0D36CE482EA53DB47A05BBB5E87E9AC3
-AA819B5CA86B87533B13FBD2197C36B4D5CE7A969D7AFBA704240DF7D42CF30F
-17FADF284CB303F2CC4F4DFEA2C72F09781C8F6B3E79FD1D5C65DC134AFF8F5D
-7B598F7777C446BCDBCCCEE9A283A3EF356EAB27D8BC5364A375C209A71A26BD
-2B5DD2F4E5D756094DE321E692AC61883C75E4B7539CFB5354096A9ACD19AF45
-8AC6ED314C48C0D7817A4BBC95120B07CF712C7B68C4C6283F3B8F657CC871CC
-B905DC6A6180F458C389801E8FA25DDEF47BD1086EC66E109D4B0B4AD4BECB2A
-1C826ABC6094EFFF1EF56B1210BBD37C1C4316D7EF1DE61BF69B1D8D5E173D50
-91F1A93F985DE8C180A045F486CA799206EFB861D2E98E0776CF110B7BDF5BFA
-F545D6B2DB7E75444F3A05164A8C30CE8A57A362F7384B6BE1154EDA5F89EE08
-369718561620C73A0EED657D7F91ACA6E41168A0CA783BDF70391F8DCA06FE07
-98F5D12F72852B00699847EE3255344844210630D29D27DCC8A976A64D2FF312
-DCBE50763405AA5431E300B8C458057AABE08F1E7F70B54C8F4321FC9413B5DB
-5F472C0DE7FC6C32CC44D755F11410529BCB9136EE7E0BD4627C2C7B96E8CB57
-DD736FAA0E254368142B1C970B3ECB40570FE2DA6B6AD7F5E81562577377461F
-B2655437AB83B83509A64E91BDF8A245AF86631E781F9AD82253C2BDA83FAF81
-85E7517FEA4A481E859516C17E1ED3BA72C4357FAE66877BC3586819D845E008
-5F74493B89013285343490B9EFE8B478535291E729A83FA30482AB0BF98438AB
-83FB5D81D8C2FD6D6E4E740241368A5DAF63E2A32F2F132B305738071F98015B
-7D76AAB04F4036B0208B865E511CC97944B6634867745B6C54716CC4CEA64266
-CDD55806650C9611F3CCD7FC5487DFD2009F9E9B92FC9EBF8F703645F39AFA49
-B55126A4D1B9B064DC45FAFD2EEE133E8EF4ECEBE3A9F6A446D0E172F58729D3
-09D37C475F0D5D2C6CD2B9012A748A418127F95999E25FBC40FEFF6A8008744E
-6B6D86F46D22337BBC50E20B1C5A6EC464290A2D6A7CB919B40DED3EE6821F41
-7ED82B3AD610AD4D7A1CC4D19C1CABF5E8046BFBAF71F04635E7179E38B76750
-6FE54C73524097B555686D4A63AB9FEEC20CF17AB794AF7B93261771FEEBF472
-3006F2733A606FCD2877C004D9FB2055CF109DAAF0C8B180C74EA4082AA108D6
-854ED8978906996332A4D478B222533C081A8E9955B56EAA0D1A972368EAE511
-BE53D657F089C2E3F356135D9B8B2000AF99B5C463048A7E88DF50022C2BE1C6
-FF935374C06C8C092942A5C533BBC534E16F9DC06F2342EE1065AC56B725DA38
-A1EBA2FABC78ED3990D392EDC999C4C63DA920D31FBC134D79EC4325E5D009AE
-43D13C00BA3348B8A60A8B85395602AE26419937BBB0B8E13B58B0D5DC13E257
-746BC9182DC47C13258739493F4852CC5BB75F4E6F08FC66D22DD065948A58F7
-017AB351156FB2600CB85B3BC4CB59252C9021C98DE29D997C72FE682615FE90
-467C6AC1CD1DEA6FAA5EA476D4D6ABB7BAD66F56F8050CB0A3689E033B2A2910
-ECE37B6A089A78FED58A210DA9F3D87A9420CEB3F86995C2811CD6366F1AE470
-8C7DB8DAD5744BEC588D40D86117F0A6640E10F7AAD07AF223FB165F948685C0
-49213D3AAF79FAFE1B0B97CCCD057FAB7EAEC5405EC412A50BAA0AE40B2F4241
-5D1B30C1D9742D978F1177058CC9F9796D1339FD762A0E2692809D796986A1B1
-7BF9E8EF8C9889106D049EA8CB9C05726E81D70433162B139674F9B57BCA9232
-A565A353E7880B9EF007F6BFCA038D207283E7C7B2E87D4744277B2DBC0CAADB
-2F86C4CD08265ED6C2DCBC742C4B2E86C5830BEDDDE0EEE5785B621425EE6ACD
-B15DCC79C715129ED6B3FBBF244BDE61B14BF471E406976B74307CF9285D73F2
-B7569B900B5873A8B834890C3B664CC18A905FFC355CA45678991A6033EBF272
-CD0571AE7CFDEFA886BE510DEC65053049A42BA19F2122288692BAF0E2F97738
-4F07FB7CA6E6F51E3F604E0092E699E43D3646433A552CABAB110430EBD2B27F
-24F93DDF1E499395D759731BC8ED2E3A1BE88956ECE4F3D6DCDC54447EF69391
-D4B31346B24C6F015B473C072AFA3F17956654C8916899253A8764A10C349B24
-22B01AB946D8FAE6F40446B4F38AB25C02D0C635DC60B031A01DFAC57E35F30F
-F72BAAFA4C985940CE41275B4838191AFC5D5E89F2BF0C41DE6AFB0F3CE342B0
-AE77C45DA6BBE9D6F07A18FF63C83ED1CF9C510362793EDB27662EB1B722881D
-EE49B48F9E373CBC2B6AAF3094144D65D393D0C4BB3C3E2464994B0EA88F30E4
-D8FE8CAB7A8B11B6A06EDBB9CCD0E272BEA67AAF821F398D149390ABF0D1B277
-32581AF647C5A898D8AF65F41F74829A41DF8067D94F98551C2EA8F9D40968B2
-8E43CE4DEB56A555798111497FE15AAF3D9949C7FCEE1F220DEF8097BDF35A7C
-888CD93BF4581A95A9435E8693FA4E4967B9463AF438E68F7E1DF331F49735D4
-1A15BFC4A24F4561B2C395D2B07E9BDD06DEFD9DE8A195A0B300FB544747175B
-05B815CFFD2E2ACF24D94275632691B91B91CA35B28FCE35F6D414375041A4F2
-0BD5F49A69BD6BD427A5A0FBC0B80AF3384FDC0DD761194135C6A1F18EE2F508
-60F8B9286EFD2D439DB909D4B44E1E45997C1EB056567E82153B4702538B7847
-ED5BCCDEE2635C3D19AACAC7163951063355505C388368F9DBA8FB45421000F1
-D7873E3D396B27F2E66AFC2176D3D801A43E764E5E76FE380127D76C05A4775F
-B8A57C8A7951CD127DD4D5E66A314C6A00B0390604F7C28E3A2EB60701F1427A
-9BDB4FBB89F3D77B9AA4A01C81BC4E4F959322CB7D7B6D97A9F5549658653F9A
-A64B159DF99997779EA7731467657A817B86A8F7B71F6D1E66523E1BFF9541BE
-A66DA601DD30F1DA91CAACF9BA3E12469A20CE3D04A6004119C9591CC9ED0F7A
-C687A6D89DC0B8BFC524B9A0EBCE7A06B77B07DD05054754D99B2ACF9F49BE30
-94F31A6E08D6ABFE7EE0B02B6EF5F42F7F402A1384CE1446D8E6B28A37DC607C
-4DD3D4462E4195DF11A816B4B3722FA00E2342A542196CA971E5D262634DE4B0
-F98F6A1E35535ABBC875582E97A67B003C305306A2E3033442A68B0884E6D6D2
-D7D750944D16C6688E81B78EE9CEA560E0507D4204CF5E2B072826A435AF6245
-81B3F5CB5C7C49D40D8F7C5587844DCF5AFFB60B748D227026B8422BEA2E1DC6
-44686ADFA22D85E907C1E9C13D418A4DA79A7254E289F84759324116F589317B
-8C98A295BFABAF32CA01A39A94DC0415EAA25DF3DE69009F5551E97B0EC20124
-29EBA419052C142FA185AA98BC15CB217630149168D61A008B6184C87A6BDA12
-18504C14D1D5BDC88B80A4520ACB63E3D30E5BDA19459D04011B403582FCC967
-6C7FA5615F09C514DEE08C9F7C983A32C397A279175F4F7B3D3B41AC29385651
-65D394CDB4066B79BCA4CF0C6E4F6EB730C6A3A9CE03FD8D7969CFAC7D3B9A57
-5D1E26E4AEED11FEC5BC6FED2CE3FB2CEC00EC7640CD5A07B6A3068BE26E82AB
-5C4603C67ED001474D8211E6489F8097FEF2CA3800F7C9F273687A4EB01ACE10
-0AD80E8F5E82C5AB1E19C98AE0D146BF3E6F163065A572169848D09E1D060B28
-65219807987195FD501181781DC8D48A6C90B368979D2BC728755A537F45F270
-24BC58484C6C41B2F3273E2B705EBBA5C21562504E89C7819CD5265711710317
-19F284E2780A4C9D77070BD9757565FB2C3C16472E33795E156DB4D11A2583EE
-AC431F6520CD8BC2ADBD66F7010A5BB813A1200DEB0C4CC6833198606E994F21
-B694E0A978E9B74C4C3392009DD32755F77EC96AFC6B193878406E9E6DB0AE97
-20537F71F8C5016668BEB87247F69825C9815282DB49B0D014E79D7AD30C8896
-3371C904DF85293980545FDFBD257860768246C8C169AC98EB5F37FB93F339FC
-9303A1976AD8ADD1F056B0F1F77FEF36BECC121506FFDF9B10845544394C40D7
-4C5FFE7A351DEA8729C86782915A79708D6FB969DA3AB2656C3A806B96F5672B
-CBF8779388ABC8AC35A80C2F382C8160BD3355858C6D7D02948447604178CB75
-6A1CE44DF1DC170E79142F243F012B42DEE7D1612B3B3B4602A2A1653873040F
-E7B5648159871AD26DAE8082FF47EDF61754095DFB375E0F949534107E4C66E6
-F2689F929E8DF0190FA28D9A536C22B62837A271E565E3DD0B06FC407B0B9D28
-32B12E4102DF1A19B82AD6A84DA0D0EDB8A267A319E584AF8E6D68DD448AF5B9
-65447ACAA6CA37167F7A20F2B101BAF5CF63B9F30499A4203C2197F88236F85A
-7EAAD802EDD89F703587512E74BAA070830EA0C3BC5E211D602D278DBAA5A455
-0F8E0C9434E4F68C42FE202EF74091F54CC6E5E33E54C456B52870FA92361F67
-351F2CB1D8C97C93347D9BFC50320EEB243A1CD38DC36E45404266A824F0A4B0
-F16884B07D4F49FB376FADDFE1B7BE4C1C8373B8C7A62C06BF7D61A319D04B66
-933C875E626744163580C23292EFFE3209C9CD34E5D6DDA80F99E99005EA4D9B
-4A00D502658553F86F33E3CB5A263D06DE92BD6886E1252AC749805CF84F4BBB
-6E09C439837CF6CC143C9BBE479C32BB93522EC70293723203A64DACD5FD0781
-861E0259D443B88769572A6C5C64EAD4D81A6C602E67FAB56014FB466CF7177F
-268768AFD9B949EA8F155638906350C1858180EB7D4D6F3D74E4FE1267C2A6AD
-6A2106751EDF62BBBB69954F1FD2A94EDC8F40867A0F6FD70BDD6D56E62F765B
-D57E984A76986D0F3480B71D27B2451BA385D2D06D873815E90031284F8501A4
-2E0988C453670739FB48D28182C44C225C41BA5AAACE8B1861E6CA916D5ED948
-D628DF37F76921E21B6A582459B482CE3D3D9D1F32A9804FDC96921CF734FB63
-7153965E87F03F7F601668843BE4CACF6E7557249AB3768F8936988B6B5CD8C7
-955185ABD780F9EE31CA4B868B3B9974F6B6492378D20446AD8B46702B76AFBA
-135891B67A3579A00D84E3672B3F3AFD2BB3182B60A9761245A39579BF0CEE01
-F2CD0E00CCFA6FF2ED703B0B962B020780A98D34A7E130DDEA7D5222A65487B7
-CFEA16C6AA66784BCF276F34B04B0310308C2237DA15B209695A46EED9AE838A
-36BC86252BDE7716000E47AF3876D7EE7520EF52E52D4B50E38E57D327F5D9A3
-8C273487E4D43CF0A013E006FDD3DEB2C898D0A5602DFC7B128E8AF2FF3839BC
-3CC50100638AC513B742F429CDBB470D55A0016058A7C321B6FEA82F505AE5FC
-C48512EBAF90688329D3279A558A5C7ED0D012A104AFF17285E62D222CD2D890
-68CA620BB2E96EEB254A95A914EBFF0781D998FCB259AC821BFDF2DA7DF43165
-67735FB62B79652D7163FC58BA2184AD4115A9D4A87B5DB7B86770091A9F4447
-B18B58A5FC520F5C5593066D5C02E7DCB08D379CFDD2F2005C08691C5FA7D172
-C6E1037FE022050EAACB1FBC04C895145970C7B06C26BA3D23DBB1118E59EB5F
-841BF631FC8746CA5DAFB2E8B0BFF2904A42923EE34B1FA02C73B2C2BA02F300
-C079936892969DABA0221BA300E3CF85D5756B1152C31AAF025CF2BC98E95E34
-8E6DE60A0A3DD95C2EFB04CFA318BA0130052AD7717C87992ECF9D2E9D5540D4
-EC543DCBD7213D0B980C40BD3C08523D81796723BC616ABB30663FEA33CDA534
-71275B5FD9DBB95CAEB0D8550E461BC0F76A8FF1F53F0B89E1F2883A5954CEDD
-558613E103DF8F06742A3C6DF1A8CD8C6A2AA1C89097F97781899633014F7CE5
-B394E5C4CF51AF70259A760270D0E90FB0C6014943BF89684486EC2E7D6FFCE9
-0626F7DA3DA67D3C4F92453A1246483FB6165510D7BC3E95239173AE85CF7224
-DCE1A51582D4F5066A476B78557993B5FF7AC99BDBBC06AE9D6538647E6E599D
-F65F50B1A182B39F72BA9C3FBD3C461FC2E720B72EA5F92A5B379D61EDD01558
-3E1B23962389E133ED530DF302E67ACE9F33E47BB48B02C9514E5752470059BA
-C2A8FBC11F57BBA443E9AA6CB1788C20400115DCBB3FE7879D60F3FCACA6ECAD
-82593B9F185A129C1F19BC9601ECE070DE45F9E62B1082BE638C6C123125BDBC
-401F55E85DEEB89C48906344498D9C50E77CE8CDB83417FE377B75CDA898A27E
-93120B88DFFAB4D271D795F191135587670300D7D72F6B0DDBC8BD29D98491B1
-4E533CA9EDD1ECA586FC1132B6AB61AA3F7DC9492BFC0C51990B70CC017351BA
-CB65FF8F553B98FC75CE7AD09464D04B27624747FB762975E14C6F4FAC997664
-F5999FE7CF31F5937B7FFF0A36932DAE5B47E3602C1D4E43A6A376C0C2CF8D0C
-A083D80171209BDC0E8E28DA33E5ED0ED93E948E55BCF761ACA5E3A97CD42879
-48FF419888C975215D8D61DC57084F9FF210127C168865E22F6EE7E645C3A80E
-6C5E58D146E2834D49A33C2222D019323997637E1CB53510B6071C3E76D8C456
-130CD6039DF3CBDDD65B2C4240DCD6123B88C5EDDAF3A18C7E2AAC385FE45821
-36BD12057D84A28BC6A985EB7C00A21CBD71B3EDFB34FCCD25FBE07BEFA0D819
-69BB7B6E75FEA9B401D185A5334A392F80C7EE168D22C3DDF2EFE04B252121E5
-2317915AD3C17B63BF15186140E06782EB0FE2CD781AAF200C141FD0DDF59C7F
-95FA1974C74CBB540FC773BE9D480558F04D8A6E77A5C4C03FFA26449FB52CC4
-F1EDB91E380CE5B7ADC606E91DB4B23AF1E91143233A9CE96252216A5D2C4668
-BC27EE74A6714918653A3216D9AF4CE72A1CF6D7014E494A1B0381B2D563101E
-71D4CC02715AB87B9A12224EAC1385E815E585A216989099DBC3A23D57C2F214
-CBBBFA6A621FF9B38307D5177EE81038AF0CBDCB9BFAB16E9DE948E03B227B5F
-8D7423B3FEF8401705FEF6C06DFEB53BC6A2171CB19573AE2A7DA6B0E1898CBA
-7BF47DE71CA764FB1CE182D172E652D2EA078A4D9F3C38236B03E4DEFB70112B
-2D9F9087A1B8852044455FBB22098045EE18CB43DC59D76953502F5C7F3EC9A6
-0CD82E4044B2D1C5F86940D642021BD3C80948FE9BE1B152BE0310237F195923
-74A7D9D787F43A9FB313EDD14EC948B185CDFF74E3AA4C818CB448056AF70F7E
-038D45F563F7C93F7CD8CA8A11A350EAD4A8920AB4F8622DE5C63BE56EB5F259
-2C0BE381813D0E6CAFC19A0C4AE1705804E1A7C6F6BC0296320B3F6B19C0A17E
-C7A9F71E5B36453675BCDCA540990422168F25A537F8037B685BD556D3DE9709
-A58FE953DA52E53995EED70997F311393BF306E5E71BC6D0EB9C0D2B6EA61AA9
-465BBB3AAAE2096BB90790D0FC8B919E8DC0BEAED5AE1C577A431BC636FCBC98
-2ACC75B27C5B0F5F4F7652DB2AE91C7EBECF5580C687C513220F6EC2616D2654
-9260DBD025A3BCFB7168B184C3EB0DF518E442CA5DBCCF154E205FB1C28218E1
-5978102C4BAA2F213C9ACAE75DA361B5654FFF070F85B729B707DB21E1542932
-EDC13798EAFC927388A71BF457D5C5AF37D8139A1D6573F26B2A45BCFC926069
-DAC568906DFFBD4F8CDFBB9FD48D5EEA56B6DA0D475B5A5A0D0D1C63BDC7713D
-5267E398B7240AF38F204F649225BC595F6F01AACAD87D087550157C1AC5DB0E
-7B4B77475FB051EA26162169B16B7DCF838A3386C7D1DCB8D6DACD12BCF380FC
-35A8979DB4D342D5A754D94B49ADE540869A4EF7B9DA6DD98B38E99439E27C0E
-CDF0D0FF7D1212C8072750EF4B915EA3258C4BE93934CCE6D5259C6CE0819126
-47F0EE4CB12F14D16403BEE96FDBCE958DC4A0E1B70A6AF85449A1772E340248
-E4653840B230B0BF8484029F159BA598A65133368C4961D601914E91D7FBFE49
-8B6F4D07FFA68939C63CC2861ED29A3F3C9BF3999074A715A93C68C30AD52BAB
-60381DC7B40B870109E4800ECC93D5E6D4D3B412103B7425563A167B4E41A7D0
-8E66017DC8C6E44332995CD0E003B9FD48139C658E444B0961C31B023BD5133D
-C5BF74E94E136A3BE016CBC60F9FC51AF41BB7A8C71F6649CBADA3DB2260B5BF
-2BD404D215FDADCC6A677B58B16627AB99F55AEFAA013D6A3D034F3DB9C08174
-F3334286460CF3AA37E11BE02BE4FA2B0B4FD6648D2095334784CDA45E92E449
-3BBF7953D2F740DE3210E051C37A6AD41899836D74F62BDDDCCAC160C1003BA2
-79170D7CA435CEAAF1FA559AA87A3EF99538ED219F994FF4EB9675528E63ABC0
-3A8EBA027CEA773D4893BE72EF5C0FC3B7D4BB2AE2CE26A2ABA8D3C77AE4F9EA
-8E2541565028DCD3682C8CF5140D025536F2EB52D4BD9C00C2CF99751E7EB429
-D8A416C6025774FE2D4847BCCD4B7618771978B4B49EBACC6E1F9CC3FBEBCECD
-7900B5F3E889845282B3E0EEC2D4BD41AE775F614724D9CC2C83C110FAB4D653
-D9E6FD9530A952450144250F29D19E94517D066C4C66980F0136860FAC91DFD3
-A73EB9087083E9909B4862B07ADDB4DBED95C2794CD2998F9B6D0BF6D52BC1A9
-772D6D5FD498A1DF12F5EC47F60CBE437037089B5CCAE4BA830AF3DD60FF128B
-5C618E23C6D065B96DDBF6CDE360CBD7BC114C06EB9DDFB6604CF98D60176A09
-B5C9D9C0132B14DEE93F8E62E3FC64FF07E18438D417C9FF0FEFE11B41CA96ED
-2B4B633EC23A52EF39847CD1AEFC37923DAE488791CA961556A5CD8FFF7AA02C
-A74186E0827A74640069B5D02CD5CE6BC83089915EDEA034189AA296DF1D5661
-B424FAC4AB5EB5D48D0ED8D81CEE2C4A548FCBF69E8BCF19AE9E4C1FFE6B466D
-570AA4922688E5A7171B8158AB3B793B35ECA4C66FD276FAED922144F44B8107
-7AA10EC3989CD46487D1F20AB9478FAB49E3C969C27ADD6B1E1FDAEBCB37CBA3
-0E0068C6C94F08F228F1DBEECB3A9305202983DEDBDFA7D821799E2DBCBF138F
-8646BD18DFB505E8C6D72A6F4E05C3AD34382616C557814D1846C82E64B2514D
-9D2F2F9D800471BA87FF062E3F85DE5718F64A840A4F47673D3E69070D87BB44
-6F987936ECFA3550F86094268B259EE96B2CE8D824FD7F32328C154237105D8B
-75678C4C1637E32E2E882C09F035567935562EF87E0CDDF225E5D116FAB09DB1
-E661BCC21A76AEA642F13E5149032CAAABB90DF368022FE4A9831149643CEDFC
-3296FEBBAAD249A649BB13578459C7850367D9B3502F8751B77758C1200C9222
-731945D041C117EF61F811982E2140A597F12EB8A6DC93953C48224B8CCFDCCC
-440DB9EF0376177FFB266ADF9530365FDE2964DF2B9609668161816622894ABC
-F54431F1F04DCB1F60E125E8FD4E8A92B5B12CC282C05571A1F03188C387A5DC
-E895AB569E5DDA99C48BDAB90EC15CA3D8F177AAC3A51296A32C4175B6BFB279
-CDCFA114A67337B3C6801ECB992CF91FC96034F0AAFD60CAC43E86B34EA9F73C
-F82C83A1DD81EF6688C2E36446A77583A20DF928149C4B66119956EFB21F3A25
-6ABE9BE47307A3E34A65DD50CEAF224079550F354578ED24451EFD1293C1081B
-D3FA8B291CA0561D2449B534B56112D5AB04D8FC85B6BB33E10C9D0C3F7E214F
-B19DA8E6EFD1FB3DEAD2756C42E4720C3317DBAC8DFFE9165DDB9B1F406B1BF8
-F22968A0D907655328C9ACB2F2D1916F5AC92A1C250EB2E0C31725AF6B3EACC5
-03F9D8EDC24A78F2AEE8664D6AD2292DDB07535623DB79B22ADFCA4E1B740062
-4A6D18D881B77AAA510454E49883C869876BD68662E8D7F5A04E479753FDB1B2
-655F8DF21C6D8EF1A71E7DC0E0C1AAF7A12A2AC800339A74E15ADE48E083DBBD
-8FC2E0A43BC42FC47C709E8CBB0739BCEA6B653237C3B86C528E77E32163579F
-3F8D6C7FAA7F32916C4762237CFD08CA35ADD9CAB6DD101CE342EC47247DF6EC
-A5BC7DDF0DCDD51CB834D90CE7356F4D65BEEF8A49E5C042A9001887DA2F53B6
-18A7511B03050558301D81C17462C0C15B1A40CD8F2DE4BD29338AE4A995CECB
-48666D3BDB3BC6C57237AA181C23357472EEC77E59889518642E51317B040D5E
-B71BB638C92BA3FC11E2C5C041C8E23DE6604DC8F0FF3932A48759DBAE0032B2
-1E8801FD4FD596976599C501E3D92281282A83FC9B4384EE6F9A15ED484DF6D7
-155533F40B40AA8092359F27B36D949CF465DB78EC35EFDD9E38DAF9173429E1
-269F4A41EB64A5C3696C29574CDE851F301DC4AA7615BCB92728741291EAAD33
-ACDEA046404087697361EC681F778BD338CE55935FBE931618BFC6004BBB313E
-7415EDC1DF5DED2D49A27D61D12D1BBA04333F37CC842F310952ADE546F087F4
-F204A63AFB47C980331D395A60E30D6D903423062977A37B0985C9C1B5009520
-2C4DDD235726340CCA561949B85971239050A21C9EA0419C3A5E6A2E25806B9B
-921FF36793077F8AA94CE291EFA15FA1DD6482B6B9B3B9CDC08FF34C8A758A05
-83A02526F9EFEDC27947A5E5C73843ACB1D47CE72B828D933F8F8357B557943C
-636C42E32508CBF894659372E925C9268B76CE85E9D46BC9D35D27DF020C4FC5
-39862BD7E54E264D5421647D80BB75CAF5AE3A45E62271B93CB6F36AC62B1D3A
-95399EBEC46D48139A8F6F406D0F8775C53F6A140137C494E475D817107580FC
-A4089392CE25D5B6A4C0A6824CF65E44CCDC5C8BDDB463818E8011AA45D52BC9
-D0CE5DCBE80DBC9A5618CEB776E4224ABB2666DDC3CC196AEDC0781F8461FCF1
-D7F6B06096CBE4D8A350431177FB2B47D147AD557E8AC5F3E6AE23731F26ED9A
-17E5A53D16A6E88A16FFFD1658D2B377920D18991946F87584E840BABDACB851
-D7D85B8D438F1368D5C68916415FE59247C3252485EE000DCB3502D8C1E0B1B6
-F584019ACA31D279DCEEAF9A2AAB5DBC6B4D224F52F4E4F4EA1492DCCFE705DC
-CAE7CF0EFF03E6DCA5FE36B76D98F3D8DB56E62173D0F710D5D4607AA93DEC1C
-22BC0764EAADF52D98620B7F8C8D73C85FD3E458294AFDDD7D1D0740F4C0D272
-9520DBFC59E21C0FF41951EB5A3ED2D49BB493AFA66841FEC2ED44A7D69CB0F2
-6A6C845202D99F2C002569A1D7EE794E48BB125008565D446B105EA8C03E798B
-D76FB87CEC5F68B91E0B42D99A082C0B0E5846405F3E510C75A8C00D695CB096
-ED8478F4F87EC3BB52AA8D2D98A6A99F395A9D0EEEE045DF42F60350E8913592
-74F45C7F6D64BB608B3A187B4A9B700F00715CCAD7AD2C52892BA657A3EE35A8
-924C8D65DEE11F2E85F724582439DB550E353C9AC4739DC2946D5B9FD8DECF3B
-0298C6600870AECAA7285001B8B5EB24B5C0BA2611E043A168A895CCBA924F5A
-C05DB83BFB5A862DEACCE962E4206DDA6A171A9EBF270AF538AD7E2ED3CA24D6
-148AD0985F16EC1A1B41D226B1FF3D995BEB53767ED704C3CBFACEF2354D8523
-4068DC22CECDDB09FD818676D9CF1828FF76AF43967CE2E7623EA8328397BE77
-C538302A2BE4301571826978DC416F75C9F32EB4AA6DC539B833460701192E5A
-37BA93FAC640125231C637995A140DD004D3456168547953F67F0CD214B2DF55
-07E78C0410A7F677B4EC97D62BA66724C32CF290D02E83A63858C861AD00824D
-FCC6AC1A44D5084C372ED46A82587FFFD3B122FF92E97E62CC81335F9E8BE580
-420EA8E4584C08056BC52DF2EAEAA3DDE1AB0582F4BD8A6D8ACF40032F589A05
-9A0660DB944A097F5B700A1DFE0978EC0C19C85921DA9880DC56C2ED8BFCB882
-0FFE804CE9F518DF1F6E4CA67F46A450A2EBE8C05C48C39EB50F87DC16D60A6F
-899C17DBBB9AEDBE5C04478C2CD4C07A8D6CA094D340E1BFAEBBAAB8EB193FB4
-5530C2CA6C1B4915B8C6F35252C1C1B783EE547C9FAC2B5509995154FE7B9CAB
-6A095287357FBADF597D7C1AF9A92B667489A3804C4DB63C480FA993C84F6E4A
-A348C48D19182D7962FB9B0C907737F2F7AC41BA1C27D0499157BA114837222B
-934910E2117D3E56A43CBBA1592C6365BBFE662FEA2C5F242649EFED3CC711C0
-7D9F882226C6A0FC3854A51A7ECDDA030FAFED1601BA4EEDCEC2A29C0E364333
-D9BFBDC5657C270DF4B4750F42C9AC17BE5267FCC6274EDF6ED0F506707F9136
-167DD356301A66FCAB21126F0E6EA028FD5DA17B1B71A3BA3E78F64ECDDADFC4
-37B68DED62676749851FE9DCB88100126B7F24984817093BD8209965E20771AC
-2C0C8FEE82A5D53BD85A1B4EB56C1890B1BD482AF7E586CB3CFC2A0C95B0ACEF
-5E13E17052D4E576244E124B1C6F2C620BFB3852DF17EE59D7F6255BB2767B00
-0CC5B17297B3BFCF9729A1A96CB1DED678DAF3D2DB6A899ED16298D5BF3B123E
-C1E5C185B50F27F5CAC509FF8E9F314BCE9E8ED45BC9A2BE4F606230841A7927
-773FFC17806CD8FA016254540FF15BD640B8AB67BB5D3AC4AD6B2E6727676B09
-50056FDB57E02263D01EA34A35F8FB0B45284B3A8F57D7C5E5FC349DA0C0EF80
-3B9A3916C5A212BECB5CDF090E21A053C1384569E0102042519262F61D9B6A79
-F43F585F1B59679301B9014DECFD0620A44DEE9282095B876A9CB85F809B13B9
-E5D8308DA9D815EFE446AF23BD05DD4A8F0AB3319AED7358DECFA6BE9B86B52D
-4DA2E9B5D9B7142E82A4B2E73A221E6856791B10384B85CAAD75508AD199B3EE
-F6AE89EDAB93A770F82942EC1CF9EB19311DB57E2C7554D95AC307F59311EA39
-17A7DA41B9C497ACED2F09C74168AF371C0A98B426E42174FFADC8518F41FFAC
-54378844951F5B3A61556F7BED402437F1A388C8F767C1AC766A74A48B8F6677
-46E17E995C332EE33AA0A7E4A4F64ACE7E0D48FF7FE16F31984DC570F78CEEC1
-E1589B060D0E90E252CA904870020399057D8BDC37515A5F1A004C9BBE461F66
-89D85434A447903AA464C063AFF870614589C11A6D0DC414B06BF2952FCB3A0A
-DD2AF3C521E93917447D9F2F32705F54DA8B1EAC58B60C4EC674536C146A7B49
-827FF69ACE907FB2D0045C9B4DED752764A16A6AD3D77084E7D47A53EE4F480F
-5C044AE87835AEA2320DB09E4369155414CF6EA7EB5D7B5AC7F750F039443BFC
-8BE881A5D52B87E6B78388C0B5B3999F79F740354C5BD03D23A8A1B9683E0D25
-1C28C7C8CCB52B1D52D1B150754C331C7FDC159C7CE99F9BB65425254684B1C2
-936E6B694E2676803C768E249AAEC756ACA64277C98FAFA55D90E89803D0C2BE
-A734DFE45BC1B637B7DC481FCF134E63CF14D8D231AEBD08B0956F43A7D9747A
-64B0A1F52FF199D0A80B11CD6C598AF94AADE9D22A59567A0560899ECA0E6AAB
-73C006686AF063D32ECB50C0E790F287CEF50292799B6017CDCD9FDA5097EE29
-D3ACFAC2D3F2448DBB2DF00496381A15DA2963B774A9B965DF1F1DA5439DBC20
-3865794FDE3C938625C0B37BD0E4E9CA8E8E92E6F3D4813BA4F9C8EFDB4179F2
-2E47E5C2E029B71112CE6B0EC0AF1DF745003120BE1BE08532844A819110F2E2
-46A71CDFD7C01CEE4C23057575EADAB8841E0E2EA8D18E44F2380119FB629445
-10F6322F34E11159D1D004723BA320F188F1102C31F992C7662BC2D86C9723A2
-1E20A734FFD8D0EE5BDA9FAE7ACD5F7E4463F8E9F3824F7206BB1C2E1AC0654E
-61E7E03BE000F6BF393E84EFFC6C04FB56873A646405A44FFBE750D2DFB704FE
-3E6CAA11B535CA9D643AAAF96C5A9486EF5FB5E496DAC28199159353A01EF27B
-2C81484B627A16A9FA473679768BDB8867DE84B5868F9F08EEFE61FF22EAE460
-F80AD742C3BC581F463BF564484DAF52FDD6A36AB9CB63A198FAC614272C49CF
-89AA153986D2EEFE4AB482A0DEB39DC5391BBFA6470A8E0AB156AB98E2B6F990
-54D6C73C036171991F9B216269EF5F1F54CD7777978B9B6869EBE8C5CEF83B83
-06604699B377CC80DD569F130BE202F6AFC9EFD5795BC44CA2A3BCD3C2636C0F
-FE8BCDBEB019E3396329997B1A80F9681A230B35A5C440B5149141C28DCA8A9A
-94C19EBCFF8362FB5C2BCA7D4949EE87C57225E0F65FB39884EA7D0E47D41ED7
-BB42AEA45E5239E73A7041F80E200830BAACE26A0AFC2D06D996C52399380F7E
-0BA391A98CEB560166DF661A505847EC9098555DA591FD3B2B7423B268790497
-78ABCC4F11EFFEFD38DCB6BFAB7DC5AAC48C237B03CE9E50B62AAFD915FF80CD
-7D6867C23991644C598DA9B02520D326EA1081C6752256DA88EB71320C296A93
-A9F86CF1BAC22B20AAF03C835E9C920545F8387CBD4CE5C5BC9668AD66E234FC
-EE6C446A5779916919D477C867A0D5E9E9F06701B6C98B4E7F00A4655FAE8E74
-E8447BC98E9824927D841AF8BC80D70BC6B5B59F657D6E93917FF18D5A314D69
-A7A7E8D458A728DC3DBE2EFF94A1DE11ADC7B9B8EEFEB07BB46D6ED8E1F9472B
-EF4BBDBBD0ACE61389B02864D4A188F0C72056D86CFFAA21099A6E01AC6200D6
-E68860A6A358145C8CADD00E2A9846464663AAB709D90A43CAC347780B26E89E
-D554C05EFFD39FC0E4283654065E21F9D2F0A22D29F49DEE2567DDC967BF400A
-59B94F63C93149E641BF85C5640789BCD53BAD6E945047CE139188229DB04A38
-1CDCEACB38A99A95C2E024B9FD65F8C4435B2C884AB0F8412AE77918819F4C3D
-52551CB3B2B1F57992A18B26BDE8159130CCA792382D60F2ABBE375CF9FAE52D
-FB79D84624370F96209BB34378FD2FE08E7417BA17DE9E5D10516A10A53691EC
-E074DDA3619C4E1231BE99FBFB829EA1645E2D96A996051CF8F580015C9C448A
-E3715AA997173E3CB6A6E0B40821B1B909E5B0E4BA8C88D875C47548CDBF7D3D
-9E3AE43B618F7617FD5D11D4226D0BA08A0E77C03BFFEA700333DC02215E57D1
-AD4D87CF31584F9E8128773B052A8031125DE3C342EA28508092112E7C4DC936
-EE2C3DBD213ADFBB93577DBC4B4C640AC8F7E3F5858CB73BB35942827D5DE8BA
-14B1CEBA65C69E174693C9C0EDB23E5A03C45FE39DF99D9A339DB94082B7439B
-660E84AE79A8BD4E3B500C47E34EAE6D5EF0A51714EEFB7F2CC4D51F19EE7612
-D6AC19FFE4C1EBDD2F1F6A19D839FCF77D6D5B1EA670A97A8E6C32165E7295B9
-C97F8E11EA41DEE8633EC9F6264E0629607E5DDBBC7EFBA49A76BF8F6EC91CF0
-BF37884358D84A21658589E353722AA5A7D694EA544F3070EC8B214209422FE8
-E50940790941C491F6844DF7088C1E7871038235BBFC91305B55E30844FCDD1E
-F8EBE9D5BC5A52CE04B8070AA5242DC6731026687997A84F357C08658EF69ED2
-89618E034E1E799BBF4CB8F5352279DFBF730CD7511E5F82BD32190A61D79716
-49DC960844C835929106B6125A7039B96407B31D2FAA07E6F4A12459B1A1BFC5
-A5E8735A4A0B7E66CBBC19BB0F914CB26B8DCF8417706E4DA36AB4E57E6BC1BB
-E7F423C759A9F7196AD891A898D0C24EC1494179A575B8D77A85D9CDAD6F5A99
-6EB2F9A4359E24CF29558D47571A5E7A23B031BC7EBD00BF4EE0830F77609CF6
-3EAE4F283AF38FDF6A625F5BC968907A14781FE795EDBF6328EC24F94752266A
-DFE9B18D17A82BE9BCF55FE1A63B6C2D8F24F27EBAEDFABBA58F1293105D38E7
-4A9B9CCEC8C201771DEC7F1DDC23D0E8F6DD366AF4D35EB6463CB9C369EDA95C
-C54BDF6135D897B65653470638865DD717C77982D46B332E5AFC3E5B4AE9704F
-195857E43926CA296B49A93CFE6F24028BC610A8C7063F3C79423E65CDD2F697
-4B1075D25EDA4E56C8EED787A57B8A8E210B67BA464955FBE58DE885808AAB1A
-7517E1D682031E5FD04AEDF8CCD2DA488AD7896CE0BB63DD941430720AE88404
-A171D6A4425DFEECC1556C0C9E8DA6B7AE9619F61B401F13A57A158A62ED22E8
-3F319B0AE93FB4F52466F86BBB20F0DF2534AFBD1292ED7FA189DF0B30B5A54B
-8EE0D9F65CEED0E689539255A234E78F29A3ED496FA280440AA832AB6D814B12
-BCF3EFAE32E3401564D0A238948868D6996A1B281114DEA1580F419E239CB9A9
-B1B1FFCE1850FCABAFCB605CF218A9DA2F05F417748711CC4BAE1A95608E1D63
-B5A464D3537234CCDA314EA65A650F0DA569DB6745005D392A5756352ABEF049
-52941F1B7A642E31ED01494A40B8ABFDE1E2BC025438FA95C5C1296C0A3231A2
-65FF888A46958EABA844E001DAA376AED4B7B14F5626882D95B95B4BDFCCFBBE
-0F174937DFEEF6319F1466EF8B63031B7A54A7D363D51068726731AC9B53EF81
-01325EFE17924654D68062BE04BA26F8318EECE37BB9E258112956A73FDDE15E
-78C46E9859D69FAA0B7BDA9C124F4541221CDD6F980B45EED340C027756F9A0F
-BD15B2B730E14C6FD94C4E93292BF79266FF9C0E8AEEE2B32279C16898ACF9CA
-8DEAE9A80561DF6A988F1F888AA03E94D1261CFCF386E3372F612FC84CD104D4
-DBD88E9D7F920411996AE86AD63AA5A5F764EE734DA099A0C126FB9056AE971C
-905067D685BE29AE40CC39B06193D36CD046995D7FE0B8B156A195BFB666CB91
-D840D73D58D11CC78704BE7A22BCCBB976BE490CEEA0AB0CC718CE0D2BE09CC4
-6B1C4CBBF734754E50DD3CB48ED8C6D72C05B67CCF82B1FE6062189219E49E24
-D29A21BB286C8A0C7CE7EAFE66EEFA932D9479AEC7188908CA4A634113B5A9AD
-DE7F1668E4B4403AF97702BF7E44A2476C125ADF3A767E2C7DA173724D138EC3
-991DA4DCA989A0904470862721713A6E916E9CE6F4EF99EC2A952F81C7B3FCFE
-6303E88F5A8BC8DC9531E0EB03BB4D6C76CE52E21C9EA78EF952E966E0641098
-3829311BFF5737A625308EAA464C657EC8E4ADF9C08394BDFCB3E73A93DCFB0A
-4BB6063A45FE5FA5502A95C2AECBCD52240A2944B4E02B4D66784A843BB17F09
-709DFAB6DB9155D129C9810125E03F6EB91B26CEC3683FD559B3134AB266C099
-75B77472C25342A2E6B1F00312F3AF8949FBB2249BBB80C86EF5D6E47F7DC55D
-33F693AAC8E630A3A171724895A7BBA861F672B5487848C017054816B6D0D6BA
-D9F31AD23110D124005EEB48CFCCFC41932399FF666300EADCAC159E137269C0
-05BF08D7C7407A3397A1A27A80C88D75B4490EE552E8CF0AC12B07F1345729FD
-CA11B5DA5C8760FCBABAF342CD7B47A6B47A76FF745946698962767AD8082E9D
-2339757DD6CF2B75A4611127A9661603162ED04BC5532B11E18FCD5927051365
-5CF6E70589764CAF6511C3709BBDD45B52B95E0207C77D9A48C655DEC2362D97
-2733C636041CBB4C168386ACE810CE194C618EDF971041325AB1E205976001E1
-4B3D09A8124E903E63EC50795717075116D496F94167F749BA69A72A71F1CE47
-A62CEF962D8449B3686897898E090D609AAADACDA275B5368DCE859D2694C9A0
-0AE5280C19ABA7577F8CD1969E4922A816B246ADA9B971EC77346C09E093749D
-0AB067228EC4F958DB6E447355FC0F61894EEEBD7894601C4902BA0E6A8BA561
-1DB2852F9A21AF990C121C7604EBF9C64B0F88D9878F612D3D2085A795236112
-617BC42ED71C
+0167B4015A270B9983B89EFFA023A3DFFDE181B90C51D70557B08444263B84F8
+A2A807C55D74265931B553F6D7F132B110DDDD3361BC9563803C888B89881DD5
+09E1A623957F074F5B3644BB3F93D7F96770C73499AC0AFC3D7157EA08BF9D15
+DA7739FAB528A8BC30C0EA7899A3193CB9E8EB51EF67DF4F97D36005EC228B30
+E54D14471A6ADD6DFC0A9E182436B4C197CB675C37F29D0404846AE086C2A5A8
+DA576BD98FD5245F1F19D20D265FE8A6C29571864BDADF555E0516D49EE5FC67
+CD278CA322575D75BC18E682A112F3EA978790C6FB0202939323D9D520F768F4
+EE5DEFFFB37D802D896E4E6943986006BAED87780F3B9D967B2FC8DC44A4A529
+2103A5C8E05BFF06517D8851AE4EDE73EBF32875A148CF6CEA6D4AE03DD1328F
+651158122376528BB9826C2DD8D7E79847902DAA002E452D12A8F8356C363FDF
+76C5969E2CD60336F300EB511BE4B7F1F5585DA7C6FBF995DB71B8CF22C0B458
+B6ACE92E0215C34849D8EFC56C9052A3924B628DF69B0435810BA49EDFA03E52
+CCE470EC571986F64D294E0DB056C9E509C81AC64E65BF1E2C17024BC8ED4352
+636CA39A3937DC3800FCCB1F77969154EFE9A7091ABE21970887F6898A281500
+7ABAA2EDD1A825E36155689AEBF310C63BBA08FB3C7414C49F445AEC145A06AF
+E6FDB6A30B367DA1BF73AAEB9C503D23CAC63D77AF39A9AAB1C1FD22BEFB8F1A
+0E50F612DF0A30B5984E18950261544B3AF01D1E839CEE5D093AF2E3567278BC
+0D91A5301CE5FFC6ED8B9C38A11BB939EE48C37F2DE47E9BB52195BF1FC46E1F
+FDA886B899401F144E4B32438F28CDDD418CB529CE8379771A0DE13E584BC354
+2E26FBC8D9BB1B1F92BC0300CA7046145698EF64A6540A468603092D633E8B2C
+2F2F688ECC7F457BB6FC2F075F87EA556B5837E3632E993C79D08414E033C21B
+F6238CC12034BDDAAE28A09A9CAAE51667A3AE782A92BF7F4A89A37731426D6C
+FF47EFDB75BD2D462A79F9E55EB522FC6F5C6713775142D2FE1038D2D49FAC19
+39A26862AE2859DC5065C1565EF8C249D95D501A8C53F659CBDF3B0AFFF1A4BC
+5BE2E54A2BCC84402D4EABBA36CFB9932CBE589476A9335F509ED972724004ED
+289D44141EB8D3B63494CF9AAF357A2EE23B857DD0B1A0BBEB207039C30AB085
+28BC18F13B235F1B8C2881C0B581226D1230E7FAFB5652A728B50B5EC6AACA19
+26587B0CF2AD14DD7CD690373D166C1B9FEFDEB345C2023994F2755F34333FD0
+241342CB4CB78E98A798FA200F3BEBD3B1B8FB26F68A32D4970CC1BDF7880416
+EA7F68EEA9EDCBAAE75E762362127A9888D470EEE54D9103433F623924FE361B
+6C0B370C8906FE9727A8F249D1B4291ECCA02BCB0BAF9A785CBF4C9451321F45
+775970916DFC43E0C2FFBDB9194DE54EA990B1CBAB06C5567F4E6DA7EBDD7028
+A475FCF7506BB8B3CA785233225544C87F74D792571FF09B3F6599B3F1111750
+201DE0AA6472939D049C2D674F91508A19809E82D0BA3ED2EEB76916543B8A19
+D758901E5999F8348E74D24A8FC602B7D16F986401C0463C2FADDF67F3FB2C1F
+E08CBF9F753023701A1C9860135284C5CF30E5262C5408D6FCBCA90F14B9EDCA
+7E15F68419A3A1842CF2F988F6E77057873007FC22A2575EE9FCF9B80682E944
+83C776E6F32ACD52BCD48CA90E2D5C31088F646E6A81D27BF7FECD78CD81B2CC
+755155CDF0F1B951A3EC59012FF66E005CD4EA1F160C721CCA6C156957124C03
+0708EF85B90556AE357E27BBE9A6F9283D5B50F4C286D961B61C87F85DBFA44D
+2F9C0D008334B4E2B2C4E6E461EAC86699E8EB8FFB216DC850ACEA016674CCD8
+BF7827FA6FA3D167C6980D6ECC7FB70BD5668DB9AA8BC2013900C693B2890A3E
+5B86A27556DADEF2870ED87EA2EECA8DD0C1E1F58A7CFDF7AF3CDADCE2FE6D8E
+9CDD02887120032EE541A73150BBF388AF868841C2C5EE9598D78A10414A8599
+2D936D5A9E83CA777D35563263ABFF48D283CD76B3F88FBB8F41278BD2E88B20
+2D950635AED81014E46E425434214BF56AEA935150DBB8F2C673DE93EA9C5A22
+E1D305798D85CA7A11F194E47F74F2658DA990E6CFD068F1426650F59269B269
+D2BCBC24A4973EC99EF1C30DDF20F6F383807A59B615E20A05B75582B82520D5
+E1B9B5B145C49F70009C1BD507F895382F82807CBB53E303CEB5C1F693ED6315
+A545E313B6130A9197FF31062F81F623FBD6E4D5B9534412265A8BC7BCC76B6F
+AFE43079E82D77B54EAA36B21CFC2AE1E6AF5D19952E8E339507EB7A7A2D4578
+0724DB516F848EE099885D861A399E72D738395F4DC3E857BACF340C6D6E549C
+79820E43D624F35FADC643944906B7154837693057F2F19A638FD68C246A5BEF
+49363D787DCCA6C9A3FEAF0023FEC63F88F8998FCEE527957ECBF03B9556B68E
+F7BE8C04FBD8CCDDC4DBA0A628D157DE2D1C752B07A9FD9442D6A423E4522630
+133D1094AE3C72FE88E50F13E2ABB0181E41C3C77F30E94190A66A4A110B7A90
+E0896CC9350E9ED01A2CA395851BFDD8A5711D8004E8C79FE8C1E98BAC0BD985
+A7FCE6A92077E0CB291A0F7AB5CC6C30B8CA7CE2B39B374E531A38C5CCB37C3C
+91726D52D98E98A8908FFB91BDC68D30AA8A636C9788E6594AD2F176A9AAEE16
+EA3F249B42FC47A95BC492E52504C184B114389BE0909E827AFE2A33A1F61C95
+593102EC2AA44BEDF477FD2BD876C6F15F612BB8A2B3F6EE46676F36FA1B3BFD
+1C48379F8E92A5EBD064758BFCFF2C1E9B908DCF51ED2FCA8E07A5578BA7BE6D
+9C9FCF5FD25AAE03135B453279FAECE868B55C9D46C008AF8CC68B460C75D1E2
+D6F1F82FABD77EC7DD17FA21E207CB7EB7DBFF1FC61A36135E0A024FE527D4E4
+80C7E92B8A61D52A1C753BCFEEB2460B10AA8A72A76C87ED59600BA7D0ECB249
+65AEEB86F31AE0BA4D0E05FFDCE431884AC5FB9C8D149A1E421F82BE02E46E44
+240B53E7CABE9055C483981031E866C7231CC096AD7DA409FBD0EF0583AFF0C0
+88C7893082CC45C35D0CB712CC92A5156B98191A600FCD6B9ACDFC005053D1F3
+ABAA3BF518CDD4370AFF55C1A773DC0906F60A10B19CB24D8971B5CD5F6BCFCA
+0D865318D568EE8CFCE98D94C47E1B3E53AD4C5AE828CDF368C7887D38567D8E
+B5631BD4ED2CA35760DCFE39707E25D8C31BF3D05F0849C68FC0E199CFAF8E07
+BDD6EFCC85B53E0D536ECE4865C6BCBA8B5FD2EDA73FEDBDA20FF6F440DBB7DC
+3DCE63D7FCDD573F4C2EC484D1E992700EAD9BDDD8370198DE5D80489039E726
+B25540566F25AC4225B5756780AD7C6358EBA625EF82BCBFB84FA980E06FE47B
+65EC65190E515FFF50F5B0D518C0F3046AE846ABA38CF424D60B814160E6C431
+8103FFE615DF6789B09CF9AE4D1916E171B85EA765DCEC59078A99045BC22D9D
+17B6D20AEC5636102999125733FDF4925A100E27073CF68829CA18F669FDBA11
+8B91BB3E235797CB4C79C15B4221245105FD3D25DD159A699ACECA81FF260360
+DE837F921911076BB3E838AAEE7C1B69177E44D56BB3D8990AD9DAEEDCEFF171
+7ACDD1B5A05BB433EF3DEA8EC7CD1A44C1879D3CD2D43926129286242DD485E8
+0B7434D036D05610A9956609F7E09469729CF1E888BD79F0C9625D4CA2C495D8
+E5CB4ADBFC7B4C16051301D083753323D1D694D6014542B730D92E81807C7872
+B3B1FA229951D20665379169D44CDB8756ADAD4D45EFA62090ED6A990144897F
+3F657DB487DEDA8182AA31A16737A822F30BA9D22FEFD130244EF62B8E32A47B
+1C5F4FADA3E0ED07D68CDD8C74E631A8492A11FAF430ED3022E3AD73DB438FEE
+A1142A7CB6955105260C8019128482A5E53B7868F7A8452C82EE4C158A7EE92B
+2DE174F01F0CBB58106E495A4630A338120749FD097AF0A7C5787A274ABC9F36
+0D2F6C9DC41B13797502A0398E786E3F66ED2F581D45A1C4DD21ACC06B93CF3A
+48D9C2D8E2394D9B09B0BA4DB35BBE8E6807E3E505226BD8903ED8D1FA002A1C
+54A9E051E20F03F71358746C79C07C5E13D967276FE1E1DFC12AE10F6A7670F8
+BFD6FC669365B67C6614A72D37B70C89A4FBD8D2A23F97F938F61643684C6D09
+8060C219D07A3205914E5B481AB94F22B568C17695BEA33B9AEEEE5B24C1449C
+DEE6540C7685F41BD018B04A37F691FF41D0362AF526D36FD8BB95FBC5A3D99D
+934106CBC5781A692410F18B9023150664614ADFEDC6C69CEA83C24186E856F3
+89D89EA807B6E0994DC82EE685B9B125454D191F4A66E03A408FD0744D6F3431
+D57634D0AEE41DB3C59076B11FE5AA8A216DC412446CFEF15BAB15CFF4E5D459
+3B56FF59F03CB7C5E3CE34D3829EE3C50DB9B2A13B0ECD8D96C0046002EB7229
+2ED2FB89ECF2A424403AF99DD5465AD54EB84154D06076D59B68BB89F7F3FDBD
+14B53D540809BA4AF1525CB4485CE71EF80C9480BF9C81EA3F8B7F4C75D7B34F
+90C5668D91EF0F69C99C8C8A97E7343F85426585F2F1EE48497B26C5F3C46CAF
+9364A873CF3AEE8696F1208C03F9E325CB7A528513B220349056BBE1EA0A19C7
+EE50A3E21CA1C3D3F5346E58ADC032435681A4CB87184CDF8CB0F43FCA7F2DAC
+B9295368438D747EA365CE92803C2988215E95CBABD03165234DCFFF3EB44563
+B33972713575D73849CC7ADA5038F5202F56CF23F57CFA5CCB84859388A5537B
+02BA8F05A5F46493039695D0CD98622E7BAE25EAAD263E3428FA4A682A8519E8
+E2DC50806965DD5A922DC492BF263C5BF5F27F128DEC0D7F51CCE5FD4D11FC66
+894E014CD5390A950CD8C1C060FF7B9852D49F787BAA2F47A8D3259D62EB528A
+5ABC53F2D9BF174E13F3E5A3F7C20B5CE10269239BEC51D10F76D914BD66100E
+06C4397CF39DEAF75E266ED3DA31EAB7B25BAB5713F9860B99B60C39CFCFC798
+130677512B50FF9FB156AE17B4546D0C3A9FEF83F3B9B1761DAE7E8729B75726
+ABFE4FB95130181253E9F20102925C82E4955DCB55FD98A9F3F54491F91F44FA
+DC821E43D286805EA754F11FD4489C95BEA55FB3A544D2DEECE529FDC82C7002
+E3DF43AC813F89F16C1C3023B2FCB9E74E40A07E4621984EB874D0318F15A90A
+C0926E2414EA7E9BF019864BC90DFE9DB63A843D3F853125292B42B1BB2CDADD
+EE54C44930AE4886C26073E765271E637ADCB559A98AC06D2AF7CF9170567546
+F989686B5DF7B4A9797819EB91B94ACAD6FACA41A2B3BF99E168FC25E333743B
+A32D7753C88052DEFAE7EFF1850411B83C14E58BFD7DFCE1DBB61EDEE0C93CFC
+DFCEF8BB4382009677B814B621CA9B2BC232DB735939D1EA059C622F99DAC9F3
+6724FDB9552F999830D6DD7F5F1CF0F01D30774EA9E50E82331F529D5F835A84
+36D96A52B05D616CA06645D54EDB6FB53E2E457D90EA68AA948E1F8AD78278F8
+CDCB1989EA650E17D435E70AECD459530CB5CA0BB4D79EEDE2390F93D86DCA33
+D75DBD1E8C01A3494A433E8E67A61D6590AAE9EE46DC55363FDCA3B8F77241EF
+679098A76528449984D1E2CE4D0CEEC4F396CB2A90EE9F6E8DE4A9020A3350B6
+4D4DE9684B39B935FEAAE95FF50194C51F3E342A7F12CA2AC92DB0107F05E4F9
+5B3E9834FC4BFC831D401E4BF8C696C94E9DAA2B7CBF600B6A1E388306222B42
+D6E0548B70FA0C6C75414C5BCE57002FC98209967C91858315E6883BBAE12C4A
+054E077F0B0AC97DDE975C02E529782E6D504EBC902ACE1CF1578B573F7BAFE6
+60FEF4A942EAD3E09C71B5E54B175AAAF8967078A7561F5E588C08CAC75376ED
+33A51D4FA3742E9CFC8966800DB9FEF07393172FEFF2D1C0743C249E8A1476BC
+8D310EF915D131B54ED76D08FA28FE68E11E118B285153EF062420D9BED2E18B
+1858D09A48E95AAC72692F589325B85C6B09727C2E301F57A0FC9A19A353E4A7
+314C28F462E4C40F0D6E8DDC72AD68C1A154E2AD82CF8663134CCE8FE46C972D
+9ADFEF582C94058281B622D3D5BB80CB2EC3AF27DA607613D2B778CBABAD4075
+41BAEA33F81A80C59256569C44E49BD398A648808CB3044A5CED7451B9DF117A
+A27D226F5210B201024A8CD403E560150FCBDD93DAAF5BD9A9AF2DE7834F1B7F
+75C871192477DC17A3F53E9A4C8A796EB784F0138D1E5CB5B867D9623232A725
+6FB9E63DA26A6EEA29887785BDB66CED60D020E6C2977CB65914C7EB425FACE2
+3CF115C0D10C80FDF2B57B9271B7BC11BC5012EAAA50E7A7F06AD1D67EBE78EF
+AEAC719F432CCA952D3243205C449BEE066053B6A341C406942698F2FF850C07
+C28213F2BE87CB61ADF247949B33990C8FB644CD1947A4361BD9082F3F87775C
+F9B6B3C782FFAB261574D7B92C8614777D75A4A5E70E81A3EF8F9E65F2B54FCB
+74CB574946FB17039DABB4608FC4FC19E17576D147FA89C3CE743602D5E3949E
+271D01D7DC8412568FB5F0A26D0F0D2FFEA7DD2E15F0CCF97FC1290F3A57C07F
+7A6CA349284C7D99AE35AB2A542926E51E75A3CB299CEF565D35A46B97B04A48
+9A19F8D098865C13866105F9267F8EEDF46A2745BD3338027BF145BDC4B433E8
+7D6AF5CB511A561202BF07F32A88907DB0910953645552B97DF086D4B23E0626
+7D9AB048A967BF848F9785E0C0865B075A9CE6D1A93889653D4D112E345DFA68
+B4C8B2B2F3C7677245F94FA8B1CB49E93872DB6FBC0AABC864D1302EDBE36F66
+B66E58A96F9E8AAAA78E782BC6F420C3B924C77C6A3A409771BC4A8BCCFEF312
+8CE50F4DC65962D128456C6FD92516E65895C953DF0AD89A1DCAB885AD1C4BB3
+004515C2AD16233FE40ADC07C5DAA6DD3F255B300BA4A3936854CE8522CD73A8
+CF6249EC364D59AF7B48585FB0D0EB60BD4564E245A5F3343B442A95935617AC
+1A10A7F9FD1B24238D982AF71099C81A9716F0E22D3343153C60965A2807DA72
+431ADD45282B94A0EBA24CF07A2C37E3DE1BB6B4E8AE5B55AB2EF5ED06CB80E4
+292322EDAFAD9F95E79C7D2A4D05FE338894F05437814FAFFA89F8421F199C21
+75DD69E6F6515AC60AE1F04536CFEEC08B75E8BCA3E5F1D796534757638C74DD
+66CC7E63517E555B4881DC484968E70570260DAB4DE30799508E45A1E492776B
+7FD91D9640DC65C2084841D167F9B4ED4DE11B8927E031F6FAC47625CB7CE436
+D5456E170593FBD168AB97259944CEC2CF5860A8331291EA487FF2930753DBF7
+D34B62D85AC926E234BB14109D1BFDF63B7A4B3D7198693E57F9B3834B61137E
+90F5BBA0D448BCEAC81F332842805D78448DF7E49AB60D168565DFE00C61CE4B
+1EADC9BFB2CDEC0F31D3E4DC9DDA5BE4B6F6581FC69679CF410F23AB2C680121
+354754BD7BB24B453E3136DAC2C0E57417756DD5FF6EC4A4CC2585BC914FED94
+2E4B4C3F46297178633D568A1A01C08CDEF563373ADCD27F271E96B7E089284F
+B9AF9384DA9849FF5E2783FDE1ED0BE31FD365EFF42783AC35C6545AAA3D8456
+61289DE34A4A979929266B5A14B668D417656EAF82FBFDD4423983672F86918A
+8B17C5ED098A534037A0A08D605376E4D0DC875AC8CE130258C739484AFF8E35
+DECEF886690D7252553B8AF1B2BE62CD8E20F79EB985D4D068C729D5C327A940
+C68DA2ACBA01E17BD77E3A0C88E96BCE0E5CCC10E3346EF8D5531D4B1050D49C
+76F7CE5EC28A4CE288E44D6FC118CE398324F3038B172912B55D9BB92360BAD1
+1C72A24E37C5D90C575921A09D49B54FACD8A5CB6B4CB1D3E28311035360C72B
+017B7252DBD8F12E703C62917342F8225E34F65E57868F6941717CCE4CCD557A
+1698CE1F85F488E9C31FE3A3EF4BC84985DBCA59DCF4C264B5BC15A1830C6DA7
+44C68C377C67A9A2FBBC758119F2BDD0736EA72B2D21B3BACEA25092F01DBB51
+C1765EC509E4037B1C45F3DD1C2F2D67E81693FB96F3214B93A7C8528C2E240A
+8AF01B1957624CD1DEFC1571D916E580A3F2C4DF79C784BEB0DC90A492863747
+DC697D8DA9CA0E659CA1B2BA49E518D81D81571C8781327D77AC41E495710B8B
+6280C3DCF9146E8219B45E05B4B8D643399E6A6918A88703CC5D6A2FC6152D98
+C4BF68D8E3C62687BE75EB7430C9C09754F12C552F0487AC642F21AF41133FCF
+981DE3BB36775EFC56D2FE567A63C25AEE9B5C77FB7940465F373A5BAF49F8D0
+342910863C8A8B6F2F9B8852719678DC4E5DD0D8520B323EB35987A5742B69E0
+59B34AA9E89D999A37473EA14E7C3B2BA333143E2F12BE171294A53AE0DEBA54
+86E3CA28DC56512B7ACCF41F973DF682F7FA24336CDE764AB15A9BD0FD7B7790
+00E14EF5F60FAFE84E53A61E7ED237E4D226DD758D2721272787FFF3B243C99F
+790329AD417664FD35FAE23C4A73CFFCB4833FA46387931A64CEC7A542FEE538
+60B315C68CB214D271DFFCF1A24EC10116AD47D9F0DE11B155E613FCC7ED9820
+D94399CA4797D8D018FFB12C70FFED1806DB01D2E1CBF9985320569F2A974E42
+4F3080197196DF06AEB06A78E13B88DCF9DB1D373EC7098E4A1CB4D315A80981
+F32BDD42AEE44F62666E0B9FE909E778FED99DB3C26264AAAA535FE75D4C694A
+9D2DCF79BBA21D50946154062786D8DB1315A199AA2BFEBC1487737D0D05CC66
+14A5F04887BF003974955508621EBDB785928FD740ED2FD56CEC31AC36AED961
+3989CC6805C4ED0671361CD9B33413F7419FCA778BD65F362699960D07952E68
+3AB2BEB6BD2F68D67A6D00C17381A11AE720936F293E8F9F32AACDC4A78C1940
+7D2833FC9394125E55B555F3D05CA2472D1E50FB669274B34B01F336EAFB7147
+6CAB3F222FF516B81AE9E1D1A699EA53B7A5DDE4DDF3DE5D8C94672EC5503030
+D2B21BD46AB490AA1B10C2784DF4EC6599D9CEC79C0118E5F2519FF1E4BC5CFB
+269D96AFCEEB217D94284CD7CE7D1408494E5334D6B7FC732A3A33CD00D821A4
+72AF49096ED670350AB2866878BAD1290D0BF7A0098AC4E820012811E04E2E68
+92D951CC64E7C325A4371A14630ECA1D9BACE4A5153799383566E6010573982A
+0EE4C58241639A54FA822D79FEB445B2CDAEBB55BDA5D95D1E42ABEB52A98D44
+5D3BB4D4596D68A073CD9B64E380DFE057A5FBD7C75F69EFFFEF3A650C635D0D
+857DED28F29EA25B2DC54CBC76B848F3CC36A2EF0096014E2C434E3B9C4D160C
+32852E608BBF4420631B4AE386CC2518B8995757E1208575555988A25E80DC99
+5D6A08B0CDD926E68FB554C7BDCDE43D1B9FC8EAC976F0220C687BDFC71C82A2
+A23F5A1F682A1750B140A78247530F715158D38EDEE287FE38A3B521FB162FFC
+C4E3D42C3CDE9304C8874684FE72AC273A0678988615FD4B3ADA32433EBB646B
+73EE74DC7F19DC555061EDF9DB34830432F792C39EF144E1019DD39C34F3CF2F
+72EE63AF4A166F6ED9EE0C873E4550BF92BBBDAEAE8B56659D28823ABFC62C7F
+B31E7A6BC27971220D7BA38FB890DD8A73F265A44A6A864798450694C7D321C6
+58EDF77EC8CF8A46C74142134F6E32C938C4611DF8B68DDB154D97303152DAF5
+DF404F390D21CD96800D9A0B01CF5AA6616F6DC95B627A1AB1CD4041564C1EAA
+1E92C0F12552131DAF4AAAC310FFC5B07F73B8C1086603FDDF5AF73D45BD51A6
+1AB0F4034AD8C3B2821F1A147E796737FEEF6953CB5D907D423EAB9C211B1B2D
+E8CB9F073D8C8236B716D29BAC3564549A74A593F3007507D9F24783F0592951
+5CD32EB8CE102347F66AE092F42502AB3E9837F176D84F149DE91565C1E531AF
+AB7D1FC1F8290BC3759DB439FFA12F20A140167B0B551A33287C87FBA7B1A959
+8108912DAA6DDF236B9C1C6C267B040CD981913554782EC653EC49752DA61374
+FD1CFB78F69F2F4C126201E1580148B5E7F588AE5F6115E59EACACCA4EDACB73
+3752EE3D118A8822E7D77540FF08122480F673D62A48596950D31F70EF9529EC
+3045FF1DEA06EF0364953DA475FEC525B566467FBA8DAA4C5561FF167A5AD3D0
+984CD74231C9DC85ACF76CDE37011961CC47F69C1C926CDCDFB2D88E054F30D1
+5131DE8C326E64F0A5B4BADCE0A23D4E27077A01928A61E6143FA88A9DDB4AA2
+2F3FA2AA707FE3D8F3CF8293F4A3F77E34DE41E6DA2ECC771A0B5C8FD871BE39
+3C643604F3010EE11915B16E73A0DD4B80F26E33E82C78FDFFFFB9A4A5C16AEB
+CA999ED6BBCE4AA9040B1FFD8440F50A0ACB47A168C67F4C9C42085DC14828F1
+4986D877F40AC39B2FA8453C8C99CCC06189BCB3BD6DDFCD04F395E44FF20EFA
+36827683D0F21D5F594590CB73E119183D13B12A49BCF076BF5CAE929ABF0586
+07EE7C76CF111D11E97424E385FCE3ABF8E5ED57A752316D140EB15F91ADFB48
+C83E6C72BCA77D158A7E72F3EFB0E3B7CC705C41ECE07C80562783F691213ED4
+19A231B4283AA5612CDD70EFCC77247153ECBA2629ADE0F58E6BC457B6FC8E4B
+B6247C567A625A209CDE6F643EBCCBB1C528B4CBF89D3FE6F57E233D461FE222
+73BAD8F1282EE07D0CC71149F749A9A6FC488EC0C394C748E2674FF163C423D3
+05BEEF103603D7316E9CB1ED4402565FD51FCB18B9DE36A133ECCAA6858BC65B
+A44BDB2FBA72D4446A9142826D79EF4CFE58F0D033DEB00BB7ED7658CF9F5E74
+BBC5B794E7E8186305D661D1EFD5F0BF625D4E261580B90C16D52831BC4D891B
+57E2E4439A52FAA08FDF8E24C2678508FB0FC883720D069107A1CA298689F518
+7BCA3A6D3DD612094F5C80C25BE56492DA6B0684E1653C34314056F9268F1AF9
+C85AB116913C252637B68F6F3C7273CBC97A34AA28877B525320D3660A604205
+151935749EA18B06D467D135532232FE5FCD555D06C25E0795AFFCADB8A13021
+FE0E0EEB1F95EF49F0D13143FE6031EE991C135869AF2E4567C9F91851E661E1
+6D5F6F604B5F89AC2BA6895F339CC14C868BBCDDC2448CCED52D53BBC92A24B9
+04EFC00A8DBC6801ECBCBFFCA6CECCE4E14DE6086868CDD9A946A96BF1B0CBDC
+B6A5352A058FABF56A64E9E379056ABF076F3C42BF2E264666EF0E43EC8DACD4
+651C7872E35539F2F25CD79DC19C1D5095B0E533CF7D67B64AB8704EBA2613DF
+FB54E6CE56CD5B648C2474F9B0C085F5FD448E230932E83B85443D4B789F3B59
+7FD94EB9A484CFDCDA1EA31D8AB19DF33A62F490D36CAB7EECA9BEA01CF98623
+1C3EF2C0D95964CC94B6C898E52FD243C1DA2F50DCEA0E6332D27701850E683D
+F06148B6161691E570EB20ACA91CDB9A37B2A85B39E079E59E716F5EEADF4048
+B99DA7753F251BFA97BF4AAF7504863418B30248E57ACA07FE724DB5531C187A
+87BD31066DD7686233F419818F6204EDFF98AB4FAD739F877D65966C86B8DC40
+FBD89C099B73ACAAF2F2D5E20D0F5FA9923883E3F63957B51841D388FE2CD6F8
+F0612FF9FA959E433D57FDEC20B228E36EFF156005B05BB8569DD2E19569600F
+0C3CE43E83EB96418EE435B250317E847C11B08D170290260175204AA5EC12EC
+F240F8849A4F895218DC9F3B6A2D0962AF5F7B73C0B564AFE6C061D4DB822DCF
+5F13200370B2C4CFBE1A6DB68263D82B5B0E158BEE61DA05A8BFC628C180AA1D
+F54696C6D8E0019DA676109CD8F632A970DD8AF0D34D4F6A42609AE2519A9B9E
+196F2BD9795365653859DB15208BD2C4F959AE7F8FE125C12A8BD8FF33FF8541
+683D9F0946D5AAEF45E07C07AD5669DA0CCEB72755D154717E28E83ACA12961E
+E8247AE547E7F8BD569F7A61684F5DE0428794E5030257D6FA19B910F1C53570
+C5848F65DE29F831570990F115CFEE746BA382AAABFBA5B00622695A5AD93433
+35281DAFD35FDA10C0E18E0766AC20E285FD08A5D7E3EF09ECA0073B5202DAFA
+6D8379E16E7E8CF57126C8E806325BEE463BF1E8AF0192106649DEC01C0209AF
+931758740F1A86202C61EA2D5BF9A354AFE9549089C251EC253F508904199165
+7ED9214466AC0E13E6B931B590746DB2459F2C650F20855522B6797E6C834E82
+849921A71260C8F8FC9125C6F37C637D2C842CAE3383BB89F311F328AF677CC1
+4968B20E87AD40CF77A4D8A3977A65859E2B21C063C65D6D4219FDC09BFF02FC
+4658706C0557E1131F825E5BD81C617CD580B8E74910AD426B1F3AB577441C14
+27076F43AEE30F25F66AEB2E062437E525F1AE2248BCCDE588EA8CAAC2E90B41
+79C6A38572371B6BE820932F5A2A407066AA22B89C93C397B1D6ABE300A21764
+A76CFF239D12BA72D4A0A5E134E7EB97CB5775C3951760F289D285FB1F1DF74A
+CC5616AA41FE0453D3D673CBCDD9E683BB6EF0DF747044E42E010BC73B0E4E3E
+15E5CF2FF0B3B77396E36C92677056986C2A74895330BF0910E7A259253A10D4
+53BB6CC27630CA17DD4DFC32D3579A85F3D6471190D1C97485C43C1BD8BE4D5B
+04F3B73E37C0133074858D0634FE51F71B24097F0F8267230DAFCAEF31199B18
+1622FEA408B9B4238E9DF76B86A2860E6302CDA8963DB08B5F98C809FE29DA1C
+E3EC2FE320DA85730E55E8C5F0720B0AF122E657C84822ECAC24F8539F9B329F
+73050E345D0A139DC6F0CECAE6B955DBEEEAF6C6EA843FA4AC07C717E848103A
+AD0AD3D53A39582C09B0C6B9BD85476501948ABB1257A898A1CBE1264F419CC6
+2FB7764296CEA53648D3D814272B9A2B5C437A031D931EFEA4C733FA090DAF5D
+278183620051F0082ED8855F3D5E9ACF1FEC993A90227AE52135DCFAE7E0ABCC
+D0A700D72E6D410FCA09970B68DDAEA2DB5E875622968B6D8656F8EDDEF31274
+B8AF9BF3C386E212785473F984D479D941334B9495B809C333234E8BF18BF302
+C518269A0769DD1C19A70A5ED0809CD7E65617D13621B7C9C0EC476DD24557BB
+8A73075E4314EBF2B88217EAE34FBEBC6F4436032FA37C5EC9AE40649FD9121B
+C79D449AC261819EE76880DAB062A41F629AE40679F5D1D7A221FAE71CEE47C0
+775581EDF128EB6B3FDF09F9BFF79B7DE525E310AB6402F309EA78B714D00B11
+27C4470950BAFC5662D5F7198EEA29E0BDE602BBCF063DFAA7331474A167F929
+67AC368D06CE6A8518AA9A865AC5210AEE55B5BAE3EBB32A9202973DBD0A2256
+AEF7B78C18DA0320065AAAAF0CE99B274EDFDE18CAF94186CADC14B8B34DB56B
+6C1B9D6872896F423A511D5DABBC9CEB7401648C1696048276DC6F02527ADBBD
+8A40E4AA5D90F18F4D54DE98BE0AF4F422464D21E8A426ECD6E29CE4572428B1
+652F3F21FA99011840C74BC4541E74B0809D0AEEAAD5C4F1C560866EB94B841C
+7B2E5EC6EC0D16845E5DBAC9B76E267DD5D84D2DF134FAE603D150A67013989E
+EFC227FAC476ADD48CCAEB50A0177010BB71EDF13DF610C6F3ACECEFF2825CB2
+5BB00E1713956EB9F7B500FA238BDBFF7CC724CBE39348D6D2CEEDE29F855E9D
+AF6C811C33A48F6CAFEEFF538E7D210ACC4D0BA05EAE25F6017046D957FE9552
+66AB675734654B49CF3332EEC4AF3C3012C49DDFCE5A6638F005AF5E781564B1
+5F7D3436EA5E93742CB3BF5F2DB495CD9915727F57FC4B4064910D11A5311224
+C95ACAC2437C62B03B0237C8E67D174E22F0C05B20E22CC9EB0A985DF5D8A06E
+CD97655233FD8FEF5706CAA7DB42E4E93C84E187BAF0D0B77BCCA66C5A9FAA56
+C713152046D4EFE16DBFC8292D7E8CD967D0637C8EEA9CC6E9C10F21574D159E
+421FEBB91B4F3C7A631743EABD78AABDC777638F5C27A9E84C556182A6B44680
+4CFF19727F6A9F55714F6C601AAF37BA7DDF3BF05F38C9D78ADD2696DBB72F91
+CD05E7E8E28DA09EB1DB310E84E57D1443084B71A418D36EFFEBFF9B0B642796
+2DA2484BA8A682A32891AEDC7F214881B2C1214311F32BB9FF89D5E826A0F302
+320DB8C2AFF234E74FDAB4CF5CED068393EBEC5C2AA6856EB06C5209ED8A4638
+BD62BAB27975DD6D5AC341DA9534B67D1D0DEBE47FD2507BDAE067B033EDD2AB
+4F95D7E719F2FDE5C8AB3AFEE3D7692563A98DB61D860BC30FB50CA8D3BC2A8D
+98EF3502CC73B2E400BEF294AD0BE589153135E5F3FF29558AA402DB140B0F3E
+7532B013C7E49FBF01D49412D3CDBD5F3F2A88CC4F1A8BE8AA37732D4CC3C200
+DFF46BF6285EA28FE9099B83F80254B52BCC09625CB7B46E525532AED25EA4EA
+D1B8B9DFDA0953FEE0EAD4C453D54A3D8A20967EA01FF2577520883C21626E7D
+CE74BF83B1EA8BBD003C0C156FFE1A40291DBA1BD2903DF817A3F10D2A23E38A
+52D417CA3D6CEA45486AB0A44F430453F03BC55889D8EE56B4F9F6CBE8733162
+79F91A7420EF9BDA50799BE85F2BC8359848F87884E80BE28FC53769FA7AAF9A
+04DB7B236B530892F95EEFBE215970F9D49643F3F8E403F2B1BF5BDDAAFC0D3B
+E1588E9844E678C1EB0AEA37DAA4F7E7E994282F3A2B724695419C2158FE22DA
+47FEE0847BFBFA5EFD3ACC994D84A67984584DE14194D1C0B75835F2B1B3187B
+D445422C3293264AADDBDD7D7D12E5D32398C8A86E5C226DADF3F2A57CEAE431
+C35EDD579FF2387AAE5140C4A6AA9817CD846A41553B96107DEAF70DF965D382
+200BEE43AE4C5C81FE0E433D2CFB7FEE12DC776068269A0E57FAA239846F4111
+E2A21167E8586806E89B8A175CEBB4210CBDD4AFF9541809438DCFE21A53404D
+5ABDD8F8206C3DB6B5922355EE472DBB2B82F135130887633DE0AD06CDC5D83B
+03A5F344AE6F71A26FB37CB09E8AB8D6F7C3A6A80FA3AEA4C5EF315C9FCB8BED
+25E987BAB99207D62B67DBE2FE10D2B7BC906740896BB60636F9A76883DC6930
+8AA53B27C38E5344D04C4D41FEFB65AF21E72BC5679F954DADBBE17C816A7730
+0E6F819DFFAE64FC11ECB5797AACADCE677985655130FA294AF2F54FCD188E0C
+C925A344E93EF89E7873D8B89A9713B65BA5031310C23FA22060C6CDABA17601
+C16DD8CB4E7CF11087E5779CFDD902777F3733F989E2B8BE7952405F6EF8DC45
+002E86E34BDBB355D2D2F69C8162261F6EA65E6C023129FAD52EC5D0BE40C93F
+C3B82ED34D7D66CDA7736B6CD3CDCD54FE407EAE7F0DF72BEDA1D886D66AB9FC
+BAAFF994901A772BCFF6E9B74D4302EE2A42FE316E3D62FD28947FF4C24D6458
+98E47CD3BC7718E6605EFA419AAB4FA47DB60AE416E47DE534E0D27F01E597B5
+31BC63BF6BB2EA2CC0ADF0D4D65DACF00E814A2F43BDDD82AE26C169495AA88A
+B964EF8D821EAC19D79537B4C54292D96F0EB92D79E9C753EF8D0BA510F5C805
+C99FA4F5A02AA9211B828DDFEA3A007802C24FAC460E47C414EF76A43E89C03F
+2510E5C7AA88496A6F7FC7C76B38BC2BDB88C804A077C6C2457C28363CB383AC
+D0A7775C9D5BBC31F6EB9CD4D74A49A5B1B43A8A1ECA8C510564F954B411E341
+CB72EFE4059F520F5618F42ECEF3640E8D8A04A66A25DD22DCE8B27EA09D8289
+B6B657AC3B938F51525BC21693C71C2EA1FF6C6599B03BC18C37305ACD9E4D0D
+86EFC8803A7FFE120D4A78FBDF58FE8B3DBD4277A9324DB639C0F4DE5D315FCC
+12BC9C76767D02D0076FF1E628A02445B5EA434A1E62F70A9F68FF00B174AEA6
+4DCA2606C1EBFA388B480F310FC5AFE00AD76B66D9815B30EFEDEF50C779659B
+32A9FE03DAAFEE61673C4DBC8CC3B8E4896A4DD04809C49896E189CCF10DC876
+DA3AA77F11514011E4923B37604777D26A7A713C43182D4F2E65F2258C57E936
+5DCC38EEEC5F472BEB3D414327F3F0ED8F64DE2C4EE1FE29D89B458FDD631C39
+A3AD3FA18F4181F57A402F7B70717AED64A5ABA2788D5911363A29443B53B857
+5C03FA766939388C3E4217414072A274DD931316C88865677712B3D5BD08B5EE
+31828FB9447B2A4769EC44E0A23149547170693090FEE29EF7FA3E1813EEAAD3
+F84024D31527967E5B32029DF633F8DBDA684804BF27E380BE47EE4DC93B4631
+2F216FD5CA6FAA8FA131A981655ADE7177593D6D36669D8009593A8B0CAC7D6B
+90FA814CE606E39DAE568E8184B1ED0AEFF8F661EF0BCCFE2175410C83E8DC55
+E79D6BDF0142A8F2787284DE64DCE081D010E7691ADC1C8CDA4F1A07100380F7
+88451D918756E7BA821C5FE863BD24FC40509A4321A128A594F16DC44F8A9B09
+5ED8BA56742AFFE3D035C7D4AE99AEE9C47C0B3DE8B1B405692EBE6620E888FF
+586F99A2EB839A2254FDB6A8E20FB4707A96E5EA90CC8F24785CDE5F3CD5E96C
+6AFDF17B6D631B2AAA9B5286705C4639402044162CBB377D55C35F9269FCA54B
+295B303E8BFDEE9FA4CEEBDDADAF7DF36F4437E0767888D022BB1A9982BDF897
+2AED625CCDFF90BF6CC9861DF4C221222A3468DDECEDB61CF15919F1413AA68C
+BA836D85ECC0F105187A79E74461264712C7B4EBDE956A4A3427932617ADE2F4
+309A997793DCBBE5ACDA70FE87F8B6D5EBDF6B62F0F88FB31AA77DBDF2CB54BB
+3AAE3D5EED8F7E524E96B92572F96D4A6663A8593AE252F0E0B2C82A28925494
+1916268E1188FF78CCD6D032483CD96CE38339FC8C93FC3346C769CD784E1ECE
+B167D399367EA157C29634F7F491C69B2E4409E266244223E9EA76AA24FB054A
+767725CB3FC3544CA56F53D550C58BAA971C5583DF6DC0B71E44AE077D168D31
+BA6289A70BECB920BF4A5E1D5B4C8D9CE769B220B0EDA34C8FC5A4D7C4C0A34C
+53B62725EE9DED9AD1014A852AB01ED11F2D37E382D8F50710568E87A9962646
+93B8C5930F923FEEE910A2C7938E8C0FB114A5EF5F29E0191BDB916E80C5ED24
+5BEADF3FF1C1D289915EBF67CDBC8FEE20AA2C85F358B1F68F4235193DA8B929
+028D8F29E643C65EE0B340C2DD98C67AA4C1C134330C5D2C1F38CA5B44E6F20E
+9113386A3130AC621302ED0570548F0243860750D459E07882E3259F7835B477
+24ED78894AE10D23DB0018EEB07CA30149633B252B6BAD91BA0B249133DFA550
+D94E0DE1DF4BBBECA781F50A7425B3B813119B879804AF93E20FAE9065D5978D
+6550042EAC6893D0DB32133E9F6AAE0CDA18F2A8E791E419C5C06AF8A0C13ED0
+F70168D97EBBBFB3FADFEE3C13C832EE5C8CC45392EF22A5E189F6CC2FF7A3EA
+775ABFB45914561197B0565FB9252B6337C1037DA138254A4B2F14840FBCC0AF
+542909DB96C932D6278E7A794F5012A64E64E8BF6EFB4EAB0AA8A44CAC60A35C
+77ADEE41C593A3C05D4D696DF1505812ACFBA9E1F25145A65DF4746397F0507A
+B4F513BBE86125F0E56A8F3DCCA6B826D8EA7215E43F2F8386DE77D79F2DD2F4
+F16A5E6D2613C8C1D0BD228E463845C4564C1502EF6C6BC7D95CF703CE2E917A
+7BDA0F673D704787D615FEAA03D191675C7C42358ED76ED9D93F3B7DB3A80FF7
+6673E277FC1C076B045CD999AA9DC27C4395F9D9DD1E6CAE399E594951B00A29
+C58E2A51746E23D62056D217B8B153FD5EFB7431C1DE10B522A6554F4C867811
+D01A4182FA40ACC3A4434E47C7A7E13C4B17B2185BD7B9D4113BF6F100403BCF
+C97A296390E818A51BF6E8A32D8020CC9EABECCB19974FBCA71FEB111A97329E
+914DFEA6DF2E049887308EA04835DFF5F90C351096BD0CB54429D5E65E983F33
+C15673DA1682B05FA4F4FA25A9F2274D38BDF45EBAFEFCBB4101F05C1176A320
+2758C29993930FC53EAF2BD7827ADA365E3903FE814BA38EC0E5D84653C36FED
+9A12C08EFB4EE59A1FCC0E685307CA47ECC566B35E1AAE63294E3F1290EC7C1C
+9879AB40340A18005F32671D944F1EC41F37583F853C95A7F38263D3EE46601B
+68906A83BD9A432AB57D00D2AB94AC898C8871A760495833B95FA8C3954E3117
+B04B87A8D2F64CB4AE9F03F0700336FF1EA7FB63CDBA421830555C4078DB89BB
+96D258A0357CA7B0510FB866A78EEE6B7F291BE420E18B277C56D9689D2F268E
+C3A9CE24E41B40937122EC9693F6DD05A37D86D66D9B2A7C3B334811EAA7F7CD
+14161669DD08D5BC7D5F027DFA40DE592AADF03220EE98F7B2EB0CDAEFD4D025
+5E940DAEAE655918F5BAA8AC1ECEC3BDD8FAEE51E6C860B21A91B5EC575170A3
+68A57C9D387FDDC789F917E6C8F27A125F8DF09ED2D5C4E6146CD1A6D40C2D59
+6D135D87CC210DC862F7E5A5EAEBD8ED41D349E7020941A331354035D4578717
+587BB03082376F40AF39176484396FE5DF2665CF0F8CEDB45EB8EA2470EE975D
+44D12FE5FB5318BD7B467453B15F3B34F44329630F208E85DEAFC6FCC0D4629E
+646D4C193990BD338CA85DC0567A0C900E886417B7463D743275FD8A2E9F80BE
+A024A1EDB474BA3D42D4F511EAACE9B6B3C3CF8FC4A4CA21214C9A6D5F3C8254
+2C5E34CC6DFEFA18D15B86A304545156DA9751E9E91389BE5748BDAB0622A0F7
+AFBD7537F78471FBFF2E23D9230660477424B0C0FEE8072E8F6D09DE546C508D
+C7A9BF7490BFAE0649EA4C0B47AFF552463A56911C0E38A7BA6BE8374C71E9D2
+CDED7009CA1E07E8CB5BD42C47B9515135DB078A4921930F0943CD9FD7A34D34
+FAEABEA51330C7EB04E8F5701B51176FCADADD9BA11007CFA44084BC7FCD8F18
+78AB1313AF8B7B6248D1FE6002AE74AD685F30819293EB9A46C3C36F0BF8C556
+0E795C6F342D5506A7108EF2BA214D471199EA69FD048DB5923047FC9F286C7A
+4502A66420009608AA93F7335BCD269C1F49A1733275DFB0F2CD2815C6A460F8
+E270D47B76030942B8FAA394FEA3E90A49F61891F9B42AF87CEB20F6A53564CE
+B16D50CBDA7768B1D346CFEC38B1DA067AA8D4C870B0FC17ED10053EE2CC5ED2
+04FC4E384E535483895A5DBB6152790CC9468D745EE48FAD5927D7D5E575561D
+5DAA69C4D6121F001547C860648EF16DD4D66988CECB6DDDC9E7C9D64514C0AA
+CE40CEE578D9E8F1CC632629AD3DB1BE2453F30A3F0403A4F769FFA960DFC64F
+01B08B7F0F4D94E662C79E1608C9AD1919A9DACCE2E670
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
48 48 66 48 51 35 36 36 48 51 45 51 76 25 48 28 25 51
45 28 40 51 40 51 45 7[68 68 93 1[68 66 51 67 1[62 71
68 83 57 71 1[33 68 71 59 62 69 66 64 68 12[45 45 45
-45 3[30 8[45 21[76 1[51 53 11[{}57 90.9091 /CMSL10 rf
-/Fs 132[67 1[71 71 97 71 75 52 53 55 1[75 67 75 112 37
-71 41 37 75 67 41 61 75 60 75 65 3[37 1[37 1[102 102
+45 3[30 8[45 2[25 18[76 1[51 53 11[{}58 90.9091 /CMSL10
+rf /Fs 132[67 1[71 71 97 71 75 52 53 55 1[75 67 75 112
+37 71 41 37 75 67 41 61 75 60 75 65 3[37 1[37 1[102 102
139 102 103 94 75 100 101 92 101 105 128 81 105 69 50
105 106 85 88 103 97 96 102 105 64 4[37 67 67 67 67 67
67 67 67 67 67 1[37 1[37 1[67 5[67 112 1[41 20[75 78
TeXDict begin 1 0 bop 150 1318 a Fv(Bash)64 b(Reference)j(Man)-5
b(ual)p 150 1385 3600 34 v 2361 1481 a Fu(Reference)31
b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(5.0,)g(for)f
-Ft(Bash)g Fu(V)-8 b(ersion)31 b(5.0.)3364 1697 y(Ma)m(y)g(2019)150
+Ft(Bash)g Fu(V)-8 b(ersion)31 b(5.0.)3350 1697 y(June)e(2019)150
4927 y Fs(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46
b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068 y(Brian)f(F)-11
b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
%%Page: 2 2
TeXDict begin 2 1 bop 150 4279 a Fu(This)35 b(text)h(is)g(a)g(brief)f
(description)h(of)f(the)h(features)g(that)g(are)g(presen)m(t)g(in)f
-(the)h(Bash)f(shell)h(\(v)m(ersion)150 4389 y(5.0,)c(20)f(Ma)m(y)g
-(2019\).)150 4523 y(This)k(is)h(Edition)f(5.0,)k(last)d(up)s(dated)e
-(20)j(Ma)m(y)g(2019,)i(of)c Fr(The)h(GNU)g(Bash)g(Reference)g(Man)m
-(ual)p Fu(,)i(for)150 4633 y Ft(Bash)p Fu(,)29 b(V)-8
-b(ersion)31 b(5.0.)150 4767 y(Cop)m(yrigh)m(t)602 4764
-y(c)577 4767 y Fq(\015)f Fu(1988{2018)35 b(F)-8 b(ree)31
-b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390 4902
-y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y)-8
-b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s(cumen)m(t)f
-(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8
+(the)h(Bash)f(shell)h(\(v)m(ersion)150 4389 y(5.0,)c(12)f(June)e
+(2019\).)150 4523 y(This)34 b(is)h(Edition)g(5.0,)i(last)e(up)s(dated)f
+(12)h(June)f(2019,)k(of)d Fr(The)f(GNU)i(Bash)f(Reference)g(Man)m(ual)p
+Fu(,)i(for)150 4633 y Ft(Bash)p Fu(,)29 b(V)-8 b(ersion)31
+b(5.0.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577 4767
+y Fq(\015)f Fu(1988{2018)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
+b(oundation,)31 b(Inc.)390 4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h
+(to)g(cop)m(y)-8 b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s
+(cumen)m(t)f(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8
b(ree)27 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)26
b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)390 5121 y(published)43
b(b)m(y)h(the)h(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8
b Fu(Displa)m(y)26 b(information)f(only)h(ab)s(out)e(jobs)h(that)g(ha)m
(v)m(e)i(c)m(hanged)e(status)h(since)1110 408 y(the)31
b(user)e(w)m(as)i(last)g(noti\014ed)f(of)h(their)f(status.)630
-570 y Ft(-p)384 b Fu(List)31 b(only)f(the)h(pro)s(cess)f
+560 y Ft(-p)384 b Fu(List)31 b(only)f(the)h(pro)s(cess)f
Fm(id)g Fu(of)h(the)f(job's)g(pro)s(cess)g(group)g(leader.)630
-732 y Ft(-r)384 b Fu(Displa)m(y)32 b(only)e(running)f(jobs.)630
-894 y Ft(-s)384 b Fu(Displa)m(y)32 b(only)e(stopp)s(ed)f(jobs.)630
-1056 y(If)23 b Fr(jobsp)s(ec)28 b Fu(is)23 b(giv)m(en,)i(output)e(is)g
+711 y Ft(-r)384 b Fu(Displa)m(y)32 b(only)e(running)f(jobs.)630
+862 y Ft(-s)384 b Fu(Displa)m(y)32 b(only)e(stopp)s(ed)f(jobs.)630
+1014 y(If)23 b Fr(jobsp)s(ec)28 b Fu(is)23 b(giv)m(en,)i(output)e(is)g
(restricted)h(to)g(information)f(ab)s(out)g(that)h(job.)37
-b(If)23 b Fr(jobsp)s(ec)630 1165 y Fu(is)30 b(not)h(supplied,)e(the)i
-(status)g(of)f(all)h(jobs)f(is)h(listed.)630 1301 y(If)k(the)g
+b(If)23 b Fr(jobsp)s(ec)630 1123 y Fu(is)30 b(not)h(supplied,)e(the)i
+(status)g(of)f(all)h(jobs)f(is)h(listed.)630 1254 y(If)k(the)g
Ft(-x)f Fu(option)i(is)f(supplied,)g Ft(jobs)f Fu(replaces)i(an)m(y)f
Fr(jobsp)s(ec)40 b Fu(found)34 b(in)h Fr(command)j Fu(or)630
-1410 y Fr(argumen)m(ts)j Fu(with)c(the)h(corresp)s(onding)e(pro)s(cess)
+1363 y Fr(argumen)m(ts)j Fu(with)c(the)h(corresp)s(onding)e(pro)s(cess)
h(group)f Fm(id)p Fu(,)k(and)c(executes)j Fr(command)p
-Fu(,)630 1520 y(passing)30 b(it)h Fr(argumen)m(t)r Fu(s,)g(returning)f
-(its)g(exit)i(status.)150 1682 y Ft(kill)870 1817 y(kill)47
+Fu(,)630 1473 y(passing)30 b(it)h Fr(argumen)m(t)r Fu(s,)g(returning)f
+(its)g(exit)i(status.)150 1624 y Ft(kill)870 1755 y(kill)47
b([-s)g Fj(sigspec)p Ft(])e([-n)i Fj(signum)p Ft(])f([-)p
-Fj(sigspec)p Ft(])f Fj(jobspec)h Ft(or)h Fj(pid)870 1927
-y Ft(kill)g(-l|-L)f([)p Fj(exit_status)p Ft(])630 2063
+Fj(sigspec)p Ft(])f Fj(jobspec)h Ft(or)h Fj(pid)870 1864
+y Ft(kill)g(-l|-L)f([)p Fj(exit_status)p Ft(])630 1995
y Fu(Send)22 b(a)i(signal)g(sp)s(eci\014ed)f(b)m(y)g
Fr(sigsp)s(ec)29 b Fu(or)24 b Fr(sign)m(um)f Fu(to)h(the)g(pro)s(cess)f
-(named)g(b)m(y)g(job)g(sp)s(eci\014-)630 2172 y(cation)k
+(named)g(b)m(y)g(job)g(sp)s(eci\014-)630 2104 y(cation)k
Fr(jobsp)s(ec)j Fu(or)25 b(pro)s(cess)g Fm(id)h Fr(pid)p
Fu(.)38 b Fr(sigsp)s(ec)31 b Fu(is)25 b(either)h(a)g(case-insensitiv)m
-(e)i(signal)e(name)630 2282 y(suc)m(h)37 b(as)g Ft(SIGINT)f
+(e)i(signal)e(name)630 2214 y(suc)m(h)37 b(as)g Ft(SIGINT)f
Fu(\(with)h(or)g(without)g(the)g Ft(SIG)g Fu(pre\014x\))f(or)h(a)h
-(signal)g(n)m(um)m(b)s(er;)h Fr(sign)m(um)630 2392 y
+(signal)g(n)m(um)m(b)s(er;)h Fr(sign)m(um)630 2324 y
Fu(is)g(a)f(signal)i(n)m(um)m(b)s(er.)63 b(If)39 b Fr(sigsp)s(ec)44
b Fu(and)38 b Fr(sign)m(um)g Fu(are)h(not)g(presen)m(t,)h
-Ft(SIGTERM)d Fu(is)h(used.)630 2501 y(The)27 b Ft(-l)h
+Ft(SIGTERM)d Fu(is)h(used.)630 2433 y(The)27 b Ft(-l)h
Fu(option)g(lists)h(the)f(signal)h(names.)39 b(If)28
b(an)m(y)g(argumen)m(ts)h(are)f(supplied)f(when)g Ft(-l)g
-Fu(is)630 2611 y(giv)m(en,)32 b(the)g(names)e(of)i(the)f(signals)g
+Fu(is)630 2543 y(giv)m(en,)32 b(the)g(names)e(of)i(the)f(signals)g
(corresp)s(onding)f(to)i(the)f(argumen)m(ts)g(are)h(listed,)g(and)630
-2720 y(the)c(return)f(status)h(is)g(zero.)41 b Fr(exit)p
-1796 2720 28 4 v 41 w(status)32 b Fu(is)c(a)g(n)m(um)m(b)s(er)f(sp)s
-(ecifying)g(a)i(signal)f(n)m(um)m(b)s(er)f(or)630 2830
+2652 y(the)c(return)f(status)h(is)g(zero.)41 b Fr(exit)p
+1796 2652 28 4 v 41 w(status)32 b Fu(is)c(a)g(n)m(um)m(b)s(er)f(sp)s
+(ecifying)g(a)i(signal)f(n)m(um)m(b)s(er)f(or)630 2762
y(the)h(exit)h(status)g(of)f(a)h(pro)s(cess)e(terminated)i(b)m(y)f(a)h
(signal.)40 b(The)28 b Ft(-L)g Fu(option)g(is)g(equiv)-5
-b(alen)m(t)630 2939 y(to)34 b Ft(-l)p Fu(.)47 b(The)32
+b(alen)m(t)630 2872 y(to)34 b Ft(-l)p Fu(.)47 b(The)32
b(return)g(status)h(is)g(zero)g(if)g(at)g(least)h(one)f(signal)h(w)m
-(as)f(successfully)g(sen)m(t,)h(or)630 3049 y(non-zero)d(if)f(an)h
+(as)f(successfully)g(sen)m(t,)h(or)630 2981 y(non-zero)d(if)f(an)h
(error)f(o)s(ccurs)g(or)g(an)g(in)m(v)-5 b(alid)31 b(option)g(is)f
-(encoun)m(tered.)150 3211 y Ft(wait)870 3346 y(wait)47
+(encoun)m(tered.)150 3133 y Ft(wait)870 3263 y(wait)47
b([-fn])f([)p Fj(jobspec)g Ft(or)h Fj(pid)g Ft(...)o(])630
-3482 y Fu(W)-8 b(ait)28 b(un)m(til)f(the)f(c)m(hild)h(pro)s(cess)f(sp)s
+3393 y Fu(W)-8 b(ait)28 b(un)m(til)f(the)f(c)m(hild)h(pro)s(cess)f(sp)s
(eci\014ed)g(b)m(y)g(eac)m(h)h(pro)s(cess)f Fm(id)h Fr(pid)i
-Fu(or)d(job)g(sp)s(eci\014cation)630 3592 y Fr(jobsp)s(ec)40
+Fu(or)d(job)g(sp)s(eci\014cation)630 3503 y Fr(jobsp)s(ec)40
b Fu(exits)35 b(and)f(return)g(the)g(exit)i(status)f(of)g(the)g(last)g
-(command)f(w)m(aited)i(for.)53 b(If)35 b(a)630 3701 y(job)g(sp)s(ec)f
+(command)f(w)m(aited)i(for.)53 b(If)35 b(a)630 3613 y(job)g(sp)s(ec)f
(is)h(giv)m(en,)i(all)f(pro)s(cesses)f(in)f(the)h(job)g(are)g(w)m
(aited)h(for.)54 b(If)35 b(no)f(argumen)m(ts)i(are)630
-3811 y(giv)m(en,)d(all)f(curren)m(tly)f(activ)m(e)i(c)m(hild)f(pro)s
-(cesses)f(are)g(w)m(aited)h(for,)g(and)e(the)i(return)e(status)630
-3921 y(is)25 b(zero.)40 b(If)24 b(the)i Ft(-n)e Fu(option)h(is)g
-(supplied,)g Ft(wait)f Fu(w)m(aits)i(for)f(a)g(single)h(job)f(to)h
-(terminate)g(and)630 4030 y(returns)33 b(its)j(exit)f(status.)54
-b(Supplying)33 b(the)i Ft(-f)f Fu(option,)j(when)c(job)i(con)m(trol)h
-(is)f(enabled,)630 4140 y(forces)j Ft(wait)e Fu(to)j(w)m(ait)f(for)g
-(eac)m(h)g Fr(pid)j Fu(or)c Fr(jobsp)s(ec)43 b Fu(to)38
-b(terminate)h(b)s(efore)e(returning)g(its)630 4249 y(status,)f(in)m
-(tead)f(of)g(returning)f(when)f(it)i(c)m(hanges)h(status.)53
-b(If)34 b(neither)h Fr(jobsp)s(ec)k Fu(nor)34 b Fr(pid)630
-4359 y Fu(sp)s(eci\014es)c(an)g(activ)m(e)j(c)m(hild)e(pro)s(cess)f(of)
-g(the)h(shell,)f(the)h(return)e(status)i(is)f(127.)150
-4521 y Ft(disown)870 4656 y(disown)46 b([-ar])g([-h])h([)p
-Fj(jobspec)f Ft(...)h(|)g Fj(pid)g Ft(...)g(])630 4792
-y Fu(Without)33 b(options,)h(remo)m(v)m(e)g(eac)m(h)f
-Fr(jobsp)s(ec)38 b Fu(from)32 b(the)h(table)g(of)g(activ)m(e)h(jobs.)47
-b(If)32 b(the)h Ft(-h)630 4902 y Fu(option)j(is)f(giv)m(en,)i(the)f
-(job)f(is)g(not)g(remo)m(v)m(ed)h(from)f(the)g(table,)j(but)c(is)i
-(mark)m(ed)f(so)g(that)630 5011 y Ft(SIGHUP)e Fu(is)j(not)f(sen)m(t)h
-(to)g(the)f(job)g(if)g(the)g(shell)h(receiv)m(es)h(a)e
-Ft(SIGHUP)p Fu(.)54 b(If)34 b Fr(jobsp)s(ec)40 b Fu(is)c(not)630
-5121 y(presen)m(t,)41 b(and)d(neither)h(the)g Ft(-a)f
-Fu(nor)g(the)h Ft(-r)f Fu(option)h(is)g(supplied,)g(the)g(curren)m(t)g
-(job)f(is)630 5230 y(used.)g(If)25 b(no)h Fr(jobsp)s(ec)k
-Fu(is)c(supplied,)f(the)h Ft(-a)f Fu(option)h(means)g(to)g(remo)m(v)m
-(e)h(or)e(mark)h(all)g(jobs;)630 5340 y(the)31 b Ft(-r)e
-Fu(option)i(without)g(a)f Fr(jobsp)s(ec)36 b Fu(argumen)m(t)30
-b(restricts)h(op)s(eration)g(to)g(running)e(jobs.)p eop
-end
+3722 y(giv)m(en,)28 b Ft(wait)c Fu(w)m(aits)j(for)e(all)i(running)c
+(bac)m(kground)j(jobs)f(and)g(the)h(last-executed)h(pro)s(cess)630
+3832 y(substitution,)i(if)g(its)h(pro)s(cess)f(id)g(is)g(the)g(same)h
+(as)f Fr($!)p Fu(,)i(and)d(the)h(return)g(status)g(is)g(zero.)41
+b(If)630 3941 y(the)32 b Ft(-n)e Fu(option)i(is)g(supplied,)e
+Ft(wait)g Fu(w)m(aits)j(for)e(a)h(single)g(job)f(to)h(terminate)g(and)f
+(returns)630 4051 y(its)39 b(exit)h(status.)65 b(Supplying)38
+b(the)g Ft(-f)g Fu(option,)k(when)37 b(job)i(con)m(trol)h(is)f
+(enabled,)h(forces)630 4161 y Ft(wait)33 b Fu(to)j(w)m(ait)g(for)e(eac)
+m(h)i Fr(pid)h Fu(or)e Fr(jobsp)s(ec)k Fu(to)d(terminate)f(b)s(efore)g
+(returning)e(its)i(status,)630 4270 y(in)m(tead)c(of)g(returning)e
+(when)h(it)h(c)m(hanges)g(status.)41 b(If)30 b(neither)h
+Fr(jobsp)s(ec)k Fu(nor)30 b Fr(pid)j Fu(sp)s(eci\014es)630
+4380 y(an)d(activ)m(e)j(c)m(hild)e(pro)s(cess)f(of)g(the)h(shell,)f
+(the)h(return)e(status)i(is)f(127.)150 4531 y Ft(disown)870
+4662 y(disown)46 b([-ar])g([-h])h([)p Fj(jobspec)f Ft(...)h(|)g
+Fj(pid)g Ft(...)g(])630 4792 y Fu(Without)33 b(options,)h(remo)m(v)m(e)
+g(eac)m(h)f Fr(jobsp)s(ec)38 b Fu(from)32 b(the)h(table)g(of)g(activ)m
+(e)h(jobs.)47 b(If)32 b(the)h Ft(-h)630 4902 y Fu(option)j(is)f(giv)m
+(en,)i(the)f(job)f(is)g(not)g(remo)m(v)m(ed)h(from)f(the)g(table,)j
+(but)c(is)i(mark)m(ed)f(so)g(that)630 5011 y Ft(SIGHUP)e
+Fu(is)j(not)f(sen)m(t)h(to)g(the)f(job)g(if)g(the)g(shell)h(receiv)m
+(es)h(a)e Ft(SIGHUP)p Fu(.)54 b(If)34 b Fr(jobsp)s(ec)40
+b Fu(is)c(not)630 5121 y(presen)m(t,)41 b(and)d(neither)h(the)g
+Ft(-a)f Fu(nor)g(the)h Ft(-r)f Fu(option)h(is)g(supplied,)g(the)g
+(curren)m(t)g(job)f(is)630 5230 y(used.)g(If)25 b(no)h
+Fr(jobsp)s(ec)k Fu(is)c(supplied,)f(the)h Ft(-a)f Fu(option)h(means)g
+(to)g(remo)m(v)m(e)h(or)e(mark)h(all)g(jobs;)630 5340
+y(the)31 b Ft(-r)e Fu(option)i(without)g(a)f Fr(jobsp)s(ec)36
+b Fu(argumen)m(t)30 b(restricts)h(op)s(eration)g(to)g(running)e(jobs.)p
+eop end
%%Page: 107 113
TeXDict begin 107 112 bop 150 -116 a Fu(Chapter)30 b(7:)41
b(Job)30 b(Con)m(trol)2526 b(107)150 299 y Ft(suspend)870
or job specification @var{jobspec} exits and return the exit status of the
last command waited for.
If a job spec is given, all processes in the job are waited for.
-If no arguments are given, all currently active child processes are
-waited for, and the return status is zero.
+If no arguments are given,
+@code{wait} waits for all running background jobs and
+the last-executed process substitution, if its process id is the same as
+@var{$!},
+and the return status is zero.
If the @option{-n} option is supplied, @code{wait} waits for a single job
to terminate and returns its exit status.
Supplying the @option{-f} option, when job control is enabled,
Return a status of 0 (true) or 1 (false) depending on the evalu-
ation of the conditional expression _\be_\bx_\bp_\br. Each operator and op-
erand must be a separate argument. Expressions are composed of
- the primaries described above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.
- t\bte\bes\bst\bt does not accept any options, nor does it accept and ignore
- an argument of -\b--\b- as signifying the end of options.
+ the primaries described in the b\bba\bas\bsh\bh manual page under C\bCO\bON\bND\bDI\bI-\b-
+ T\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS. t\bte\bes\bst\bt does not accept any options, nor does
+ it accept and ignore an argument of -\b--\b- as signifying the end of
+ options.
- Expressions may be combined using the following operators,
+ Expressions may be combined using the following operators,
listed in decreasing order of precedence. The evaluation
- depends on the number of arguments; see below. Operator prece-
+ depends on the number of arguments; see below. Operator prece-
dence is used when there are five or more arguments.
!\b! _\be_\bx_\bp_\br True if _\be_\bx_\bp_\br is false.
(\b( _\be_\bx_\bp_\br )\b)
- Returns the value of _\be_\bx_\bp_\br. This may be used to override
+ Returns the value of _\be_\bx_\bp_\br. This may be used to override
the normal precedence of operators.
_\be_\bx_\bp_\br_\b1 -a\ba _\be_\bx_\bp_\br_\b2
True if both _\be_\bx_\bp_\br_\b1 and _\be_\bx_\bp_\br_\b2 are true.
null.
2 arguments
If the first argument is !\b!, the expression is true if and
- only if the second argument is null. If the first argu-
- ment is one of the unary conditional operators listed
- above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the expression is
+ only if the second argument is null. If the first argu-
+ ment is one of the unary conditional operators listed
+ above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the expression is
true if the unary test is true. If the first argument is
not a valid unary conditional operator, the expression is
false.
3 arguments
The following conditions are applied in the order listed.
- If the second argument is one of the binary conditional
+ If the second argument is one of the binary conditional
operators listed above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the
result of the expression is the result of the binary test
- using the first and third arguments as operands. The -\b-a\ba
- and -\b-o\bo operators are considered binary operators when
- there are three arguments. If the first argument is !\b!,
- the value is the negation of the two-argument test using
+ using the first and third arguments as operands. The -\b-a\ba
+ and -\b-o\bo operators are considered binary operators when
+ there are three arguments. If the first argument is !\b!,
+ the value is the negation of the two-argument test using
the second and third arguments. If the first argument is
exactly (\b( and the third argument is exactly )\b), the result
- is the one-argument test of the second argument. Other-
+ is the one-argument test of the second argument. Other-
wise, the expression is false.
4 arguments
If the first argument is !\b!, the result is the negation of
- the three-argument expression composed of the remaining
+ the three-argument expression composed of the remaining
arguments. Otherwise, the expression is parsed and eval-
- uated according to precedence using the rules listed
+ uated according to precedence using the rules listed
above.
5 or more arguments
- The expression is parsed and evaluated according to
+ The expression is parsed and evaluated according to
precedence using the rules listed above.
- When used with t\bte\bes\bst\bt or [\b[, the <\b< and >\b> operators sort lexico-
+ When used with t\bte\bes\bst\bt or [\b[, the <\b< and >\b> operators sort lexico-
graphically using ASCII ordering.
- t\bti\bim\bme\bes\bs Print the accumulated user and system times for the shell and
+ t\bti\bim\bme\bes\bs Print the accumulated user and system times for the shell and
for processes run from the shell. The return status is 0.
t\btr\bra\bap\bp [-\b-l\blp\bp] [[_\ba_\br_\bg] _\bs_\bi_\bg_\bs_\bp_\be_\bc ...]
- The command _\ba_\br_\bg is to be read and executed when the shell
- receives signal(s) _\bs_\bi_\bg_\bs_\bp_\be_\bc. If _\ba_\br_\bg is absent (and there is a
- single _\bs_\bi_\bg_\bs_\bp_\be_\bc) or -\b-, each specified signal is reset to its
- original disposition (the value it had upon entrance to the
- shell). If _\ba_\br_\bg is the null string the signal specified by each
- _\bs_\bi_\bg_\bs_\bp_\be_\bc is ignored by the shell and by the commands it invokes.
- If _\ba_\br_\bg is not present and -\b-p\bp has been supplied, then the trap
- commands associated with each _\bs_\bi_\bg_\bs_\bp_\be_\bc are displayed. If no
- arguments are supplied or if only -\b-p\bp is given, t\btr\bra\bap\bp prints the
- list of commands associated with each signal. The -\b-l\bl option
- causes the shell to print a list of signal names and their cor-
- responding numbers. Each _\bs_\bi_\bg_\bs_\bp_\be_\bc is either a signal name
- defined in <_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh>, or a signal number. Signal names are
+ The command _\ba_\br_\bg is to be read and executed when the shell
+ receives signal(s) _\bs_\bi_\bg_\bs_\bp_\be_\bc. If _\ba_\br_\bg is absent (and there is a
+ single _\bs_\bi_\bg_\bs_\bp_\be_\bc) or -\b-, each specified signal is reset to its
+ original disposition (the value it had upon entrance to the
+ shell). If _\ba_\br_\bg is the null string the signal specified by each
+ _\bs_\bi_\bg_\bs_\bp_\be_\bc is ignored by the shell and by the commands it invokes.
+ If _\ba_\br_\bg is not present and -\b-p\bp has been supplied, then the trap
+ commands associated with each _\bs_\bi_\bg_\bs_\bp_\be_\bc are displayed. If no
+ arguments are supplied or if only -\b-p\bp is given, t\btr\bra\bap\bp prints the
+ list of commands associated with each signal. The -\b-l\bl option
+ causes the shell to print a list of signal names and their cor-
+ responding numbers. Each _\bs_\bi_\bg_\bs_\bp_\be_\bc is either a signal name
+ defined in <_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh>, or a signal number. Signal names are
case insensitive and the S\bSI\bIG\bG prefix is optional.
- If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bEX\bXI\bIT\bT (0) the command _\ba_\br_\bg is executed on exit
- from the shell. If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is D\bDE\bEB\bBU\bUG\bG, the command _\ba_\br_\bg is exe-
- cuted before every _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, _\bf_\bo_\br command, _\bc_\ba_\bs_\be command,
- _\bs_\be_\bl_\be_\bc_\bt command, every arithmetic _\bf_\bo_\br command, and before the
- first command executes in a shell function (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
- above). Refer to the description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option to the
+ If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bEX\bXI\bIT\bT (0) the command _\ba_\br_\bg is executed on exit
+ from the shell. If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is D\bDE\bEB\bBU\bUG\bG, the command _\ba_\br_\bg is exe-
+ cuted before every _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, _\bf_\bo_\br command, _\bc_\ba_\bs_\be command,
+ _\bs_\be_\bl_\be_\bc_\bt command, every arithmetic _\bf_\bo_\br command, and before the
+ first command executes in a shell function (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
+ above). Refer to the description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option to the
s\bsh\bho\bop\bpt\bt builtin for details of its effect on the D\bDE\bEB\bBU\bUG\bG trap. If a
_\bs_\bi_\bg_\bs_\bp_\be_\bc is R\bRE\bET\bTU\bUR\bRN\bN, the command _\ba_\br_\bg is executed each time a shell
function or a script executed with the .\b. or s\bso\bou\bur\brc\bce\be builtins fin-
ishes executing.
- If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bER\bRR\bR, the command _\ba_\br_\bg is executed whenever a
+ If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bER\bRR\bR, the command _\ba_\br_\bg is executed whenever a
pipeline (which may consist of a single simple command), a list,
or a compound command returns a non-zero exit status, subject to
- the following conditions. The E\bER\bRR\bR trap is not executed if the
+ the following conditions. The E\bER\bRR\bR trap is not executed if the
failed command is part of the command list immediately following
- a w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword, part of the test in an _\bi_\bf statement,
+ a w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword, part of the test in an _\bi_\bf statement,
part of a command executed in a &\b&&\b& or |\b||\b| list except the command
- following the final &\b&&\b& or |\b||\b|, any command in a pipeline but the
- last, or if the command's return value is being inverted using
- !\b!. These are the same conditions obeyed by the e\ber\brr\bre\bex\bxi\bit\bt (-\b-e\be)
+ following the final &\b&&\b& or |\b||\b|, any command in a pipeline but the
+ last, or if the command's return value is being inverted using
+ !\b!. These are the same conditions obeyed by the e\ber\brr\bre\bex\bxi\bit\bt (-\b-e\be)
option.
- Signals ignored upon entry to the shell cannot be trapped or
- reset. Trapped signals that are not being ignored are reset to
+ Signals ignored upon entry to the shell cannot be trapped or
+ reset. Trapped signals that are not being ignored are reset to
their original values in a subshell or subshell environment when
- one is created. The return status is false if any _\bs_\bi_\bg_\bs_\bp_\be_\bc is
+ one is created. The return status is false if any _\bs_\bi_\bg_\bs_\bp_\be_\bc is
invalid; otherwise t\btr\bra\bap\bp returns true.
t\bty\byp\bpe\be [-\b-a\baf\bft\btp\bpP\bP] _\bn_\ba_\bm_\be [_\bn_\ba_\bm_\be ...]
- With no options, indicate how each _\bn_\ba_\bm_\be would be interpreted if
+ With no options, indicate how each _\bn_\ba_\bm_\be would be interpreted if
used as a command name. If the -\b-t\bt option is used, t\bty\byp\bpe\be prints a
- string which is one of _\ba_\bl_\bi_\ba_\bs, _\bk_\be_\by_\bw_\bo_\br_\bd, _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn, _\bb_\bu_\bi_\bl_\bt_\bi_\bn, or
- _\bf_\bi_\bl_\be if _\bn_\ba_\bm_\be is an alias, shell reserved word, function,
- builtin, or disk file, respectively. If the _\bn_\ba_\bm_\be is not found,
- then nothing is printed, and an exit status of false is
- returned. If the -\b-p\bp option is used, t\bty\byp\bpe\be either returns the
+ string which is one of _\ba_\bl_\bi_\ba_\bs, _\bk_\be_\by_\bw_\bo_\br_\bd, _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn, _\bb_\bu_\bi_\bl_\bt_\bi_\bn, or
+ _\bf_\bi_\bl_\be if _\bn_\ba_\bm_\be is an alias, shell reserved word, function,
+ builtin, or disk file, respectively. If the _\bn_\ba_\bm_\be is not found,
+ then nothing is printed, and an exit status of false is
+ returned. If the -\b-p\bp option is used, t\bty\byp\bpe\be either returns the
name of the disk file that would be executed if _\bn_\ba_\bm_\be were speci-
fied as a command name, or nothing if ``type -t name'' would not
- return _\bf_\bi_\bl_\be. The -\b-P\bP option forces a P\bPA\bAT\bTH\bH search for each _\bn_\ba_\bm_\be,
+ return _\bf_\bi_\bl_\be. The -\b-P\bP option forces a P\bPA\bAT\bTH\bH search for each _\bn_\ba_\bm_\be,
even if ``type -t name'' would not return _\bf_\bi_\bl_\be. If a command is
hashed, -\b-p\bp and -\b-P\bP print the hashed value, which is not necessar-
- ily the file that appears first in P\bPA\bAT\bTH\bH. If the -\b-a\ba option is
- used, t\bty\byp\bpe\be prints all of the places that contain an executable
+ ily the file that appears first in P\bPA\bAT\bTH\bH. If the -\b-a\ba option is
+ used, t\bty\byp\bpe\be prints all of the places that contain an executable
named _\bn_\ba_\bm_\be. This includes aliases and functions, if and only if
the -\b-p\bp option is not also used. The table of hashed commands is
- not consulted when using -\b-a\ba. The -\b-f\bf option suppresses shell
+ not consulted when using -\b-a\ba. The -\b-f\bf option suppresses shell
function lookup, as with the c\bco\bom\bmm\bma\ban\bnd\bd builtin. t\bty\byp\bpe\be returns true
if all of the arguments are found, false if any are not found.
u\bul\bli\bim\bmi\bit\bt [-\b-H\bHS\bSa\bab\bbc\bcd\bde\bef\bfi\bik\bkl\blm\bmn\bnp\bpq\bqr\brs\bst\btu\buv\bvx\bxP\bPT\bT [_\bl_\bi_\bm_\bi_\bt]]
- Provides control over the resources available to the shell and
- to processes started by it, on systems that allow such control.
+ Provides control over the resources available to the shell and
+ to processes started by it, on systems that allow such control.
The -\b-H\bH and -\b-S\bS options specify that the hard or soft limit is set
- for the given resource. A hard limit cannot be increased by a
- non-root user once it is set; a soft limit may be increased up
- to the value of the hard limit. If neither -\b-H\bH nor -\b-S\bS is speci-
+ for the given resource. A hard limit cannot be increased by a
+ non-root user once it is set; a soft limit may be increased up
+ to the value of the hard limit. If neither -\b-H\bH nor -\b-S\bS is speci-
fied, both the soft and hard limits are set. The value of _\bl_\bi_\bm_\bi_\bt
can be a number in the unit specified for the resource or one of
the special values h\bha\bar\brd\bd, s\bso\bof\bft\bt, or u\bun\bnl\bli\bim\bmi\bit\bte\bed\bd, which stand for the
- current hard limit, the current soft limit, and no limit,
- respectively. If _\bl_\bi_\bm_\bi_\bt is omitted, the current value of the
- soft limit of the resource is printed, unless the -\b-H\bH option is
+ current hard limit, the current soft limit, and no limit,
+ respectively. If _\bl_\bi_\bm_\bi_\bt is omitted, the current value of the
+ soft limit of the resource is printed, unless the -\b-H\bH option is
given. When more than one resource is specified, the limit name
and unit are printed before the value. Other options are inter-
preted as follows:
-\b-c\bc The maximum size of core files created
-\b-d\bd The maximum size of a process's data segment
-\b-e\be The maximum scheduling priority ("nice")
- -\b-f\bf The maximum size of files written by the shell and its
+ -\b-f\bf The maximum size of files written by the shell and its
children
-\b-i\bi The maximum number of pending signals
-\b-k\bk The maximum number of kqueues that may be allocated
-\b-l\bl The maximum size that may be locked into memory
- -\b-m\bm The maximum resident set size (many systems do not honor
+ -\b-m\bm The maximum resident set size (many systems do not honor
this limit)
-\b-n\bn The maximum number of open file descriptors (most systems
do not allow this value to be set)
-\b-r\br The maximum real-time scheduling priority
-\b-s\bs The maximum stack size
-\b-t\bt The maximum amount of cpu time in seconds
- -\b-u\bu The maximum number of processes available to a single
+ -\b-u\bu The maximum number of processes available to a single
user
- -\b-v\bv The maximum amount of virtual memory available to the
+ -\b-v\bv The maximum amount of virtual memory available to the
shell and, on some systems, to its children
-\b-x\bx The maximum number of file locks
-\b-P\bP The maximum number of pseudoterminals
-\b-T\bT The maximum number of threads
- If _\bl_\bi_\bm_\bi_\bt is given, and the -\b-a\ba option is not used, _\bl_\bi_\bm_\bi_\bt is the
- new value of the specified resource. If no option is given,
- then -\b-f\bf is assumed. Values are in 1024-byte increments, except
- for -\b-t\bt, which is in seconds; -\b-p\bp, which is in units of 512-byte
- blocks; -\b-P\bP, -\b-T\bT, -\b-b\bb, -\b-k\bk, -\b-n\bn, and -\b-u\bu, which are unscaled values;
+ If _\bl_\bi_\bm_\bi_\bt is given, and the -\b-a\ba option is not used, _\bl_\bi_\bm_\bi_\bt is the
+ new value of the specified resource. If no option is given,
+ then -\b-f\bf is assumed. Values are in 1024-byte increments, except
+ for -\b-t\bt, which is in seconds; -\b-p\bp, which is in units of 512-byte
+ blocks; -\b-P\bP, -\b-T\bT, -\b-b\bb, -\b-k\bk, -\b-n\bn, and -\b-u\bu, which are unscaled values;
and, when in posix mode, -\b-c\bc and -\b-f\bf, which are in 512-byte incre-
ments. The return status is 0 unless an invalid option or argu-
ment is supplied, or an error occurs while setting a new limit.
u\bum\bma\bas\bsk\bk [-\b-p\bp] [-\b-S\bS] [_\bm_\bo_\bd_\be]
The user file-creation mask is set to _\bm_\bo_\bd_\be. If _\bm_\bo_\bd_\be begins with
- a digit, it is interpreted as an octal number; otherwise it is
- interpreted as a symbolic mode mask similar to that accepted by
- _\bc_\bh_\bm_\bo_\bd(1). If _\bm_\bo_\bd_\be is omitted, the current value of the mask is
- printed. The -\b-S\bS option causes the mask to be printed in sym-
- bolic form; the default output is an octal number. If the -\b-p\bp
+ a digit, it is interpreted as an octal number; otherwise it is
+ interpreted as a symbolic mode mask similar to that accepted by
+ _\bc_\bh_\bm_\bo_\bd(1). If _\bm_\bo_\bd_\be is omitted, the current value of the mask is
+ printed. The -\b-S\bS option causes the mask to be printed in sym-
+ bolic form; the default output is an octal number. If the -\b-p\bp
option is supplied, and _\bm_\bo_\bd_\be is omitted, the output is in a form
that may be reused as input. The return status is 0 if the mode
- was successfully changed or if no _\bm_\bo_\bd_\be argument was supplied,
+ was successfully changed or if no _\bm_\bo_\bd_\be argument was supplied,
and false otherwise.
u\bun\bna\bal\bli\bia\bas\bs [-a\ba] [_\bn_\ba_\bm_\be ...]
- Remove each _\bn_\ba_\bm_\be from the list of defined aliases. If -\b-a\ba is
- supplied, all alias definitions are removed. The return value
+ Remove each _\bn_\ba_\bm_\be from the list of defined aliases. If -\b-a\ba is
+ supplied, all alias definitions are removed. The return value
is true unless a supplied _\bn_\ba_\bm_\be is not a defined alias.
u\bun\bns\bse\bet\bt [-f\bfv\bv] [-n\bn] [_\bn_\ba_\bm_\be ...]
- For each _\bn_\ba_\bm_\be, remove the corresponding variable or function.
+ For each _\bn_\ba_\bm_\be, remove the corresponding variable or function.
If the -\b-v\bv option is given, each _\bn_\ba_\bm_\be refers to a shell variable,
- and that variable is removed. Read-only variables may not be
- unset. If -\b-f\bf is specified, each _\bn_\ba_\bm_\be refers to a shell func-
- tion, and the function definition is removed. If the -\b-n\bn option
- is supplied, and _\bn_\ba_\bm_\be is a variable with the _\bn_\ba_\bm_\be_\br_\be_\bf attribute,
- _\bn_\ba_\bm_\be will be unset rather than the variable it references. -\b-n\bn
- has no effect if the -\b-f\bf option is supplied. If no options are
- supplied, each _\bn_\ba_\bm_\be refers to a variable; if there is no vari-
- able by that name, any function with that name is unset. Each
- unset variable or function is removed from the environment
- passed to subsequent commands. If any of C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS, R\bRA\bAN\bN-\b-
+ and that variable is removed. Read-only variables may not be
+ unset. If -\b-f\bf is specified, each _\bn_\ba_\bm_\be refers to a shell func-
+ tion, and the function definition is removed. If the -\b-n\bn option
+ is supplied, and _\bn_\ba_\bm_\be is a variable with the _\bn_\ba_\bm_\be_\br_\be_\bf attribute,
+ _\bn_\ba_\bm_\be will be unset rather than the variable it references. -\b-n\bn
+ has no effect if the -\b-f\bf option is supplied. If no options are
+ supplied, each _\bn_\ba_\bm_\be refers to a variable; if there is no vari-
+ able by that name, any function with that name is unset. Each
+ unset variable or function is removed from the environment
+ passed to subsequent commands. If any of C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS, R\bRA\bAN\bN-\b-
D\bDO\bOM\bM, S\bSE\bEC\bCO\bON\bND\bDS\bS, L\bLI\bIN\bNE\bEN\bNO\bO, H\bHI\bIS\bST\bTC\bCM\bMD\bD, F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE, G\bGR\bRO\bOU\bUP\bPS\bS, or D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK are
unset, they lose their special properties, even if they are sub-
sequently reset. The exit status is true unless a _\bn_\ba_\bm_\be is read-
w\bwa\bai\bit\bt [-\b-f\bfn\bn] [_\bi_\bd _\b._\b._\b.]
Wait for each specified child process and return its termination
- status. Each _\bi_\bd may be a process ID or a job specification; if
- a job spec is given, all processes in that job's pipeline are
- waited for. If _\bi_\bd is not given, all currently active child pro-
- cesses are waited for, and the return status is zero. If the -\b-n\bn
- option is supplied, w\bwa\bai\bit\bt waits for a single job to terminate and
- returns its exit status. Supplying the -\b-f\bf option, when job con-
- trol is enabled, forces w\bwa\bai\bit\bt to wait for _\bi_\bd to terminate before
- returning its status, instead of returning when it changes sta-
- tus. If _\bi_\bd specifies a non-existent process or job, the return
- status is 127. Otherwise, the return status is the exit status
- of the last process or job waited for.
+ status. Each _\bi_\bd may be a process ID or a job specification; if
+ a job spec is given, all processes in that job's pipeline are
+ waited for. If _\bi_\bd is not given, w\bwa\bai\bit\bt waits for all running
+ background jobs and the last-executed process substitution, if
+ its process id is the same as $\b$!\b!, and the return status is zero.
+ If the -\b-n\bn option is supplied, w\bwa\bai\bit\bt waits for a single job to
+ terminate and returns its exit status. Supplying the -\b-f\bf option,
+ when job control is enabled, forces w\bwa\bai\bit\bt to wait for _\bi_\bd to ter-
+ minate before returning its status, instead of returning when it
+ changes status. If _\bi_\bd specifies a non-existent process or job,
+ the return status is 127. Otherwise, the return status is the
+ exit status of the last process or job waited for.
S\bSE\bEE\bE A\bAL\bLS\bSO\bO
bash(1), sh(1)
%!PS-Adobe-3.0
%%Creator: groff version 1.22.3
-%%CreationDate: Mon May 20 14:36:20 2019
+%%CreationDate: Wed Jun 12 15:26:50 2019
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
3.929 F .009(ID or a job speci\214cation; if a job spec is gi)144 636 R
-.15(ve)-.25 G .008(n, all processes in that job').15 F 2.508(sp)-.55 G
.008(ipeline are w)-2.508 F .008(aited for)-.1 F 5.008(.I)-.55 G(f)
--5.008 E F2(id)144.01 648 Q F0 .521(is not gi)3.791 F -.15(ve)-.25 G
-.521(n, all currently acti).15 F .821 -.15(ve c)-.25 H .521
-(hild processes are w).15 F .521(aited for)-.1 F 3.021(,a)-.4 G .521
-(nd the return status is zero.)-3.021 F(If)5.522 E(the)144 660 Q F1
-<ad6e>2.948 E F0 .448(option is supplied,)2.948 F F1(wait)2.948 E F0 -.1
-(wa)2.948 G .448(its for a single job to terminate and returns its e).1
-F .447(xit status.)-.15 F(Sup-)5.447 E 1.023(plying the)144 672 R F1
-<ad66>3.523 E F0 1.023(option, when job control is enabled, forces)3.523
-F F1(wait)3.524 E F0 1.024(to w)3.524 F 1.024(ait for)-.1 F F2(id)3.524
-E F0 1.024(to terminate before)3.524 F 1.835
-(returning its status, instead of returning when it changes status.)144
-684 R(If)6.835 E F2(id)4.345 E F0 1.835(speci\214es a non-e)5.105 F
-(xistent)-.15 E 1.022(process or job, the return status is 127.)144 696
-R 1.023(Otherwise, the return status is the e)6.023 F 1.023
-(xit status of the last)-.15 F(process or job w)144 708 Q(aited for)-.1
-E(.)-.55 E(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(24)198.725 E 0 Cg
-EP
+-5.008 E F2(id)144.01 648 Q F0 .441(is not gi)3.711 F -.15(ve)-.25 G(n,)
+.15 E F1(wait)2.941 E F0 -.1(wa)2.941 G .441
+(its for all running background jobs and the last-e).1 F -.15(xe)-.15 G
+.442(cuted process substitu-).15 F .598
+(tion, if its process id is the same as)144 660 R F1($!)3.098 E F0 3.098
+(,a)C .598(nd the return status is zero.)-3.098 F .597(If the)5.597 F F1
+<ad6e>3.097 E F0 .597(option is supplied,)3.097 F F1(wait)144 672 Q F0
+-.1(wa)3.056 G .556(its for a single job to terminate and returns its e)
+.1 F .557(xit status.)-.15 F .557(Supplying the)5.557 F F1<ad66>3.057 E
+F0 .557(option, when)3.057 F .346(job control is enabled, forces)144 684
+R F1(wait)2.846 E F0 .346(to w)2.846 F .346(ait for)-.1 F F2(id)2.846 E
+F0 .346(to terminate before returning its status, instead of)2.846 F
+.599(returning when it changes status.)144 696 R(If)5.599 E F2(id)3.109
+E F0 .599(speci\214es a non-e)3.869 F .6
+(xistent process or job, the return status is)-.15 F 2.5
+(127. Otherwise,)144 708 R(the return status is the e)2.5 E
+(xit status of the last process or job w)-.15 E(aited for)-.1 E(.)-.55 E
+(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(24)198.725 E 0 Cg EP
%%Page: 25 25
%%BeginPageSetup
BP
%!PS-Adobe-3.0
%%Creator: groff version 1.22.3
-%%CreationDate: Mon May 20 14:36:20 2019
+%%CreationDate: Wed Jun 12 15:26:50 2019
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%DocumentSuppliedResources: procset grops 1.22 3
Copyright (C) 1988-2019 Free Software Foundation, Inc.
@end ignore
-@set LASTCHANGE Mon May 20 10:45:55 EDT 2019
+@set LASTCHANGE Thu Jun 13 15:43:41 EDT 2019
@set EDITION 5.0
@set VERSION 5.0
-@set UPDATED 20 May 2019
-@set UPDATED-MONTH May 2019
+@set UPDATED 13 June 2019
+@set UPDATED-MONTH June 2019
}
#if defined (PROCESS_SUBSTITUTION)
- if (last_procsub_child && last_procsub_child->pid != NO_PID)
+ if (last_procsub_child && last_procsub_child->pid != NO_PID && last_procsub_child->pid == last_asynchronous_pid)
r = wait_for (last_procsub_child->pid);
wait_procsubs ();
reap_procsubs ();
-#if 0
- /* We don't want to wait indefinitely if we have stopped children. */
- if (any_stopped == 0)
- {
- /* Check whether or not we have any unreaped children. */
- while ((r = wait_for (ANY_PID)) >= 0)
- {
- QUIT;
- CHECK_WAIT_INTR;
- }
- }
-#endif
#endif
/* POSIX.2 says the shell can discard the statuses of all completed jobs if
/* Only manipulate the list of process substitutions while SIGCHLD
is blocked. */
if ((ind = find_procsub_child (pid)) >= 0)
- set_procsub_status (ind, pid, WSTATUS (status));
- /* XXX - save in bgpids list? */
+ {
+ set_procsub_status (ind, pid, WSTATUS (status));
+ bgp_add (pid, WSTATUS (status));
+ }
#endif
/* It is not an error to have a child terminate that we did
{
i++; /* seq[i] == '-' */
/* XXX - obey convert-meta setting, convert to key seq */
+ /* XXX - doesn't yet handle \M-\C-n if convert-meta is on */
if (_rl_convert_meta_chars_to_ascii)
{
array[l++] = ESC; /* ESC is meta-prefix */
Words are composed of letters and digits.
@ifset BashFeatures
-@item shell-forward-word ()
+@item shell-forward-word (M-C-f)
Move forward to the end of the next word.
Words are delimited by non-quoted shell metacharacters.
-@item shell-backward-word ()
+@item shell-backward-word (M-C-b)
Move back to the start of the current or previous word.
Words are delimited by non-quoted shell metacharacters.
@end ifset
Word boundaries are the same as @code{backward-word}.
@ifset BashFeatures
-@item shell-kill-word ()
+@item shell-kill-word (M-C-d)
Kill from point to the end of the current word, or if between
words, to the end of the next word.
Word boundaries are the same as @code{shell-forward-word}.
Word boundaries are the same as @code{shell-backward-word}.
@end ifset
+@item shell-transpose-words (M-C-t)
+Drag the word before point past the word after point,
+moving point past that word as well.
+If the insertion point is at the end of the line, this transposes
+the last two words on the line.
+Word boundaries are the same as @code{shell-forward-word} and
+@code{shell-backward-word}.
+
@item unix-word-rubout (C-w)
Kill the word behind point, using white space as a word boundary.
The killed text is saved on the kill-ring.
free (t);
return ret;
}
-#if 0 /* TAG:bash-5.1 */
+#if 0 /* TAG:bash-5.1 from Martijn Dekker */
else if (legal_number (arg, &r)) /* -v n == is $n set? */
{
char *t;
/* variables.c -- Functions for hacking shell variables. */
-/* Copyright (C) 1987-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2019 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
static SHELL_VAR *get_bashpid __P((SHELL_VAR *));
+static SHELL_VAR *get_bash_argv0 __P((SHELL_VAR *));
+static SHELL_VAR *assign_bash_argv0 __P((SHELL_VAR *, char *, arrayind_t, char *));
+static void set_argv0 __P((void));
+
#if defined (HISTORY)
static SHELL_VAR *get_histcmd __P((SHELL_VAR *));
#endif
set_ppid ();
+ set_argv0 ();
+
/* Initialize the `getopts' stuff. */
temp_var = bind_variable ("OPTIND", "1", 0);
VSETATTR (temp_var, att_integer);
shell_name = static_shell_name;
return var;
}
+
+static void
+set_argv0 ()
+{
+ SHELL_VAR *v;
+
+ v = find_variable ("BASH_ARGV0");
+ if (v && imported_p (v))
+ assign_bash_argv0 (v, value_cell (v), 0, 0);
+}
static SHELL_VAR *
get_bash_command (var)