(command.CommandList
  children: [
    (command.Simple
      blame_tok: <Id.Lit_Colon ':'>
      more_env: []
      words: [{<Id.Lit_Colon ':'>} {<C>} {<language>} {<message>} {<catalog>} {<compiler>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike '__command__='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike '__command__='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__command__='> name:__command__)
          op: assign_op.Equal
          rhs: {<msgcc>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <integer>
      more_env: []
      words: [{<integer>} {<Id.Lit_VarLike '__similar__='> <30>}]
      redirects: []
      do_fork: T
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: 
        (case_arg.Word
          w: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Subshell
                    left: <Id.Op_LParen _>
                    child: 
                      (command.CommandList
                        children: [
                          (command.Sentence
                            child: 
                              (command.Simple
                                blame_tok: <getopts>
                                more_env: []
                                words: [{<getopts>} {(SQ <'[-][123:xyz]'>)} {<opt>} {<--xyz>}]
                                redirects: []
                                do_fork: T
                              )
                            terminator: <Id.Op_Semi _>
                          )
                          (command.Simple
                            blame_tok: <echo>
                            more_env: []
                            words: [{<echo>} {<0> ($ Id.VSub_DollarName opt)}]
                            redirects: []
                            do_fork: T
                          )
                        ]
                      )
                    right: <Id.Right_Subshell _>
                    redirects: [
                      (Redir
                        op: <Id.Redir_Great '2>'>
                        loc: (redir_loc.Fd fd:2)
                        arg: {<'/dev/null'>}
                      )
                    ]
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <0123>
          pattern: (pat.Words words:[{<0123>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ARGV0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ARGV0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARGV0='> name:ARGV0)
                  op: assign_op.Equal
                  rhs: {(DQ <'-a '> ($ Id.VSub_DollarName __command__))}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'USAGE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'USAGE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USAGE='> name:USAGE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (SingleQuoted
                        left: <Id.Left_DollarSingleQuote '$\''>
                        tokens: [
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '[-?\n'>
                          <Id.Char_Literals '@(#)$Id: msgcc (AT&T Labs Research) 2010-10-20 $\n'>
                          <Id.Char_Literals ']\n'>
                        ]
                        right: <Id.Right_SingleQuote '\''>
                      ) ($ Id.VSub_DollarName USAGE_LICENSE) 
                      (SingleQuoted
                        left: <Id.Left_DollarSingleQuote '$\''>
                        tokens: [
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '[+NAME?msgcc - C language message catalog compiler]\n'>
                          <Id.Char_Literals '[+DESCRIPTION?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals msgcc>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 
' is a C language message catalog compiler. It accepts\n'
                          >
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals cc>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) style options and arguments. A '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals msgcpp>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .mso>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' file\n'>
                          <Id.Char_Literals '\tis generated for each input '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .c>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' file. If the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -c>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' option is not\n'>
                          <Id.Char_Literals '\tspecified then a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals gencat>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) format '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .msg>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' file is generated from\n'>
                          <Id.Char_Literals '\tthe input '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .mso>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .msg>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' files. If '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -c>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is not specified then\n'>
                          <Id.Char_Literals '\ta '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .msg>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' suffix is appended to the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -o>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' if it doesn'>
                          <Id.Char_OneChar '\\\''>
                          <Id.Char_Literals 't\n'>
                          <Id.Char_Literals '\talready have a suffix. The default output is '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals a.out.msg>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' if '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -c>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\tand '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -o>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' are not specified.]\n'>
                          <Id.Char_Literals '[+?If '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -M-new>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 
' is not specified then messages are merged with those in the\n'
                          >
                          <Id.Char_Literals '\tpre-existing '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -o>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' file.]\n'>
                          <Id.Char_Literals '[M?Set a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals msgcc>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' specific '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals option>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals option>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' may be:]:[-option]{\n'>
                          <Id.Char_Literals '\t[+mkmsgs?The '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -o>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' file is assumed to be in '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals mkmsgs>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) format.]\n'>
                          <Id.Char_Literals '\t[+new?Create a new '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -o>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' file.]\n'>
                          <Id.Char_Literals '\t[+preserve?Messages in the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -o>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' file that are not in new\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .msg>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' file arguments are preserved. The default is to\n'>
                          <Id.Char_Literals 
'\t\teither reuse the message numbers with new message text that\n'
                          >
                          <Id.Char_Literals 
'\t\tis similar to the old or to delete the message text, leaving\n'
                          >
                          <Id.Char_Literals '\t\tan unused message number.]\n'>
                          <Id.Char_Literals '\t[+set='>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals number>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Set the message set number to '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals number>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. The default\n'>
                          <Id.Char_Literals '\t\tis '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 1>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '\t[+similar='>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals number>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?The message text similarity measure threshold.\n'>
                          <Id.Char_Literals '\t\tThe similarity measure between '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals old>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals new>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' message\n'>
                          <Id.Char_Literals '\t\ttext is 100*(2*gzip('>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals old>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '+'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals new>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ')/(gzip('>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals old>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ')+gzip('>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals new>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '))-1),\n'>
                          <Id.Char_Literals '\t\twhere gzip('>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals x>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ') is the size of text '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals x>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' when compressed by\n'>
                          <Id.Char_Literals '\t\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals gzip>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1). The default threshold is '>
                        ]
                        right: <Id.Right_SingleQuote '\''>
                      ) ($ Id.VSub_DollarName __similar__) 
                      (SingleQuoted
                        left: <Id.Left_DollarSingleQuote '$\''>
                        tokens: [
                          <Id.Char_Literals '. A\n'>
                          <Id.Char_Literals '\t\tthreshold of '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 0>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' turns off message replacement, but unused\n'>
                          <Id.Char_Literals '\t\told messages are still deleted. Use '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals -M-preserve>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' to preserve\n'>
                          <Id.Char_Literals '\t\tall old messages.]\n'>
                          <Id.Char_Literals 
'\t[+verbose?Trace similar message replacements on the standard error.]\n'
                          >
                          <Id.Char_Literals '}\n'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 'file ...\n'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '[+SEE ALSO?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals cc>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals cpp>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals gencat>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals msggen>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1),\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals msgcpp>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals msgcvt>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1)]\n'>
                        ]
                        right: <Id.Right_SingleQuote '\''>
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ARGV0='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ARGV0='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARGV0='> name:ARGV0)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'USAGE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'USAGE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USAGE='> name:USAGE)
                  op: assign_op.Equal
                  rhs: {(DQ <'M:[-option] [ cc-options ] file ...'>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShFunction
      name_tok: <usage>
      name: usage
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'OPTIND='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'OPTIND='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTIND='> name:OPTIND)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <getopts>
              more_env: []
              words: [
                {<getopts>}
                {($ Id.VSub_DollarName ARGV0)}
                {(DQ ($ Id.VSub_DollarName USAGE))}
                {<OPT>}
                {(SQ <'-?'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<2>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <keys>
      name: keys
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <Id.VSub_Number '$1'>
                  more_env: []
                  words: [
                    {($ Id.VSub_Number 1)}
                    {<--> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <keys>}
                    {<-->}
                  ]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <grep>
                  more_env: []
                  words: [{<grep>} {(SQ <'^".*"$'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <typeset>
      more_env: []
      words: [{<typeset>} {<-A>} {<__index__>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <typeset>
      more_env: []
      words: [
        {<typeset>}
        {<__keep__>}
        {<__text__>}
        {<__drop__>}
        {<__oz__>}
        {<__nz__>}
        {<__z__>}
        {<__hit__>}
        {<__hit_i__>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <typeset>
      more_env: []
      words: [{<typeset>} {<__compile__>} {<__debug__>} {<__mkmsgs__>} {<__preprocess__>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <typeset>
      more_env: []
      words: [{<typeset>} {<Id.Lit_VarLike '__merge__='> <1>} {<__preserve__>} {<__verbose__>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <integer>
      more_env: []
      words: [
        {<integer>}
        {<Id.Lit_VarLike '__i__='> <0>}
        {<Id.Lit_VarLike '__args__='> <0>}
        {<Id.Lit_VarLike '__code__='> <0>}
        {<Id.Lit_VarLike '__files__='> <0>}
        {<Id.Lit_VarLike '__max__='> <0>}
        {<Id.Lit_VarLike '__num__='> <0>}
        {<Id.Lit_VarLike '__skip__='> <0>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <integer>
      more_env: []
      words: [
        {<integer>}
        {<Id.Lit_VarLike '__set__='> <1>}
        {<Id.Lit_VarLike '__sources__='> <0>}
        {<Id.Lit_VarLike '__cmds__='> <0>}
        {<Id.Lit_VarLike '__ndrop__='> <0>}
        {<Id.Lit_VarLike '__new__='> <0>}
        {<Id.Lit_VarLike '__old__='> <0>}
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike '__out__='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike '__out__='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__out__='> name:__out__)
          op: assign_op.Equal
          rhs: {<a.out.msg>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike '__OUT__='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike '__OUT__='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__OUT__='> name:__OUT__)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_Star '*') <' '>)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_Star '*'> (DQ <' --'>) <Id.Lit_Star '*'>}
                {<Id.Lit_Star '*'> (DQ <' -?'>) <Id.Lit_Star '*'>}
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Simple
                      blame_tok: <getopts>
                      more_env: []
                      words: [
                        {<getopts>}
                        {($ Id.VSub_DollarName ARGV0)}
                        {(DQ ($ Id.VSub_DollarName USAGE))}
                        {<OPT>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName OPT)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: 
        (condition.Shell
          commands: [
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [{<Id.Lit_Colon ':'>}]
              redirects: []
              do_fork: T
            )
          ]
        )
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '__arg__='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '__arg__='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__arg__='> name:__arg__)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName __arg__)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <-c>
                  pattern: (pat.Words words:[{<-c>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '__compile__='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '__compile__='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '__compile__='>
                              name: __compile__
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <->
                  pattern: 
                    (pat.Words
                      words: [
                        {<-> <Id.Lit_LBracket '['> <DIU> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_ArrayLhsOpen '__argv__['>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_ArrayLhsOpen '__argv__['>
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              left: <Id.Lit_ArrayLhsOpen '__argv__['>
                              name: __argv__
                              index: ($ Id.Lit_ArithVarLike __args__)
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName __arg__)}
                        )
                      ]
                      redirects: []
                    )
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike __args__)
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-E>
                  pattern: (pat.Words words:[{<-E>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '__preprocess__='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '__preprocess__='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '__preprocess__='>
                              name: __preprocess__
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-M-debug>
                  pattern: (pat.Words words:[{<-M-debug>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '__debug__='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '__debug__='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__debug__='> name:__debug__)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-M-mkmsgs>
                  pattern: (pat.Words words:[{<-M-mkmsgs>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '__mkmsgs__='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '__mkmsgs__='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__mkmsgs__='> name:__mkmsgs__)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-M-new>
                  pattern: (pat.Words words:[{<-M-new>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '__merge__='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '__merge__='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__merge__='> name:__merge__)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-M-perserve>
                  pattern: (pat.Words words:[{<-M-perserve>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '__preserve__='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '__preserve__='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '__preserve__='>
                              name: __preserve__
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-M-set>
                  pattern: (pat.Words words:[{<-M-set> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '__set__='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '__set__='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__set__='> name:__set__)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    blame_tok: <msggen>
                                    more_env: []
                                    words: [
                                      {<msggen>}
                                      {<-s>}
                                      {
                                        (BracedVarSub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name __arg__>
                                          var_name: __arg__
                                          suffix_op: 
                                            (suffix_op.Unary
                                              op: <Id.VOp1_Pound '#'>
                                              arg_word: {<Id.Lit_Other '*'> <'='>}
                                            )
                                          right: <Id.Right_DollarBrace '}'>
                                        ) <.1>
                                      }
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-M-similar>
                  pattern: (pat.Words words:[{<-M-similar> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '__similar__='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '__similar__='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '__similar__='>
                              name: __similar__
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name __arg__>
                                var_name: __arg__
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_Pound '#'>
                                    arg_word: {<Id.Lit_Other '*'> <'='>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-M-verbose>
                  pattern: (pat.Words words:[{<-M-verbose>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '__verbose__='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '__verbose__='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '__verbose__='>
                              name: __verbose__
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <-o>
                  pattern: (pat.Words words:[{<-o>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Pound '#')})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <print>
                              more_env: []
                              words: [
                                {<print>}
                                {<-u2>}
                                {
                                  (DoubleQuoted
                                    left: <Id.Left_DollarDoubleQuote '$"'>
                                    parts: [
                                      ($ Id.VSub_DollarName __command__)
                                      <': output argument expected'>
                                    ]
                                    right: <Id.Right_DoubleQuote '"'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '__out__='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '__out__='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__out__='> name:__out__)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Number 1>
                                var_name: 1
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_Percent '%'>
                                    arg_word: {<.> <Id.Lit_Other '*'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              ) <.msg>
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '__OUT__='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '__OUT__='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__OUT__='> name:__OUT__)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_LBracket '['>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_LBracket '['> <-> <Id.Lit_Other '+'> <Id.Lit_RBracket ']'> 
                          <Id.Lit_Star '*'>
                        }
                        {<Id.Lit_Star '*'> <.> <Id.Lit_LBracket '['> <aAlLsS> <Id.Lit_RBracket ']'> 
                          <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <.> <Id.Lit_LBracket '['> <cCiI> <Id.Lit_RBracket ']'> 
                          <Id.Lit_Star '*'>
                        }
                        {<Id.Lit_Star '*'> <.> <Id.Lit_LBracket '['> <oO> <Id.Lit_RBracket ']'> 
                          <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName __arg__)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> <.> <Id.Lit_LBracket '['> <oO> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_ArrayLhsOpen '__srcv__['>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_ArrayLhsOpen '__srcv__['>
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen '__srcv__['>
                                      name: __srcv__
                                      index: ($ Id.Lit_ArithVarLike __files__)
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName __arg__)}
                                )
                              ]
                              redirects: []
                            )
                            (command.DParen
                              left: <Id.Op_DLeftParen _>
                              child: 
                                (arith_expr.UnaryAssign
                                  op_id: Id.Node_PostDPlus
                                  child: ($ Id.Lit_ArithVarLike __sources__)
                                )
                              right: <Id.Op_DRightParen _>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '__arg__='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '__arg__='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__arg__='> name:__arg__)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name __arg__>
                                var_name: __arg__
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_DPound '##'>
                                    arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '__arg__='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '__arg__='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__arg__='> name:__arg__)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name __arg__>
                                var_name: __arg__
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VOp1_Percent '%'>
                                    arg_word: {<.> <Id.Lit_Other '*'>}
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              ) <.mso>
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_ArrayLhsOpen '__objv__['>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_ArrayLhsOpen '__objv__['>
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              left: <Id.Lit_ArrayLhsOpen '__objv__['>
                              name: __objv__
                              index: ($ Id.Lit_ArithVarLike __files__)
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName __arg__)}
                        )
                      ]
                      redirects: []
                    )
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike __files__)
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <.ms> <Id.Lit_LBracket '['> <go> <Id.Lit_RBracket ']'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_ArrayLhsOpen '__objv__['>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_ArrayLhsOpen '__objv__['>
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              left: <Id.Lit_ArrayLhsOpen '__objv__['>
                              name: __objv__
                              index: ($ Id.Lit_ArithVarLike __files__)
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName __arg__)}
                        )
                      ]
                      redirects: []
                    )
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike __files__)
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_ArrayLhsOpen '__cmdv__['>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_ArrayLhsOpen '__cmdv__['>
                          lhs: 
                            (sh_lhs_expr.IndexedName
                              left: <Id.Lit_ArrayLhsOpen '__cmdv__['>
                              name: __cmdv__
                              index: ($ Id.Lit_ArithVarLike __cmds__)
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName __arg__)}
                        )
                      ]
                      redirects: []
                    )
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike __cmds__)
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike '__arg__='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike '__arg__='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__arg__='> name:__arg__)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name __out__>
                var_name: __out__
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VOp1_DPound '##'>
                    arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike '__arg__='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike '__arg__='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__arg__='> name:__arg__)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name __arg__>
                var_name: __arg__
                suffix_op: (suffix_op.Unary op:<Id.VOp1_Percent '%'> arg_word:{<.msg>})
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: (bool_expr.Unary op_id:Id.BoolUnary_x child:{($ Id.VSub_DollarName __arg__)})
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_ArrayLhsOpen '__cmdv__['>
              pairs: [
                (AssignPair
                  left: <Id.Lit_ArrayLhsOpen '__cmdv__['>
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      left: <Id.Lit_ArrayLhsOpen '__cmdv__['>
                      name: __cmdv__
                      index: ($ Id.Lit_ArithVarLike __cmds__)
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName __arg__)}
                )
              ]
              redirects: []
            )
            (command.DParen
              left: <Id.Op_DLeftParen _>
              child: 
                (arith_expr.UnaryAssign
                  op_id: Id.Node_PostDPlus
                  child: ($ Id.Lit_ArithVarLike __cmds__)
                )
              right: <Id.Op_DRightParen _>
              redirects: []
            )
          ]
          spids: [1029 1039]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: 
                    (bool_expr.LogicalAnd
                      left: (bool_expr.WordTest w:{($ Id.VSub_DollarName __OUT__)})
                      right: (bool_expr.WordTest w:{($ Id.VSub_DollarName __compile__)})
                    )
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_ArrayLhsOpen '__objv__['>
              pairs: [
                (AssignPair
                  left: <Id.Lit_ArrayLhsOpen '__objv__['>
                  lhs: 
                    (sh_lhs_expr.IndexedName
                      left: <Id.Lit_ArrayLhsOpen '__objv__['>
                      name: __objv__
                      index: {<Id.Lit_Digits 0>}
                    )
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName __OUT__)}
                )
              ]
              redirects: []
            )
          ]
          spids: [1064 1076]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.DParen
                  left: <Id.Op_DLeftParen _>
                  child: ($ Id.Lit_ArithVarLike __sources__)
                  right: <Id.Op_DRightParen _>
                  redirects: []
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ForExpr
              keyword: <Id.KW_For for>
              init: 
                (arith_expr.BinaryAssign
                  op_id: Id.Arith_Equal
                  left: ($ Id.Lit_ArithVarLike __i__)
                  right: {<Id.Lit_Digits 0>}
                )
              cond: 
                (arith_expr.Binary
                  op_id: Id.Arith_LessEqual
                  left: ($ Id.Lit_ArithVarLike __i__)
                  right: ($ Id.Lit_ArithVarLike __files__)
                )
              update: 
                (arith_expr.UnaryAssign
                  op_id: Id.Node_PostDPlus
                  child: ($ Id.Lit_ArithVarLike __i__)
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.WordTest
                                      w: 
                                        {
                                          (BracedVarSub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name __srcv__>
                                            var_name: __srcv__
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: ($ Id.Lit_ArithVarLike __i__)
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        }
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DParen
                                          left: <Id.Op_DLeftParen _>
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_Great
                                              left: ($ Id.Lit_ArithVarLike __sources__)
                                              right: {<Id.Lit_Digits 1>}
                                            )
                                          right: <Id.Op_DRightParen _>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <print>
                                      more_env: []
                                      words: [
                                        {<print>}
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              left: <Id.Left_DollarBrace '${'>
                                              token: <Id.VSub_Name __srcv__>
                                              var_name: __srcv__
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: ($ Id.Lit_ArithVarLike __i__)
                                                )
                                              right: <Id.Right_DollarBrace '}'>
                                            ) <':'>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [1138 1152]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.WordTest
                                              w: {($ Id.VSub_DollarName __preprocess__)}
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <msgcpp>
                                      more_env: []
                                      words: [
                                        {<msgcpp>}
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              left: <Id.Left_DollarBrace '${'>
                                              token: <Id.VSub_Name __argv__>
                                              var_name: __argv__
                                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                              right: <Id.Right_DollarBrace '}'>
                                            )
                                          )
                                        }
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              left: <Id.Left_DollarBrace '${'>
                                              token: <Id.VSub_Name __srcv__>
                                              var_name: __srcv__
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: ($ Id.Lit_ArithVarLike __i__)
                                                )
                                              right: <Id.Right_DollarBrace '}'>
                                            )
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [1170 1179]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <msgcpp>
                                  more_env: []
                                  words: [
                                    {<msgcpp>}
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name __argv__>
                                          var_name: __argv__
                                          bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                          right: <Id.Right_DollarBrace '}'>
                                        )
                                      )
                                    }
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name __srcv__>
                                          var_name: __srcv__
                                          bracket_op: 
                                            (bracket_op.ArrayIndex
                                              expr: ($ Id.Lit_ArithVarLike __i__)
                                            )
                                          right: <Id.Right_DollarBrace '}'>
                                        )
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: 
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              left: <Id.Left_DollarBrace '${'>
                                              token: <Id.VSub_Name __objv__>
                                              var_name: __objv__
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: ($ Id.Lit_ArithVarLike __i__)
                                                )
                                              right: <Id.Right_DollarBrace '}'>
                                            )
                                          )
                                        }
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [1122 1136]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          spids: [1088 1097]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.DBracket
                  left: <Id.KW_DLeftBracket '[['>
                  expr: 
                    (bool_expr.LogicalAnd
                      left: 
                        (bool_expr.LogicalNot
                          child: (bool_expr.WordTest w:{($ Id.VSub_DollarName __compile__)})
                        )
                      right: 
                        (bool_expr.LogicalNot
                          child: (bool_expr.WordTest w:{($ Id.VSub_DollarName __preprocess__)})
                        )
                    )
                  right: <Id.Lit_DRightBracket ']]'>
                  redirects: []
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.LogicalAnd
                              left: (bool_expr.WordTest w:{($ Id.VSub_DollarName __merge__)})
                              right: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_r
                                  child: {($ Id.VSub_DollarName __out__)}
                                )
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '__tmp__='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '__tmp__='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__tmp__='> name:__tmp__)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName __out__) <.tmp>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <trap>
                      more_env: []
                      words: [
                        {<trap>}
                        {(SQ <'__code__=$?; rm -f ${__tmp__}*; exit $__code__'>)}
                        {<0>}
                        {<1>}
                        {<2>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Simple
                              blame_tok: <read>
                              more_env: []
                              words: [{<read>} {<-r>} {<__line__>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DParen
                                          left: <Id.Op_DLeftParen _>
                                          child: {($ Id.VSub_DollarName __skip__)}
                                          right: <Id.Op_DRightParen _>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobDEqual
                                                      left: {($ Id.VSub_DollarName __line__)}
                                                      right: {(SQ <'%}'>) <Id.Lit_Other '*'>}
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike '__skip__='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike '__skip__='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike '__skip__='>
                                                      name: __skip__
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<0>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [1327 1343]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [1315 1325]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.LogicalAnd
                                              left: 
                                                (bool_expr.WordTest
                                                  w: {($ Id.VSub_DollarName __mkmsgs__)}
                                                )
                                              right: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobDEqual
                                                  left: {($ Id.VSub_DollarName __line__)}
                                                  right: {(SQ <'%{'>) <Id.Lit_Other '*'>}
                                                )
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '__skip__='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '__skip__='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '__skip__='>
                                              name: __skip__
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [1358 1378]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.WordTest
                                              w: {($ Id.VSub_DollarName __mkmsgs__)}
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobDEqual
                                                      left: {($ Id.VSub_DollarName __line__)}
                                                      right: 
                                                        {(SQ <'%#'>) <Id.Lit_Other '*'> (SQ <';;'>) 
                                                          <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike '__line__='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike '__line__='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike '__line__='>
                                                      name: __line__
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (BracedVarSub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name __line__>
                                                        var_name: __line__
                                                        suffix_op: 
                                                          (suffix_op.Unary
                                                            op: <Id.VOp1_Pound '#'>
                                                            arg_word: {(SQ <'%#'>)}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike '__num__='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike '__num__='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike '__num__='>
                                                      name: __num__
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (BracedVarSub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name __line__>
                                                        var_name: __line__
                                                        suffix_op: 
                                                          (suffix_op.Unary
                                                            op: <Id.VOp1_Percent '%'>
                                                            arg_word: {(SQ <';;'>) <Id.Lit_Other '*'>}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <read>
                                              more_env: []
                                              words: [{<read>} {<-r>} {<__line__>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [1401 1421]
                                        )
                                        (IfArm
                                          keyword: <Id.KW_Elif elif>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobDEqual
                                                      left: {($ Id.VSub_DollarName __line__)}
                                                      right: {<Id.Lit_Other '%'> <Id.Lit_Other '*'>}
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [1451 1465]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <print>
                                          more_env: []
                                          words: [
                                            {<print>}
                                            {<-u2>}
                                            {
                                              (DoubleQuoted
                                                left: <Id.Left_DollarDoubleQuote '$"'>
                                                parts: [
                                                  ($ Id.VSub_DollarName __command__)
                                                  <': unrecognized line='>
                                                  ($ Id.VSub_DollarName __line__)
                                                ]
                                                right: <Id.Right_DoubleQuote '"'>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike '__code__='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike '__code__='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike '__code__='>
                                                  name: __code__
                                                )
                                              op: assign_op.Equal
                                              rhs: {<1>}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [1390 1399]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Case
                                  case_kw: <Id.KW_Case case>
                                  to_match: (case_arg.Word w:{($ Id.VSub_DollarName __line__)})
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <Id.ExtGlob_Plus '+('>
                                      pattern: 
                                        (pat.Words
                                          words: [
                                            {
                                              (word_part.ExtGlob
                                                op: <Id.ExtGlob_Plus '+('>
                                                arms: [{<'[0-9]'>}]
                                                right: <Id.Right_ExtGlob _>
                                              ) (SQ <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                        )
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike '__num__='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike '__num__='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike '__num__='>
                                                  name: __num__
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (BracedVarSub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name __line__>
                                                    var_name: __line__
                                                    suffix_op: 
                                                      (suffix_op.Unary
                                                        op: <Id.VOp1_DPercent '%%'>
                                                        arg_word: {(SQ <' '>) <Id.Lit_Other '*'>}
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike '__line__='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike '__line__='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike '__line__='>
                                                  name: __line__
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (BracedVarSub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name __line__>
                                                    var_name: __line__
                                                    suffix_op: 
                                                      (suffix_op.Unary
                                                        op: <Id.VOp1_Pound '#'>
                                                        arg_word: {<Id.Lit_Other '*'> (SQ <'"'>)}
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike '__line__='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike '__line__='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike '__line__='>
                                                  name: __line__
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (BracedVarSub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name __line__>
                                                    var_name: __line__
                                                    suffix_op: 
                                                      (suffix_op.Unary
                                                        op: <Id.VOp1_Percent '%'>
                                                        arg_word: {(SQ <'"'>)}
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                    (CaseArm
                                      left: <Id.Lit_Star '*'>
                                      pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Continue continue>
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                  ]
                                  arms_end: <Id.KW_Esac esac>
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_ArrayLhsOpen '__index__['>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_ArrayLhsOpen '__index__['>
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen '__index__['>
                                      name: __index__
                                      index: {(DQ ($ Id.VSub_DollarName __line__))}
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName __num__)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_ArrayLhsOpen '__text__['>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_ArrayLhsOpen '__text__['>
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      left: <Id.Lit_ArrayLhsOpen '__text__['>
                                      name: __text__
                                      index: {($ Id.VSub_DollarName __num__)}
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName __line__)}
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DParen
                                          left: <Id.Op_DLeftParen _>
                                          child: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_Less
                                              left: ($ Id.Lit_ArithVarLike __max__)
                                              right: ($ Id.Lit_ArithVarLike __num__)
                                            )
                                          right: <Id.Op_DRightParen _>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.DParen
                                      left: <Id.Op_DLeftParen _>
                                      child: 
                                        (arith_expr.BinaryAssign
                                          op_id: Id.Arith_Equal
                                          left: ($ Id.Lit_ArithVarLike __max__)
                                          right: ($ Id.Lit_ArithVarLike __num__)
                                        )
                                      right: <Id.Op_DRightParen _>
                                      redirects: []
                                    )
                                  ]
                                  spids: [1579 1593]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: [
                        (Redir
                          op: <Id.Redir_Less '<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {($ Id.VSub_DollarName __out__)}
                        )
                      ]
                    )
                    (command.DParen
                      left: <Id.Op_DLeftParen _>
                      child: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: ($ Id.Lit_ArithVarLike __new__)
                          right: 
                            (arith_expr.Binary
                              op_id: Id.Arith_Plus
                              left: ($ Id.Lit_ArithVarLike __max__)
                              right: {<Id.Lit_Digits 1>}
                            )
                        )
                      right: <Id.Op_DRightParen _>
                      redirects: []
                    )
                  ]
                  spids: [1269 1284]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike '__tmp__='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike '__tmp__='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__tmp__='> name:__tmp__)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName __out__)}
                    )
                  ]
                  redirects: []
                )
                (command.DParen
                  left: <Id.Op_DLeftParen _>
                  child: 
                    (arith_expr.BinaryAssign
                      op_id: Id.Arith_Equal
                      left: ($ Id.Lit_ArithVarLike __new__)
                      right: {<Id.Lit_Digits 1>}
                    )
                  right: <Id.Op_DRightParen _>
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DParen
                          left: <Id.Op_DLeftParen _>
                          child: ($ Id.Lit_ArithVarLike __code__)
                          right: <Id.Op_DRightParen _>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName __code__)}
                    )
                  ]
                  spids: [1646 1656]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <exec>
              more_env: []
              words: [{<exec>}]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '1>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName __tmp__)}
                )
                (Redir op:<Id.Redir_GreatAnd '9>&'> loc:(redir_loc.Fd fd:9) arg:{<1>})
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <print>
              more_env: []
              words: [
                {<print>}
                {<-r>}
                {<-->}
                {(SQ <'$'>) 
                  (DQ <' '> 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name __out__>
                      var_name: __out__
                      suffix_op: (suffix_op.Unary op:<Id.VOp1_Percent '%'> arg_word:{<.msg>})
                      right: <Id.Right_DollarBrace '}'>
                    ) <' message catalog'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <print>
              more_env: []
              words: [
                {<print>}
                {<-r>}
                {<-->}
                {(SQ <'$translation'>) 
                  (DQ <' '> ($ Id.VSub_DollarName __command__) <' '> 
                    (CommandSub
                      left_token: <Id.Left_DollarParen '$('>
                      child: 
                        (command.Simple
                          blame_tok: <date>
                          more_env: []
                          words: [
                            {<date>}
                            {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <Y-> <Id.Lit_Other '%'> <m-> 
                              <Id.Lit_Other '%'> <d>
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                      right: <Id.Eof_RParen _>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <print>
              more_env: []
              words: [{<print>} {<-r>} {<-->} {(SQ <'$set'>) (DQ <' '> ($ Id.VSub_DollarName __set__))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <print>
              more_env: []
              words: [{<print>} {<-r>} {<-->} {(SQ <'$quote "'>)}]
              redirects: []
              do_fork: T
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <sort>
                  more_env: []
                  words: [
                    {<sort>}
                    {<-u>}
                    {
                      (DQ 
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name __objv__>
                          var_name: __objv__
                          bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '__raw__='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '__raw__='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__raw__='> name:__raw__)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Simple
                              blame_tok: <read>
                              more_env: []
                              words: [{<read>} {<-r>} {<__line__>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '__op__='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '__op__='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__op__='> name:__op__)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name __line__>
                                        var_name: __line__
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_DPercent '%%'>
                                            arg_word: {<' '> <Id.Lit_Other '*'>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '__line__='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '__line__='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '__line__='>
                                      name: __line__
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name __line__>
                                        var_name: __line__
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_Pound '#'>
                                            arg_word: {<Id.Lit_Other '*'> <' '>}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName __op__)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <cmd>
                                  pattern: (pat.Words words:[{<cmd>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '__a1__='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '__a1__='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '__a1__='>
                                              name: __a1__
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name __line__>
                                                var_name: __line__
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VOp1_DPercent '%%'>
                                                    arg_word: {<' '> <Id.Lit_Other '*'>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName __a1__)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <dot_cmd>
                                          pattern: (pat.Words words:[{<dot_cmd>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike '__a1__='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike '__a1__='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike '__a1__='>
                                                      name: __a1__
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<.>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <keys>
                                      more_env: []
                                      words: [{<keys>} {($ Id.VSub_DollarName __a1__)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <def>
                                  pattern: (pat.Words words:[{<def>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '__a1__='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '__a1__='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '__a1__='>
                                              name: __a1__
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name __line__>
                                                var_name: __line__
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VOp1_DPercent '%%'>
                                                    arg_word: {<' '> <Id.Lit_Other '*'>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '__a2__='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '__a2__='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '__a2__='>
                                              name: __a2__
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name __line__>
                                                var_name: __line__
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VOp1_Pound '#'>
                                                    arg_word: {<Id.Lit_Other '*'> <' '>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {($ Id.VSub_DollarName __a1__) <Id.Lit_Equals '='> (SQ <'$'>) 
                                          <__a2__>
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <str>
                                  pattern: (pat.Words words:[{<str>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <print>
                                      more_env: []
                                      words: [
                                        {<print>}
                                        {<-r>}
                                        {<-->}
                                        {(DQ ($ Id.VSub_DollarName __line__))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <raw>
                                  pattern: (pat.Words words:[{<raw>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '__raw__='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '__raw__='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '__raw__='>
                                              name: __raw__
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName __raw__) 
                                              (SingleQuoted
                                                left: <Id.Left_DollarSingleQuote '$\''>
                                                tokens: [<Id.Char_OneChar '\\n'>]
                                                right: <Id.Right_SingleQuote '\''>
                                              ) ($ Id.VSub_DollarName __line__)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.KW_Var var>
                                  pattern: (pat.Words words:[{<Id.KW_Var var>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '__a1__='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '__a1__='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '__a1__='>
                                              name: __a1__
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name __line__>
                                                var_name: __line__
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VOp1_DPercent '%%'>
                                                    arg_word: {<' '> <Id.Lit_Other '*'>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '__a2__='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '__a2__='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '__a2__='>
                                              name: __a2__
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name __line__>
                                                var_name: __line__
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VOp1_Pound '#'>
                                                    arg_word: {<Id.Lit_Other '*'> <' '>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName __a1__)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.KW_DLeftBracket '[['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.KW_DLeftBracket '[['> <Id.Lit_Colon ':'> <digit> 
                                                  <Id.Lit_Colon ':'> <Id.Lit_RBracket ']'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {<Id.Lit_VarLike '__v__='> (SQ <'$'>) 
                                                  ($ Id.VSub_DollarName __a2__)
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike '__v__='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike '__v__='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike '__v__='>
                                                      name: __v__
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {(SQ <'"'>) 
                                                      (BracedVarSub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name __v__>
                                                        var_name: __v__
                                                        suffix_op: 
                                                          (suffix_op.Slice
                                                            begin: 
                                                              (arith_expr.Binary
                                                                op_id: Id.Arith_Plus
                                                                left: ($ Id.Lit_ArithVarLike __a1__)
                                                                right: {<Id.Lit_Digits 1>}
                                                              )
                                                          )
                                                        right: <Id.Arith_RBrace _>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {<Id.Lit_VarLike '__v__='> (SQ <'$'>) 
                                                  ($ Id.VSub_DollarName __a1__)
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobDEqual
                                                      left: {($ Id.VSub_DollarName __v__)}
                                                      right: {(SQ <'"'>) <Id.Lit_Other '*'> (SQ <'"'>)}
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <print>
                                              more_env: []
                                              words: [
                                                {<print>}
                                                {<-r>}
                                                {<-->}
                                                {(DQ ($ Id.VSub_DollarName __v__))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [1990 2009]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.KW_DLeftBracket '[['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.KW_DLeftBracket '[['> <Id.Lit_Colon ':'> <digit> 
                                          <Id.Lit_Colon ':'> <Id.Lit_RBracket ']'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.WordTest
                                              w: {($ Id.VSub_DollarName __preserve__)}
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <print>
                                          more_env: []
                                          words: [
                                            {<print>}
                                            {<-r>}
                                            {<-->}
                                            {(DQ ($ Id.VSub_DollarName __line__))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ <'$'>)}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <print>
                                      more_env: []
                                      words: [
                                        {<print>}
                                        {<-r>}
                                        {<-u9>}
                                        {($ Id.VSub_DollarName __op__)}
                                        {<include>}
                                        {($ Id.VSub_DollarName __line__)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ForExpr
                      keyword: <Id.KW_For for>
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: ($ Id.Lit_ArithVarLike __i__)
                          right: {<Id.Lit_Digits 0>}
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: ($ Id.Lit_ArithVarLike __i__)
                          right: ($ Id.Lit_ArithVarLike __cmds__)
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike __i__)
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <keys>
                              more_env: []
                              words: [
                                {<keys>}
                                {
                                  (BracedVarSub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name __cmdv__>
                                    var_name: __cmdv__
                                    bracket_op: 
                                      (bracket_op.ArrayIndex
                                        expr: ($ Id.Lit_ArithVarLike __i__)
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName __raw__)})
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                        (command.Pipeline
                          children: [
                            (command.Simple
                              blame_tok: <print>
                              more_env: []
                              words: [
                                {<print>}
                                {<-r>}
                                {
                                  (DQ 
                                    (BracedVarSub
                                      left: <Id.Left_DollarBrace '${'>
                                      token: <Id.VSub_Name __raw__>
                                      var_name: __raw__
                                      suffix_op: 
                                        (suffix_op.Unary
                                          op: <Id.VOp1_Pound '#'>
                                          arg_word: {<Id.Lit_Other '?'>}
                                        )
                                      right: <Id.Right_DollarBrace '}'>
                                    )
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <sed>
                              more_env: []
                              words: [
                                {<sed>}
                                {<-e>}
                                {(SQ <'s/^"//'>)}
                                {<-e>}
                                {(SQ <'s/"$//'>)}
                                {<-e>}
                                {(SQ <'s/\\\\/&&/g'>)}
                                {<-e>}
                                {(SQ <'s/"/\\\\"/g'>)}
                                {<-e>}
                                {(SQ <'s/.*/$RAW$"&"/'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_Pipe _>]
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '__num__='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '__num__='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__num__='> name:__num__)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Simple
                              blame_tok: <read>
                              more_env: []
                              words: [{<read>} {<-r>} {<__line__>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName __line__)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ <'$RAW$'>) <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {(SQ <'$'>) <Id.Lit_LBracket '['> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\ '>
                                            ch: ' '
                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\t'> ch:'\t') <Id.Lit_RBracket ']'> 
                                          <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <print>
                                      more_env: []
                                      words: [
                                        {<print>}
                                        {<-r>}
                                        {<-->}
                                        {(DQ ($ Id.VSub_DollarName __line__))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {(SQ <'$'>) <Id.Lit_Star '*'>}
                                        {<Id.Lit_Star '*'> (DQ <'@(#)'>) <Id.Lit_Star '*'>}
                                        {<Id.Lit_Star '*'> (DQ <'<'>) 
                                          (word_part.ExtGlob
                                            op: <Id.ExtGlob_Star '*('>
                                            arms: [{<'[[:word:] .-]'>}]
                                            right: <Id.Right_ExtGlob _>
                                          ) (DQ <'@'>) 
                                          (word_part.ExtGlob
                                            op: <Id.ExtGlob_Star '*('>
                                            arms: [{<'[[:word:] .-]'>}]
                                            right: <Id.Right_ExtGlob _>
                                          ) (DQ <'>'>) (word_part.ExtGlob op:<Id.ExtGlob_Star '*('> arms:[{<'[ \t]'>}] right:<Id.Right_ExtGlob _>) 
                                          (SQ <'"'>)
                                        }
                                        {(DQ <'http://'>) <Id.Lit_Star '*'>}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <Id.KW_DLeftBracket '[['> 
                                          <Id.Lit_Colon ':'> <alpha> <Id.Lit_Colon ':'> <Id.Lit_RBracket ']'> <Id.Lit_RBracket ']'> <Id.KW_DLeftBracket '[['> 
                                          <Id.Lit_Colon ':'> <alpha> <Id.Lit_Colon ':'> <Id.Lit_RBracket ']'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '__line__='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '__line__='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '__line__='>
                                      name: __line__
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name __line__>
                                        var_name: __line__
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_Pound '#'>
                                            arg_word: {<Id.Lit_Other '*'> (SQ <'"'>)}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '__line__='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '__line__='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '__line__='>
                                      name: __line__
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name __line__>
                                        var_name: __line__
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VOp1_Percent '%'>
                                            arg_word: {(SQ <'"'>)}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.WordTest
                                              w: {($ Id.VSub_DollarName __line__)}
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.WordTest
                                                      w: 
                                                        {
                                                          (BracedVarSub
                                                            left: <Id.Left_DollarBrace '${'>
                                                            token: <Id.VSub_Name __index__>
                                                            var_name: __index__
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName __line__)
                                                                    )
                                                                  }
                                                              )
                                                            right: <Id.Right_DollarBrace '}'>
                                                          )
                                                        }
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.DBracket
                                                          left: <Id.KW_DLeftBracket '[['>
                                                          expr: 
                                                            (bool_expr.LogicalNot
                                                              child: 
                                                                (bool_expr.WordTest
                                                                  w: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
__preserve__
                                                                      )
                                                                    }
                                                                )
                                                            )
                                                          right: <Id.Lit_DRightBracket ']]'>
                                                          redirects: []
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike '__num__='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike '__num__='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike '__num__='>
                                                              name: __num__
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (BracedVarSub
                                                                left: <Id.Left_DollarBrace '${'>
                                                                token: <Id.VSub_Name __index__>
                                                                var_name: __index__
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
__line__
                                                                          )
                                                                        )
                                                                      }
                                                                  )
                                                                right: <Id.Right_DollarBrace '}'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_ArrayLhsOpen '__keep__['>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_ArrayLhsOpen '__keep__['>
                                                          lhs: 
                                                            (sh_lhs_expr.IndexedName
                                                              left: <Id.Lit_ArrayLhsOpen '__keep__['>
                                                              name: __keep__
                                                              index: {($ Id.VSub_DollarName __num__)}
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<1>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [2376 2387]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [2358 2374]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.WhileUntil
                                          keyword: <Id.KW_While while>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.WordTest
                                                      w: 
                                                        {
                                                          (BracedVarSub
                                                            left: <Id.Left_DollarBrace '${'>
                                                            token: <Id.VSub_Name __text__>
                                                            var_name: __text__
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: {($ Id.VSub_DollarName __num__)}
                                                              )
                                                            right: <Id.Right_DollarBrace '}'>
                                                          )
                                                        }
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          body: 
                                            (command.DoGroup
                                              left: <Id.KW_Do do>
                                              children: [
                                                (command.DParen
                                                  left: <Id.Op_DLeftParen _>
                                                  child: 
                                                    (arith_expr.UnaryAssign
                                                      op_id: Id.Node_PostDPlus
                                                      child: ($ Id.Lit_ArithVarLike __num__)
                                                    )
                                                  right: <Id.Op_DRightParen _>
                                                  redirects: []
                                                )
                                              ]
                                              right: <Id.KW_Done done>
                                            )
                                          redirects: []
                                        )
                                        (command.If
                                          if_kw: <Id.KW_If if>
                                          arms: [
                                            (IfArm
                                              keyword: <Id.KW_If if>
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.DParen
                                                      left: <Id.Op_DLeftParen _>
                                                      child: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_Less
                                                          left: ($ Id.Lit_ArithVarLike __max__)
                                                          right: ($ Id.Lit_ArithVarLike __num__)
                                                        )
                                                      right: <Id.Op_DRightParen _>
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.DParen
                                                  left: <Id.Op_DLeftParen _>
                                                  child: 
                                                    (arith_expr.BinaryAssign
                                                      op_id: Id.Arith_Equal
                                                      left: ($ Id.Lit_ArithVarLike __max__)
                                                      right: ($ Id.Lit_ArithVarLike __num__)
                                                    )
                                                  right: <Id.Op_DRightParen _>
                                                  redirects: []
                                                )
                                              ]
                                              spids: [2441 2455]
                                            )
                                          ]
                                          else_action: []
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                        (command.If
                                          if_kw: <Id.KW_If if>
                                          arms: [
                                            (IfArm
                                              keyword: <Id.KW_If if>
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.DBracket
                                                      left: <Id.KW_DLeftBracket '[['>
                                                      expr: 
                                                        (bool_expr.LogicalNot
                                                          child: 
                                                            (bool_expr.WordTest
                                                              w: {($ Id.VSub_DollarName __preserve__)}
                                                            )
                                                        )
                                                      right: <Id.Lit_DRightBracket ']]'>
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_ArrayLhsOpen '__keep__['>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_ArrayLhsOpen '__keep__['>
                                                      lhs: 
                                                        (sh_lhs_expr.IndexedName
                                                          left: <Id.Lit_ArrayLhsOpen '__keep__['>
                                                          name: __keep__
                                                          index: {($ Id.VSub_DollarName __num__)}
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<1>}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              spids: [2470 2481]
                                            )
                                          ]
                                          else_action: []
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_ArrayLhsOpen '__text__['>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_ArrayLhsOpen '__text__['>
                                              lhs: 
                                                (sh_lhs_expr.IndexedName
                                                  left: <Id.Lit_ArrayLhsOpen '__text__['>
                                                  name: __text__
                                                  index: {($ Id.VSub_DollarName __num__)}
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName __line__)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_ArrayLhsOpen '__index__['>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_ArrayLhsOpen '__index__['>
                                              lhs: 
                                                (sh_lhs_expr.IndexedName
                                                  left: <Id.Lit_ArrayLhsOpen '__index__['>
                                                  name: __index__
                                                  index: {(DQ ($ Id.VSub_DollarName __line__))}
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName __num__)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.DParen
                                          left: <Id.Op_DLeftParen _>
                                          child: 
                                            (arith_expr.UnaryAssign
                                              op_id: Id.Node_PostDPlus
                                              child: ($ Id.Lit_ArithVarLike __num__)
                                            )
                                          right: <Id.Op_DRightParen _>
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [2347 2356]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DParen
                                  left: <Id.Op_DLeftParen _>
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: ($ Id.Lit_ArithVarLike __max__)
                                      right: ($ Id.Lit_ArithVarLike __num__)
                                    )
                                  right: <Id.Op_DRightParen _>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.DParen
                              left: <Id.Op_DLeftParen _>
                              child: 
                                (arith_expr.BinaryAssign
                                  op_id: Id.Arith_Equal
                                  left: ($ Id.Lit_ArithVarLike __max__)
                                  right: ($ Id.Lit_ArithVarLike __num__)
                                )
                              right: <Id.Op_DRightParen _>
                              redirects: []
                            )
                          ]
                          spids: [2532 2546]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName __debug__)})
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ForExpr
                              keyword: <Id.KW_For for>
                              init: 
                                (arith_expr.BinaryAssign
                                  op_id: Id.Arith_Equal
                                  left: ($ Id.Lit_ArithVarLike __num__)
                                  right: {<Id.Lit_Digits 1>}
                                )
                              cond: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_LessEqual
                                  left: ($ Id.Lit_ArithVarLike __num__)
                                  right: ($ Id.Lit_ArithVarLike __max__)
                                )
                              update: 
                                (arith_expr.UnaryAssign
                                  op_id: Id.Node_PostDPlus
                                  child: ($ Id.Lit_ArithVarLike __num__)
                                )
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.WordTest
                                                      w: 
                                                        {
                                                          (BracedVarSub
                                                            left: <Id.Left_DollarBrace '${'>
                                                            token: <Id.VSub_Name __text__>
                                                            var_name: __text__
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: {($ Id.VSub_DollarName __num__)}
                                                              )
                                                            right: <Id.Right_DollarBrace '}'>
                                                          )
                                                        }
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.DParen
                                                          left: <Id.Op_DLeftParen _>
                                                          child: 
                                                            (arith_expr.Binary
                                                              op_id: Id.Arith_Great
                                                              left: ($ Id.Lit_ArithVarLike __num__)
                                                              right: ($ Id.Lit_ArithVarLike __new__)
                                                            )
                                                          right: <Id.Op_DRightParen _>
                                                          redirects: []
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.DBracket
                                                                  left: <Id.KW_DLeftBracket '[['>
                                                                  expr: 
                                                                    (bool_expr.LogicalNot
                                                                      child: 
                                                                        (bool_expr.WordTest
                                                                          w: 
                                                                            {
                                                                              (BracedVarSub
                                                                                left: 
                                                                                  <
Id.Left_DollarBrace '${'
                                                                                  >
                                                                                token: 
                                                                                  <Id.VSub_Name 
__keep__
                                                                                  >
                                                                                var_name: __keep__
                                                                                bracket_op: 
                                                                                  (bracket_op.ArrayIndex
                                                                                    expr: 
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName __num__
                                                                                        )
                                                                                      }
                                                                                  )
                                                                                right: 
                                                                                  <
Id.Right_DollarBrace '}'
                                                                                  >
                                                                              )
                                                                            }
                                                                        )
                                                                    )
                                                                  right: <Id.Lit_DRightBracket ']]'>
                                                                  redirects: []
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <print>
                                                              more_env: []
                                                              words: [
                                                                {<print>}
                                                                {<-r>}
                                                                {<-u2>}
                                                                {<-->}
                                                                {($ Id.VSub_DollarName __num__)}
                                                                {<HUH>}
                                                                {(SQ <'"'>) 
                                                                  (DQ 
                                                                    (BracedVarSub
                                                                      left: 
                                                                        <Id.Left_DollarBrace '${'>
                                                                      token: <Id.VSub_Name __text__>
                                                                      var_name: __text__
                                                                      bracket_op: 
                                                                        (bracket_op.ArrayIndex
                                                                          expr: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
__num__
                                                                              )
                                                                            }
                                                                        )
                                                                      right: 
                                                                        <Id.Right_DollarBrace '}'>
                                                                    )
                                                                  ) (SQ <'"'>)
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          spids: [2627 2643]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.Simple
                                                          blame_tok: <print>
                                                          more_env: []
                                                          words: [
                                                            {<print>}
                                                            {<-r>}
                                                            {<-u2>}
                                                            {<-->}
                                                            {($ Id.VSub_DollarName __num__)}
                                                            {<NEW>}
                                                            {(SQ <'"'>) 
                                                              (DQ 
                                                                (BracedVarSub
                                                                  left: <Id.Left_DollarBrace '${'>
                                                                  token: <Id.VSub_Name __text__>
                                                                  var_name: __text__
                                                                  bracket_op: 
                                                                    (bracket_op.ArrayIndex
                                                                      expr: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
__num__
                                                                          )
                                                                        }
                                                                    )
                                                                  right: <Id.Right_DollarBrace '}'>
                                                                )
                                                              ) (SQ <'"'>)
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [2611 2625]
                                                )
                                                (IfArm
                                                  keyword: <Id.KW_Elif elif>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.DBracket
                                                          left: <Id.KW_DLeftBracket '[['>
                                                          expr: 
                                                            (bool_expr.WordTest
                                                              w: 
                                                                {
                                                                  (BracedVarSub
                                                                    left: <Id.Left_DollarBrace '${'>
                                                                    token: <Id.VSub_Name __keep__>
                                                                    var_name: __keep__
                                                                    bracket_op: 
                                                                      (bracket_op.ArrayIndex
                                                                        expr: 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
__num__
                                                                            )
                                                                          }
                                                                      )
                                                                    right: <Id.Right_DollarBrace '}'>
                                                                  )
                                                                }
                                                            )
                                                          right: <Id.Lit_DRightBracket ']]'>
                                                          redirects: []
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <print>
                                                      more_env: []
                                                      words: [
                                                        {<print>}
                                                        {<-r>}
                                                        {<-u2>}
                                                        {<-->}
                                                        {($ Id.VSub_DollarName __num__)}
                                                        {<OLD>}
                                                        {(SQ <'"'>) 
                                                          (DQ 
                                                            (BracedVarSub
                                                              left: <Id.Left_DollarBrace '${'>
                                                              token: <Id.VSub_Name __text__>
                                                              var_name: __text__
                                                              bracket_op: 
                                                                (bracket_op.ArrayIndex
                                                                  expr: 
                                                                    {($ Id.VSub_DollarName __num__)}
                                                                )
                                                              right: <Id.Right_DollarBrace '}'>
                                                            )
                                                          ) (SQ <'"'>)
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [2706 2720]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.Simple
                                                  blame_tok: <print>
                                                  more_env: []
                                                  words: [
                                                    {<print>}
                                                    {<-r>}
                                                    {<-u2>}
                                                    {<-->}
                                                    {($ Id.VSub_DollarName __num__)}
                                                    {<XXX>}
                                                    {(SQ <'"'>) 
                                                      (DQ 
                                                        (BracedVarSub
                                                          left: <Id.Left_DollarBrace '${'>
                                                          token: <Id.VSub_Name __text__>
                                                          var_name: __text__
                                                          bracket_op: 
                                                            (bracket_op.ArrayIndex
                                                              expr: {($ Id.VSub_DollarName __num__)}
                                                            )
                                                          right: <Id.Right_DollarBrace '}'>
                                                        )
                                                      ) (SQ <'"'>)
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          spids: [2595 2609]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [2561 2570]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.LogicalNot
                                      child: 
                                        (bool_expr.WordTest
                                          w: {($ Id.VSub_DollarName __preserve__)}
                                        )
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ForExpr
                              keyword: <Id.KW_For for>
                              init: 
                                (arith_expr.BinaryAssign
                                  op_id: Id.Arith_Equal
                                  left: ($ Id.Lit_ArithVarLike __num__)
                                  right: {<Id.Lit_Digits 1>}
                                )
                              cond: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Less
                                  left: ($ Id.Lit_ArithVarLike __num__)
                                  right: ($ Id.Lit_ArithVarLike __new__)
                                )
                              update: 
                                (arith_expr.UnaryAssign
                                  op_id: Id.Node_PostDPlus
                                  child: ($ Id.Lit_ArithVarLike __num__)
                                )
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.LogicalAnd
                                                      left: 
                                                        (bool_expr.WordTest
                                                          w: 
                                                            {
                                                              (BracedVarSub
                                                                left: <Id.Left_DollarBrace '${'>
                                                                token: <Id.VSub_Name __text__>
                                                                var_name: __text__
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: 
                                                                      {
                                                                        ($ Id.VSub_DollarName __num__)
                                                                      }
                                                                  )
                                                                right: <Id.Right_DollarBrace '}'>
                                                              )
                                                            }
                                                        )
                                                      right: 
                                                        (bool_expr.LogicalNot
                                                          child: 
                                                            (bool_expr.WordTest
                                                              w: 
                                                                {
                                                                  (BracedVarSub
                                                                    left: <Id.Left_DollarBrace '${'>
                                                                    token: <Id.VSub_Name __keep__>
                                                                    var_name: __keep__
                                                                    bracket_op: 
                                                                      (bracket_op.ArrayIndex
                                                                        expr: 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
__num__
                                                                            )
                                                                          }
                                                                      )
                                                                    right: <Id.Right_DollarBrace '}'>
                                                                  )
                                                                }
                                                            )
                                                        )
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.DParen
                                              left: <Id.Op_DLeftParen _>
                                              child: 
                                                (arith_expr.UnaryAssign
                                                  op_id: Id.Node_PostDPlus
                                                  child: ($ Id.Lit_ArithVarLike __ndrop__)
                                                )
                                              right: <Id.Op_DRightParen _>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_ArrayLhsOpen '__drop__['>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_ArrayLhsOpen '__drop__['>
                                                  lhs: 
                                                    (sh_lhs_expr.IndexedName
                                                      left: <Id.Lit_ArrayLhsOpen '__drop__['>
                                                      name: __drop__
                                                      index: ($ Id.Lit_ArithVarLike __ndrop__)
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName __num__)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [2837 2862]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: (bool_expr.WordTest w:{($ Id.VSub_DollarName __verbose__)})
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <print>
                                  more_env: []
                                  words: [
                                    {<print>}
                                    {<-u2>}
                                    {($ Id.VSub_DollarName __command__) <Id.Lit_Colon ':'>}
                                    {<old> <Id.Lit_Colon ':'> <1-> 
                                      (word_part.ArithSub
                                        left: <Id.Left_DollarDParen '$(('>
                                        anode: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Minus
                                            left: ($ Id.Lit_ArithVarLike __new__)
                                            right: {<Id.Lit_Digits 1>}
                                          )
                                        right: <Id.Right_DollarDParen _>
                                      )
                                    }
                                    {<new> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName __new__) <-> 
                                      ($ Id.VSub_DollarName __max__)
                                    }
                                    {<drop>}
                                    {($ Id.VSub_DollarName __ndrop__)}
                                    {<add>}
                                    {
                                      (word_part.ArithSub
                                        left: <Id.Left_DollarDParen '$(('>
                                        anode: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Plus
                                            left: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Minus
                                                left: ($ Id.Lit_ArithVarLike __max__)
                                                right: ($ Id.Lit_ArithVarLike __new__)
                                              )
                                            right: {<Id.Lit_Digits 1>}
                                          )
                                        right: <Id.Right_DollarDParen _>
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DParen
                                          left: <Id.Op_DLeftParen _>
                                          child: ($ Id.Lit_ArithVarLike __ndrop__)
                                          right: <Id.Op_DRightParen _>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ForExpr
                                      keyword: <Id.KW_For for>
                                      init: 
                                        (arith_expr.BinaryAssign
                                          op_id: Id.Arith_Equal
                                          left: ($ Id.Lit_ArithVarLike __i__)
                                          right: {<Id.Lit_Digits 1>}
                                        )
                                      cond: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_LessEqual
                                          left: ($ Id.Lit_ArithVarLike __i__)
                                          right: ($ Id.Lit_ArithVarLike __ndrop__)
                                        )
                                      update: 
                                        (arith_expr.UnaryAssign
                                          op_id: Id.Node_PostDPlus
                                          child: ($ Id.Lit_ArithVarLike __i__)
                                        )
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.DParen
                                              left: <Id.Op_DLeftParen _>
                                              child: 
                                                (arith_expr.BinaryAssign
                                                  op_id: Id.Arith_Equal
                                                  left: ($ Id.Lit_ArithVarLike __old__)
                                                  right: 
                                                    {
                                                      (BracedVarSub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name __drop__>
                                                        var_name: __drop__
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: {($ Id.VSub_DollarName __i__)}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      )
                                                    }
                                                )
                                              right: <Id.Op_DRightParen _>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_ArrayLhsOpen '__oz__['>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_ArrayLhsOpen '__oz__['>
                                                  lhs: 
                                                    (sh_lhs_expr.IndexedName
                                                      left: <Id.Lit_ArrayLhsOpen '__oz__['>
                                                      name: __oz__
                                                      index: ($ Id.Lit_ArithVarLike __i__)
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: <print>
                                                                more_env: []
                                                                words: [
                                                                  {<print>}
                                                                  {<-r>}
                                                                  {<-->}
                                                                  {
                                                                    (DQ 
                                                                      (word_part.EscapedLiteral
                                                                        token: 
                                                                          <Id.Lit_EscapedChar '\\"'>
                                                                        ch: '"'
                                                                      ) 
                                                                      (BracedVarSub
                                                                        left: 
                                                                          <Id.Left_DollarBrace '${'>
                                                                        token: 
                                                                          <Id.VSub_Name __text__>
                                                                        var_name: __text__
                                                                        bracket_op: 
                                                                          (bracket_op.ArrayIndex
                                                                            expr: 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName __old__
                                                                                )
                                                                              }
                                                                          )
                                                                        right: 
                                                                          <Id.Right_DollarBrace '}'>
                                                                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                    )
                                                                  }
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: <gzip>
                                                                more_env: []
                                                                words: [{<gzip>}]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: <wc>
                                                                more_env: []
                                                                words: [{<wc>} {<-c>}]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Eof_RParen _>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.ForExpr
                                      keyword: <Id.KW_For for>
                                      init: 
                                        (arith_expr.BinaryAssign
                                          op_id: Id.Arith_Equal
                                          left: ($ Id.Lit_ArithVarLike __num__)
                                          right: ($ Id.Lit_ArithVarLike __new__)
                                        )
                                      cond: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_LessEqual
                                          left: ($ Id.Lit_ArithVarLike __num__)
                                          right: ($ Id.Lit_ArithVarLike __max__)
                                        )
                                      update: 
                                        (arith_expr.UnaryAssign
                                          op_id: Id.Node_PostDPlus
                                          child: ($ Id.Lit_ArithVarLike __num__)
                                        )
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.AndOr
                                              children: [
                                                (command.DBracket
                                                  left: <Id.KW_DLeftBracket '[['>
                                                  expr: 
                                                    (bool_expr.WordTest
                                                      w: 
                                                        {
                                                          (BracedVarSub
                                                            left: <Id.Left_DollarBrace '${'>
                                                            token: <Id.VSub_Name __text__>
                                                            var_name: __text__
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: {($ Id.VSub_DollarName __num__)}
                                                              )
                                                            right: <Id.Right_DollarBrace '}'>
                                                          )
                                                        }
                                                    )
                                                  right: <Id.Lit_DRightBracket ']]'>
                                                  redirects: []
                                                )
                                                (command.ControlFlow
                                                  keyword: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike '__nz__='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike '__nz__='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike '__nz__='>
                                                      name: __nz__
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: <print>
                                                                more_env: []
                                                                words: [
                                                                  {<print>}
                                                                  {<-r>}
                                                                  {<-->}
                                                                  {
                                                                    (DQ 
                                                                      (word_part.EscapedLiteral
                                                                        token: 
                                                                          <Id.Lit_EscapedChar '\\"'>
                                                                        ch: '"'
                                                                      ) 
                                                                      (BracedVarSub
                                                                        left: 
                                                                          <Id.Left_DollarBrace '${'>
                                                                        token: 
                                                                          <Id.VSub_Name __text__>
                                                                        var_name: __text__
                                                                        bracket_op: 
                                                                          (bracket_op.ArrayIndex
                                                                            expr: 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName __num__
                                                                                )
                                                                              }
                                                                          )
                                                                        right: 
                                                                          <Id.Right_DollarBrace '}'>
                                                                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                    )
                                                                  }
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: <gzip>
                                                                more_env: []
                                                                words: [{<gzip>}]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: <wc>
                                                                more_env: []
                                                                words: [{<wc>} {<-c>}]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Eof_RParen _>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike '__hit__='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike '__hit__='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike '__hit__='>
                                                      name: __hit__
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<0>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.DParen
                                              left: <Id.Op_DLeftParen _>
                                              child: 
                                                (arith_expr.BinaryAssign
                                                  op_id: Id.Arith_Equal
                                                  left: ($ Id.Lit_ArithVarLike __bz__)
                                                  right: ($ Id.Lit_ArithVarLike __similar__)
                                                )
                                              right: <Id.Op_DRightParen _>
                                              redirects: []
                                            )
                                            (command.ForExpr
                                              keyword: <Id.KW_For for>
                                              init: 
                                                (arith_expr.BinaryAssign
                                                  op_id: Id.Arith_Equal
                                                  left: ($ Id.Lit_ArithVarLike __i__)
                                                  right: {<Id.Lit_Digits 1>}
                                                )
                                              cond: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_LessEqual
                                                  left: ($ Id.Lit_ArithVarLike __i__)
                                                  right: ($ Id.Lit_ArithVarLike __ndrop__)
                                                )
                                              update: 
                                                (arith_expr.UnaryAssign
                                                  op_id: Id.Node_PostDPlus
                                                  child: ($ Id.Lit_ArithVarLike __i__)
                                                )
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.DParen
                                                                  left: <Id.Op_DLeftParen _>
                                                                  child: 
                                                                    (arith_expr.BinaryAssign
                                                                      op_id: Id.Arith_Equal
                                                                      left: 
                                                                        ($ Id.Lit_ArithVarLike 
__old__
                                                                        )
                                                                      right: 
                                                                        {
                                                                          (BracedVarSub
                                                                            left: 
                                                                              <Id.Left_DollarBrace 
'${'
                                                                              >
                                                                            token: 
                                                                              <Id.VSub_Name __drop__>
                                                                            var_name: __drop__
                                                                            bracket_op: 
                                                                              (bracket_op.ArrayIndex
                                                                                expr: 
                                                                                  {
                                                                                    ($ 
Id.VSub_DollarName __i__
                                                                                    )
                                                                                  }
                                                                              )
                                                                            right: 
                                                                              <Id.Right_DollarBrace 
'}'
                                                                              >
                                                                          )
                                                                        }
                                                                    )
                                                                  right: <Id.Op_DRightParen _>
                                                                  redirects: []
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike '__z__='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike '__z__='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike '__z__='>
                                                                      name: __z__
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_DollarParen '$('>
                                                                        child: 
                                                                          (command.Pipeline
                                                                            children: [
                                                                              (command.Simple
                                                                                blame_tok: <print>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<print>}
                                                                                  {<-r>}
                                                                                  {<-->}
                                                                                  {
                                                                                    (DQ 
                                                                                      (word_part.EscapedLiteral
                                                                                        token: 
                                                                                          <
Id.Lit_EscapedChar '\\"'
                                                                                          >
                                                                                        ch: '"'
                                                                                      ) 
                                                                                      (BracedVarSub
                                                                                        left: 
                                                                                          <
Id.Left_DollarBrace '${'
                                                                                          >
                                                                                        token: 
                                                                                          <
Id.VSub_Name __text__
                                                                                          >
                                                                                        var_name: 
__text__
                                                                                        bracket_op: 
                                                                                          (bracket_op.ArrayIndex
                                                                                            expr: 
                                                                                              {
                                                                                                ($ 
Id.VSub_DollarName __old__
                                                                                                )
                                                                                              }
                                                                                          )
                                                                                        right: 
                                                                                          <
Id.Right_DollarBrace '}'
                                                                                          >
                                                                                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                                    ) 
                                                                                    (DQ 
                                                                                      (word_part.EscapedLiteral
                                                                                        token: 
                                                                                          <
Id.Lit_EscapedChar '\\"'
                                                                                          >
                                                                                        ch: '"'
                                                                                      ) 
                                                                                      (BracedVarSub
                                                                                        left: 
                                                                                          <
Id.Left_DollarBrace '${'
                                                                                          >
                                                                                        token: 
                                                                                          <
Id.VSub_Name __text__
                                                                                          >
                                                                                        var_name: 
__text__
                                                                                        bracket_op: 
                                                                                          (bracket_op.ArrayIndex
                                                                                            expr: 
                                                                                              {
                                                                                                ($ 
Id.VSub_DollarName __num__
                                                                                                )
                                                                                              }
                                                                                          )
                                                                                        right: 
                                                                                          <
Id.Right_DollarBrace '}'
                                                                                          >
                                                                                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                              (command.Simple
                                                                                blame_tok: <gzip>
                                                                                more_env: []
                                                                                words: [{<gzip>}]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                              (command.Simple
                                                                                blame_tok: <wc>
                                                                                more_env: []
                                                                                words: [{<wc>} {<-c>}]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                            ]
                                                                            ops: [
                                                                              <Id.Op_Pipe _>
                                                                              <Id.Op_Pipe _>
                                                                            ]
                                                                          )
                                                                        right: <Id.Eof_RParen _>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.DParen
                                                              left: <Id.Op_DLeftParen _>
                                                              child: 
                                                                (arith_expr.BinaryAssign
                                                                  op_id: Id.Arith_Equal
                                                                  left: ($ Id.Lit_ArithVarLike __z__)
                                                                  right: 
                                                                    (arith_expr.Binary
                                                                      op_id: Id.Arith_Minus
                                                                      left: 
                                                                        (arith_expr.Binary
                                                                          op_id: Id.Arith_Slash
                                                                          left: 
                                                                            (arith_expr.Binary
                                                                              op_id: Id.Arith_Star
                                                                              left: 
                                                                                ($ 
Id.Lit_ArithVarLike __z__
                                                                                )
                                                                              right: 
                                                                                {<Id.Lit_Digits 200>}
                                                                            )
                                                                          right: 
                                                                            (arith_expr.Binary
                                                                              op_id: Id.Arith_Plus
                                                                              left: 
                                                                                {
                                                                                  (BracedVarSub
                                                                                    left: 
                                                                                      <
Id.Left_DollarBrace '${'
                                                                                      >
                                                                                    token: 
                                                                                      <Id.VSub_Name 
__oz__
                                                                                      >
                                                                                    var_name: __oz__
                                                                                    bracket_op: 
                                                                                      (bracket_op.ArrayIndex
                                                                                        expr: 
                                                                                          ($ 
Id.Lit_ArithVarLike __i__
                                                                                          )
                                                                                      )
                                                                                    right: 
                                                                                      <
Id.Right_DollarBrace '}'
                                                                                      >
                                                                                  )
                                                                                }
                                                                              right: 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName __nz__
                                                                                  )
                                                                                }
                                                                            )
                                                                        )
                                                                      right: {<Id.Lit_Digits 100>}
                                                                    )
                                                                )
                                                              right: <Id.Op_DRightParen _>
                                                              redirects: []
                                                            )
                                                            (command.If
                                                              if_kw: <Id.KW_If if>
                                                              arms: [
                                                                (IfArm
                                                                  keyword: <Id.KW_If if>
                                                                  cond: 
                                                                    (condition.Shell
                                                                      commands: [
                                                                        (command.DParen
                                                                          left: <Id.Op_DLeftParen _>
                                                                          child: 
                                                                            (arith_expr.Binary
                                                                              op_id: Id.Arith_Less
                                                                              left: 
                                                                                ($ 
Id.Lit_ArithVarLike __z__
                                                                                )
                                                                              right: 
                                                                                ($ 
Id.Lit_ArithVarLike __bz__
                                                                                )
                                                                            )
                                                                          right: 
                                                                            <Id.Op_DRightParen _>
                                                                          redirects: []
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.DParen
                                                                      left: <Id.Op_DLeftParen _>
                                                                      child: 
                                                                        (arith_expr.BinaryAssign
                                                                          op_id: Id.Arith_Equal
                                                                          left: 
                                                                            ($ Id.Lit_ArithVarLike 
__bz__
                                                                            )
                                                                          right: 
                                                                            ($ Id.Lit_ArithVarLike 
__z__
                                                                            )
                                                                        )
                                                                      right: <Id.Op_DRightParen _>
                                                                      redirects: []
                                                                    )
                                                                    (command.DParen
                                                                      left: <Id.Op_DLeftParen _>
                                                                      child: 
                                                                        (arith_expr.BinaryAssign
                                                                          op_id: Id.Arith_Equal
                                                                          left: 
                                                                            ($ Id.Lit_ArithVarLike 
__hit__
                                                                            )
                                                                          right: 
                                                                            ($ Id.Lit_ArithVarLike 
__old__
                                                                            )
                                                                        )
                                                                      right: <Id.Op_DRightParen _>
                                                                      redirects: []
                                                                    )
                                                                    (command.DParen
                                                                      left: <Id.Op_DLeftParen _>
                                                                      child: 
                                                                        (arith_expr.BinaryAssign
                                                                          op_id: Id.Arith_Equal
                                                                          left: 
                                                                            ($ Id.Lit_ArithVarLike 
__hit_i__
                                                                            )
                                                                          right: 
                                                                            ($ Id.Lit_ArithVarLike 
__i__
                                                                            )
                                                                        )
                                                                      right: <Id.Op_DRightParen _>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [3226 3240]
                                                                )
                                                              ]
                                                              else_action: []
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [3129 3146]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.DParen
                                                          left: <Id.Op_DLeftParen _>
                                                          child: ($ Id.Lit_ArithVarLike __hit__)
                                                          right: <Id.Op_DRightParen _>
                                                          redirects: []
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.AndOr
                                                      children: [
                                                        (command.DBracket
                                                          left: <Id.KW_DLeftBracket '[['>
                                                          expr: 
                                                            (bool_expr.WordTest
                                                              w: {($ Id.VSub_DollarName __verbose__)}
                                                            )
                                                          right: <Id.Lit_DRightBracket ']]'>
                                                          redirects: []
                                                        )
                                                        (command.Simple
                                                          blame_tok: <print>
                                                          more_env: []
                                                          words: [
                                                            {<print>}
                                                            {<-u2>}
                                                            {($ Id.VSub_DollarName __command__) 
                                                              <Id.Lit_Colon ':'>
                                                            }
                                                            {($ Id.VSub_DollarName __hit__)}
                                                            {($ Id.VSub_DollarName __num__)}
                                                            {($ Id.VSub_DollarName __bz__)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_ArrayLhsOpen '__text__['>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_ArrayLhsOpen '__text__['>
                                                          lhs: 
                                                            (sh_lhs_expr.IndexedName
                                                              left: <Id.Lit_ArrayLhsOpen '__text__['>
                                                              name: __text__
                                                              index: {($ Id.VSub_DollarName __hit__)}
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (BracedVarSub
                                                                left: <Id.Left_DollarBrace '${'>
                                                                token: <Id.VSub_Name __text__>
                                                                var_name: __text__
                                                                bracket_op: 
                                                                  (bracket_op.ArrayIndex
                                                                    expr: 
                                                                      {
                                                                        ($ Id.VSub_DollarName __num__)
                                                                      }
                                                                  )
                                                                right: <Id.Right_DollarBrace '}'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_ArrayLhsOpen '__keep__['>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_ArrayLhsOpen '__keep__['>
                                                          lhs: 
                                                            (sh_lhs_expr.IndexedName
                                                              left: <Id.Lit_ArrayLhsOpen '__keep__['>
                                                              name: __keep__
                                                              index: {($ Id.VSub_DollarName __hit__)}
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<1>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_ArrayLhsOpen '__drop__['>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_ArrayLhsOpen '__drop__['>
                                                          lhs: 
                                                            (sh_lhs_expr.IndexedName
                                                              left: <Id.Lit_ArrayLhsOpen '__drop__['>
                                                              name: __drop__
                                                              index: 
                                                                {($ Id.VSub_DollarName __hit_i__)}
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<0>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_ArrayLhsOpen '__text__['>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_ArrayLhsOpen '__text__['>
                                                          lhs: 
                                                            (sh_lhs_expr.IndexedName
                                                              left: <Id.Lit_ArrayLhsOpen '__text__['>
                                                              name: __text__
                                                              index: {($ Id.VSub_DollarName __num__)}
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_ArrayLhsOpen '__keep__['>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_ArrayLhsOpen '__keep__['>
                                                          lhs: 
                                                            (sh_lhs_expr.IndexedName
                                                              left: <Id.Lit_ArrayLhsOpen '__keep__['>
                                                              name: __keep__
                                                              index: {($ Id.VSub_DollarName __num__)}
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [3281 3291]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  spids: [2934 2944]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          spids: [2801 2812]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ForExpr
                      keyword: <Id.KW_For for>
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: ($ Id.Lit_ArithVarLike __num__)
                          right: {<Id.Lit_Digits 1>}
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_LessEqual
                          left: ($ Id.Lit_ArithVarLike __num__)
                          right: ($ Id.Lit_ArithVarLike __max__)
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: ($ Id.Lit_ArithVarLike __num__)
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.DBracket
                                          left: <Id.KW_DLeftBracket '[['>
                                          expr: 
                                            (bool_expr.LogicalAnd
                                              left: 
                                                (bool_expr.WordTest
                                                  w: 
                                                    {
                                                      (BracedVarSub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name __text__>
                                                        var_name: __text__
                                                        bracket_op: 
                                                          (bracket_op.ArrayIndex
                                                            expr: {($ Id.VSub_DollarName __num__)}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      )
                                                    }
                                                )
                                              right: 
                                                (bool_expr.LogicalOr
                                                  left: 
                                                    (bool_expr.WordTest
                                                      w: {($ Id.VSub_DollarName __preserve__)}
                                                    )
                                                  right: 
                                                    (bool_expr.WordTest
                                                      w: 
                                                        {
                                                          (BracedVarSub
                                                            left: <Id.Left_DollarBrace '${'>
                                                            token: <Id.VSub_Name __keep__>
                                                            var_name: __keep__
                                                            bracket_op: 
                                                              (bracket_op.ArrayIndex
                                                                expr: {($ Id.VSub_DollarName __num__)}
                                                              )
                                                            right: <Id.Right_DollarBrace '}'>
                                                          )
                                                        }
                                                    )
                                                )
                                            )
                                          right: <Id.Lit_DRightBracket ']]'>
                                          redirects: []
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <print>
                                      more_env: []
                                      words: [
                                        {<print>}
                                        {<-r>}
                                        {<-->}
                                        {($ Id.VSub_DollarName __num__)}
                                        {
                                          (DQ 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            ) 
                                            (BracedVarSub
                                              left: <Id.Left_DollarBrace '${'>
                                              token: <Id.VSub_Name __text__>
                                              var_name: __text__
                                              bracket_op: 
                                                (bracket_op.ArrayIndex
                                                  expr: {($ Id.VSub_DollarName __num__)}
                                                )
                                              right: <Id.Right_DollarBrace '}'>
                                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"')
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [3397 3428]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobNEqual
                              left: {($ Id.VSub_DollarName __tmp__)}
                              right: {($ Id.VSub_DollarName __out__)}
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <grep>
                      more_env: []
                      words: [{<grep>} {<-v>} {(SQ <'^\\$'>)} {($ Id.VSub_DollarName __tmp__)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(${ Id.VSub_Name __tmp__) <n>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_f
                              child: {($ Id.VSub_DollarName __out__)}
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <grep>
                          more_env: []
                          words: [{<grep>} {<-v>} {(SQ <'^\\$'>)} {($ Id.VSub_DollarName __out__)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {(${ Id.VSub_Name __tmp__) <o>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <cmp>
                          more_env: []
                          words: [
                            {<cmp>}
                            {<-s>}
                            {(${ Id.VSub_Name __tmp__) <n>}
                            {(${ Id.VSub_Name __tmp__) <o>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.AndOr
                              children: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_f
                                      child: {($ Id.VSub_DollarName __out__)}
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <mv>
                                  more_env: []
                                  words: [
                                    {<mv>}
                                    {($ Id.VSub_DollarName __out__)}
                                    {($ Id.VSub_DollarName __out__) <.old>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.Simple
                              blame_tok: <mv>
                              more_env: []
                              words: [
                                {<mv>}
                                {($ Id.VSub_DollarName __tmp__)}
                                {($ Id.VSub_DollarName __out__)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [3459 3472]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [1251 1267]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ControlFlow
      keyword: <Id.ControlFlow_Exit exit>
      arg_word: {($ Id.VSub_DollarName __code__)}
    )
  ]
)