(command.CommandList
  children: [
    (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: {<package>}
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: 
        (case_arg.Word
          w: {($ Id.VSub_Hyphen -) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName BASH_VERSION)}
        )
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_Star '*'> <x> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> 
                  <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                }
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <Id.Lit_Colon ':'>
                  more_env: []
                  words: [
                    {<Id.Lit_Colon ':'>}
                    {<bash>}
                    {<set>}
                    {<-x>}
                    {<is>}
                    {<broken>}
                    {<Id.Lit_Colon ':'>}
                  ]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {<Id.Lit_Other '+'> <ex>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShFunction
      name_tok: <checksh>
      name: checksh
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <egrep>
                  more_env: []
                  words: [{<egrep>} {(SQ <'Version.*(88|1993)'>)} {($ Id.VSub_Number 1)}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/dev/null'>}
                    )
                    (Redir
                      op: <Id.Redir_GreatAnd '2>&'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<1>}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.VSub_Number '$1'>
                  more_env: []
                  words: [{($ Id.VSub_Number 1)} {<-c>} {(SQ <'(( .sh.version >= 20111111 ))'>)}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/dev/null'>}
                    )
                    (Redir
                      op: <Id.Redir_GreatAnd '2>&'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<1>}
                    )
                  ]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: 
        (case_arg.Word
          w: 
            {($ Id.VSub_DollarName _AST_BIN_PACKAGE_) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName SHELL) 
              <Id.Lit_Colon ':'> ($ Id.VSub_Number 0)
            }
        )
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <1>
          pattern: 
            (pat.Words
              words: [
                {<1> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}
                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <'/bin/sh'> <Id.Lit_Colon ':'> <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_Colon ':'> <Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'> 
                  <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'>
                }
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike '_AST_BIN_PACKAGE_='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_AST_BIN_PACKAGE_='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike '_AST_BIN_PACKAGE_='>
                      name: _AST_BIN_PACKAGE_
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<_AST_BIN_PACKAGE_>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <checksh>
                          more_env: []
                          words: [{<checksh>} {($ Id.VSub_DollarName SHELL)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>} {<no>} {<-lcmd>} {<conflict>} {<Id.Lit_Colon ':'>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [208 215]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (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 <' debug '>) <Id.Lit_Star '*'>}
                            {<Id.Lit_Star '*'> (DQ <' DEBUG '>) <Id.Lit_Star '*'>}
                            {<Id.Lit_Star '*'> (DQ <' show '>) <Id.Lit_Star '*'>}
                          ]
                        )
                      middle: <Id.Right_CasePat _>
                      action: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                            {($ Id.VSub_DollarName SHELL) <Id.Lit_Colon ':'>}
                            {<warning> <Id.Lit_Colon ':'>}
                            {<possible>}
                            {<-lcmd>}
                            {<conflict>}
                            {<-->}
                            {<falling>}
                            {<back>}
                            {<to>}
                            {<'/bin/sh'>}
                          ]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      right: <Id.Op_DSemi _>
                    )
                  ]
                  arms_end: <Id.KW_Esac esac>
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'SHELL='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'SHELL='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SHELL='> name:SHELL)
                      op: assign_op.Equal
                      rhs: {<'/bin/sh'>}
                    )
                  ]
                  redirects: []
                )
                (command.Simple
                  blame_tok: <export>
                  more_env: []
                  words: [{<export>} {<SHELL>}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <exec>
                  more_env: []
                  words: [
                    {<exec>}
                    {($ Id.VSub_DollarName SHELL)}
                    {(DQ ($ Id.VSub_Number 0))}
                    {(DQ ($ Id.VSub_At '@'))}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'LC_ALL='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'LC_ALL='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LC_ALL='> name:LC_ALL)
          op: assign_op.Equal
          rhs: {<C>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<LC_ALL>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'src='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'src='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'src='> name:src)
          op: assign_op.Equal
          rhs: {(DQ <'cmd contrib etc lib'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'use='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'use='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'use='> name:use)
          op: assign_op.Equal
          rhs: {(DQ <'/usr/common /exp /usr/local /usr/add-on /usr/addon /usr/tools /usr /opt'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'usr='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'usr='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'usr='> name:usr)
          op: assign_op.Equal
          rhs: {(DQ <'/home'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'lib='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'lib='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lib='> name:lib)
          op: assign_op.Equal
          rhs: {(DQ )}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ccs='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ccs='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ccs='> name:ccs)
          op: assign_op.Equal
          rhs: {(DQ <'/usr/kvm /usr/ccs/bin'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'org='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'org='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'org='> name:org)
          op: assign_op.Equal
          rhs: {(DQ <'gnu GNU'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'makefiles='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'makefiles='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'makefiles='> name:makefiles)
          op: assign_op.Equal
          rhs: {(DQ <'Mamfile Nmakefile nmakefile Makefile makefile'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'env='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'env='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'env='> name:env)
          op: assign_op.Equal
          rhs: {(DQ <'HOSTTYPE NPROC PACKAGEROOT INSTALLROOT PATH'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'checksum='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'checksum='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'checksum='> name:checksum)
          op: assign_op.Equal
          rhs: {<md5sum>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'checksum_commands='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'checksum_commands='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'checksum_commands='> name:checksum_commands)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName checksum) <' md5'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'checksum_empty='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'checksum_empty='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'checksum_empty='> name:checksum_empty)
          op: assign_op.Equal
          rhs: {(DQ <d41d8cd98f00b204e9800998ecf8427e>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'package_use='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'package_use='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package_use='> name:package_use)
          op: assign_op.Equal
          rhs: {(SQ <'=$HOSTTYPE=$PACKAGEROOT=$INSTALLROOT=$EXECROOT=$CC='>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'PACKAGE_admin_tail_timeout='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'PACKAGE_admin_tail_timeout='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'PACKAGE_admin_tail_timeout='>
              name: PACKAGE_admin_tail_timeout
            )
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name PACKAGE_admin_tail_timeout>
                var_name: PACKAGE_admin_tail_timeout
                suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{(DQ <1m>)})
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'CROSS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'CROSS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CROSS='> name:CROSS)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'admin_db='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'admin_db='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_db='> name:admin_db)
          op: assign_op.Equal
          rhs: {<admin.db>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'admin_env='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'admin_env='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_env='> name:admin_env)
          op: assign_op.Equal
          rhs: {<admin.env>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'admin_ditto='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'admin_ditto='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_ditto='> name:admin_ditto)
          op: assign_op.Equal
          rhs: {(DQ <'ditto --checksum --delete --verbose'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'admin_ditto_update='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'admin_ditto_update='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_ditto_update='> name:admin_ditto_update)
          op: assign_op.Equal
          rhs: {<--update>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'admin_ditto_skip='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'admin_ditto_skip='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_ditto_skip='> name:admin_ditto_skip)
          op: assign_op.Equal
          rhs: {(DQ <'OFFICIAL|core|old|*.core|*.tmp|.nfs*'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'admin_list='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'admin_list='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_list='> name:admin_list)
          op: assign_op.Equal
          rhs: {(SQ <'PACKAGE.$type.lst'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'admin_ping='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'admin_ping='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_ping='> name:admin_ping)
          op: assign_op.Equal
          rhs: {(DQ <'ping -c 1 -w 5'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'default_url='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'default_url='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'default_url='> name:default_url)
          op: assign_op.Equal
          rhs: {<default.url>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'MAKESKIP='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'MAKESKIP='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAKESKIP='> name:MAKESKIP)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name MAKESKIP>
                var_name: MAKESKIP
                suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{(DQ <'*[-.]*'>)})
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'RATZ='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'RATZ='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RATZ='> name:RATZ)
          op: assign_op.Equal
          rhs: {<ratz>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SED='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SED='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SED='> name:SED)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TAR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TAR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TAR='> name:TAR)
          op: assign_op.Equal
          rhs: {<tar>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TARFLAGS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TARFLAGS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARFLAGS='> name:TARFLAGS)
          op: assign_op.Equal
          rhs: {<xv>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TARPROBE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TARPROBE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARPROBE='> name:TARPROBE)
          op: assign_op.Equal
          rhs: {<B>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TR='> name:TR)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'all_types='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'all_types='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'all_types='> name:all_types)
          op: assign_op.Equal
          rhs: {(SQ <'*.*|sun4'>)}
        )
      ]
      redirects: []
    )
    (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 '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: package (AT&T Research) 2012-06-28 $\n'>
                          <Id.Char_Literals ']'>
                        ]
                        right: <Id.Right_SingleQuote '\''>
                      ) ($ Id.VSub_DollarName USAGE_LICENSE) 
                      (SingleQuoted
                        left: <Id.Left_DollarSingleQuote '$\''>
                        tokens: [
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '[+NAME?package - source and binary package control]\n'>
                          <Id.Char_Literals '[+DESCRIPTION?The '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' command controls source and binary\n'>
                          <Id.Char_Literals '    packages. It is a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals sh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) script coded for maximal portability. All\n'>
                          <Id.Char_Literals '    package files are in the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' directory tree.\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' must at minumum contain a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'bin/package'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' command or a\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'lib/package'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' directory. Binary package files are in the\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$INSTALLROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ('>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT/arch/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals hosttype>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ') tree, where\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals hosttpe>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '=`'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '`. All '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals actions>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' but '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals host>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals use>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '    require the current directory to be under '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. See\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals DETAILS>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' for more information.]\n'>
                          <Id.Char_Literals 
'[+?Note that no environment variables need be set by the user;\n'
                          >
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 
' determines the environment based on the current working\n'
                          >
                          <Id.Char_Literals '    directory. The '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals use>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' action starts a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals sh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) with the environment\n'>
                          <Id.Char_Literals '    initialized. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals CC>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals CCFLAGS>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals HOSTTYPE>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals SHELL>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' may be set\n'>
                          <Id.Char_Literals 
'    by explicit command argument assignments to override the defaults.]\n'
                          >
                          <Id.Char_Literals 
'[+?Packages are composed of components. Each component is built and\n'
                          >
                          <Id.Char_Literals '    installed by an '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ast>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals nmake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) makefile. Each package is also\n'>
                          <Id.Char_Literals '    described by an '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals nmake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' makefile that lists its components and\n'>
                          <Id.Char_Literals 
'    provides a content description. The package makefile and component\n'
                          >
                          <Id.Char_Literals 
'    makefiles provide all the information required to read, write, build\n'
                          >
                          <Id.Char_Literals '    and install packages.]\n'>
                          <Id.Char_Literals '[+?Package recipients only need '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals sh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals cc>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) to build and\n'>
                          <Id.Char_Literals '    install source packages, and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals sh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' to install binary packages.\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals nmake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ksh93>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' are required to write new packages. An\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$INSTALLROOT/bin/cc'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' script may be supplied for some architectures.\n'>
                          <Id.Char_Literals 
'    This script supplies a reasonable set of default options for compilers\n'
                          >
                          <Id.Char_Literals 
'    that accept multiple dialects or generate multiple object/executable\n'
                          >
                          <Id.Char_Literals '    formats.]\n'>
                          <Id.Char_Literals 
'[+?The command arguments are composed of a sequence of words: zero or\n'
                          >
                          <Id.Char_Literals '    more '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals qualifiers>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ', one '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals action>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ', and zero or more action-specific\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals arguments>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ', and zero or more '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals 'name=value'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' definitions. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'    names a particular package. The naming scheme is a '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ->
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' separated\n'>
                          <Id.Char_Literals 
'    hierarchy; the leftmost parts describe ownership, e.g.,\n'
                          >
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals gnu-fileutils>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ast-base>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. If no packages are specified then all\n'>
                          <Id.Char_Literals '    packages are operated on. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals optget>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(3) documentation options are also\n'>
                          <Id.Char_Literals '    supported. The default with no arguments is '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'host type'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '[+?The qualifiers are:]\n'>
                          <Id.Char_Literals '    {\n'>
                          <Id.Char_Literals '        [+authorize '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Remote authorization user name or license\n'>
                          <Id.Char_Literals '            acceptance phrase.]\n'>
                          <Id.Char_Literals 
'        [+debug|environment?Show environment and actions but do not\n'
                          >
                          <Id.Char_Literals '            execute.]\n'>
                          <Id.Char_Literals '        [+flat?Collapse '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$INSTALLROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' { bin fun include lib } onto\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals 
'        [+force?Force the action to override saved state.]\n'
                          >
                          <Id.Char_Literals '        [+never?Run make -N and show other actions.]\n'>
                          <Id.Char_Literals 
'        [+only?Only operate on the specified packages.]\n'
                          >
                          <Id.Char_Literals '        [+password '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals password>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?Remote authorization or license\n'>
                          <Id.Char_Literals '\t    acceptance password.]\n'>
                          <Id.Char_Literals '        [+quiet?Do not list captured action output.]\n'>
                          <Id.Char_Literals '        [+show?Run make -n and show other actions.]\n'>
                          <Id.Char_Literals '        [+verbose?Provide detailed action output.]\n'>
                          <Id.Char_Literals 
'        [+DEBUG?Trace the package script actions in detail.]\n'
                          >
                          <Id.Char_Literals '    }\n'>
                          <Id.Char_Literals '[+?The actions are:]\n'>
                          <Id.Char_Literals '    {\n'>
                          <Id.Char_Literals '        [+admin'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ['>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals all>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ']] ['>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals db>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']] ['>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals on>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals pattern>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']]['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals action>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...]]?Apply\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals action>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... to the hosts listed in '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. If '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is\n'>
                          <Id.Char_Literals '            omitted then '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals admin.db>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is assumed. The caller must have\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals rcp>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals rsh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) or '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals scp>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ssh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) access\n'>
                          <Id.Char_Literals '            to the hosts. Output for '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals action>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is saved per-host in the\n'>
                          <Id.Char_Literals '            file '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals action>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.log/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals host>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. Logs can be viewed by\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'package admin'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ['>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals on>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals host>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']] '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals results>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals action>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']].\n'>
                          <Id.Char_Literals 
'            By default only local PACKAGEROOT hosts are selected from\n'
                          >
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '; '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals all>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' selects all hosts. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals on>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals pattern>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' selects\n'>
                          <Id.Char_Literals '            only hosts matching the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '|'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' separated '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals pattern>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'            contains four types of lines. Blank lines and lines beginning\n'
                          >
                          <Id.Char_Literals '            with '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '#'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' are ignored. Lines starting with '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals id>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '='>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals value>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'            are variable assignments. Set admin_ping to local conventions\n'
                          >
                          <Id.Char_Literals '            if '>
                          <Id.Char_OneChar '\\"'>
                        ]
                        right: <Id.Right_SingleQuote '\''>
                      ) ($ Id.VSub_DollarName admin_ping) 
                      (SingleQuoted
                        left: <Id.Left_DollarSingleQuote '$\''>
                        tokens: [
                          <Id.Char_OneChar '\\"'>
                          <Id.Char_Literals ' fails. If a package list is not specified\n'>
                          <Id.Char_Literals '            on the command line the '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals action>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' applies to all packages; a\n'>
                          <Id.Char_Literals '            variable assigment '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '='>
                          <Id.Char_OneChar '\\"'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals list>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\"'>
                          <Id.Char_Literals ' applies '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals action>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '            to the packages in '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals list>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' for subsequent hosts in '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.\n'>
                          <Id.Char_Literals 
'            The remaining line type is a host description consisting of 6\n'
                          >
                          <Id.Char_Literals 
'            tab separated fields. The first 3 are mandatory; the remaining\n'
                          >
                          <Id.Char_Literals '            3 are updated by the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals admin>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' action. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is saved in\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals file>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .old>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' before update. The fields are:]\n'>
                          <Id.Char_Literals '            {\n'>
                          <Id.Char_Literals 
'                [+hosttype?The host type as reported by\n'
                          >
                          <Id.Char_Literals '                    '>
                          <Id.Char_OneChar '\\"'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\"'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals 
'                [+[user@]]host?The host name and optionally user name\n'
                          >
                          <Id.Char_Literals '                    for '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals rcp>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals rsh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) access.]\n'>
                          <Id.Char_Literals 
'                [+[remote::[[master]]::]]]]PACKAGEROOT?The absolute remote package\n'
                          >
                          <Id.Char_Literals 
'                    root directory and optionally the remote protocol (rsh\n'
                          >
                          <Id.Char_Literals 
'                    or ssh) if the directory is on a different server than\n'
                          >
                          <Id.Char_Literals 
'                    the master package root directory. If\n'
                          >
                          <Id.Char_Literals '                    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'lib/package/admin/'>
                        ]
                        right: <Id.Right_SingleQuote '\''>
                      ) ($ Id.VSub_DollarName admin_env) 
                      (SingleQuoted
                        left: <Id.Left_DollarSingleQuote '$\''>
                        tokens: [
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' exists under this\n'>
                          <Id.Char_Literals '                    directory then it is sourced by '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals sh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) before\n'>
                          <Id.Char_Literals '                    '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals action>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is done. If this field begins with '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ->
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'                    then the host is ignored. If this field contains '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ':'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '                    then '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ditto>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) is used to sync the remote '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals src>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'                    directory hierarchy to the local one. If ['
                          >
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals master>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']]:\n'>
                          <Id.Char_Literals '\t\t    is specified then the sync is deferred to the '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals master>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '\t\t    host. If '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals master>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is omitted (two :) then the sync is\n'>
                          <Id.Char_Literals 
'\t\t    disabled. These directories must exist on the remote side:\n'
                          >
                          <Id.Char_Literals '\t\t    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'lib/package'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'src/cmd'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'src/lib'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '                [+date?'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals YYMMDD>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' of the last action.]\n'>
                          <Id.Char_Literals 
'                [+time?Elapsed wall time for the last action.]\n'
                          >
                          <Id.Char_Literals '                [+M T W?The '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals admin>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' action '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals make>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals test>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and\n'>
                          <Id.Char_Literals '                    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals write>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' action error counts. A non-numeric value in\n'>
                          <Id.Char_Literals 
'                    any of these fields disables the corresponding action.]\n'
                          >
                          <Id.Char_Literals '\t    \t[+owner?The owner contact information.]\n'>
                          <Id.Char_Literals '\t\t[+attributes?'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals 'name=value'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' attributes. Should at least contain\n'>
                          <Id.Char_Literals '\t\t    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals cc>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '='>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals compiler-version>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '            }\n'>
                          <Id.Char_Literals '\t[+clean | clobber?Delete the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'arch/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals HOSTTYPE>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' hierarchy; this\n'>
                          <Id.Char_Literals '\t    deletes all generated files and directories for '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals HOSTTYPE>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.\n'>
                          <Id.Char_Literals '\t    The heirarchy can be rebuilt by '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'package make'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '        [+contents'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]]?List description and\n'>
                          <Id.Char_Literals '            components for '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' on the standard output.]\n'>
                          <Id.Char_Literals '        [+copyright'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]]?List the general copyright\n'>
                          <Id.Char_Literals '            notice(s) for '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' on the standard output. Note that\n'>
                          <Id.Char_Literals '            individual components in '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' may contain additional or\n'>
                          <Id.Char_Literals '            replacement notices.]\n'>
                          <Id.Char_Literals '        [+export'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals variable>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...]]?List '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '='>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals value>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' for\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals variable>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ', one per line. If the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals only>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' attribute is\n'>
                          <Id.Char_Literals 
'            specified then only the variable values are listed. If no\n'
                          >
                          <Id.Char_Literals '\t    variables are specified then '>
                          <Id.Char_OneChar '\\b'>
                        ]
                        right: <Id.Right_SingleQuote '\''>
                      ) ($ Id.VSub_DollarName env) 
                      (SingleQuoted
                        left: <Id.Left_DollarSingleQuote '$\''>
                        tokens: [
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' are assumed.]\n'>
                          <Id.Char_Literals '        [+help'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals action>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]]?Display help text on the standard\n'>
                          <Id.Char_Literals '            error (standard output for '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals action>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ').]\n'>
                          <Id.Char_Literals '        [+host'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals attribute>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]]?List\n'>
                          <Id.Char_Literals 
'            architecture/implementation dependent host information on the\n'
                          >
                          <Id.Char_Literals '            standard output. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals type>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is listed if no attributes are\n'>
                          <Id.Char_Literals 
'            specified. Information is listed on a single line in\n'
                          >
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals attribute>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' order. The attributes are:]\n'>
                          <Id.Char_Literals '            {\n'>
                          <Id.Char_Literals '                [+canon '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals name>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '?An external host type name to be\n'>
                          <Id.Char_Literals '                    converted to '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' syntax.]\n'>
                          <Id.Char_Literals 
'                [+cpu?The number of cpus; 1 if the host is not a\n'
                          >
                          <Id.Char_Literals '                    multiprocessor.]\n'>
                          <Id.Char_Literals '                [+name?The host name.]\n'>
                          <Id.Char_Literals 
'                [+rating?The cpu rating in pseudo mips; the value is\n'
                          >
                          <Id.Char_Literals 
'                    useful useful only in comparisons with rating values of\n'
                          >
                          <Id.Char_Literals 
'                    other hosts. Other than a vax rating (mercifully) fixed\n'
                          >
                          <Id.Char_Literals 
'                    at 1, ratings can vary wildly but consistently from\n'
                          >
                          <Id.Char_Literals '                    vendor mips ratings. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals cc>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) may be required to\n'>
                          <Id.Char_Literals '                    determine the rating.]\n'>
                          <Id.Char_Literals 
'                [+type?The host type, usually in the form\n'
                          >
                          <Id.Char_Literals '                    '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals vendor>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals .>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals architecture>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ', with an optional trailing\n'>
                          <Id.Char_Literals '                    -'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals version>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. The main theme is that type names within\n'>
                          <Id.Char_Literals 
'                    a family of architectures are named in a similar,\n'
                          >
                          <Id.Char_Literals 
'                    predictable style. OS point release information is\n'
                          >
                          <Id.Char_Literals 
'                    avoided as much as possible, but vendor resistance to\n'
                          >
                          <Id.Char_Literals 
'                    release incompatibilities has for the most part been\n'
                          >
                          <Id.Char_Literals '                    futile.]\n'>
                          <Id.Char_Literals '            }\n'>
                          <Id.Char_Literals '        [+html'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals action>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]]?Display html help text on the standard\n'>
                          <Id.Char_Literals '            error (standard output for '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals action>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ').]\n'>
                          <Id.Char_Literals '        [+install'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals architecture>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]] '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals directory>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]]?Copy\n'>
                          <Id.Char_Literals '            the package binary hierarchy to '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals directory>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. If\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals architecture>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is omitted then all architectures are\n'>
                          <Id.Char_Literals '            installed. If '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals flat>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is specified then exactly one\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals architecture>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' must be specified; this architecture will be\n'>
                          <Id.Char_Literals '            installed in '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals directory>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' without the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'arch/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals HOSTTYPE>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'            directory prefixes. Otherwise each architecture will be\n'
                          >
                          <Id.Char_Literals '            installed in a separate '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'arch/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals HOSTTYPE>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' subdirectory of\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals directory>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. The '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals architecture>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ->
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' names the current\n'>
                          <Id.Char_Literals '            architecture. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals directory>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' must be an existing directory. If\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is omitted then all binary packages are installed.\n'>
                          <Id.Char_Literals '            This action requires '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals nmake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '        [+license'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]]?List the source license(s) for\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' on the standard output. Note that individual\n'>
                          <Id.Char_Literals '            components in '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' may contain additional or replacement\n'>
                          <Id.Char_Literals '            licenses.]\n'>
                          <Id.Char_Literals '        [+list'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]]?List the name, version and\n'>
                          <Id.Char_Literals '            prerequisites for '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' on the standard output.]\n'>
                          <Id.Char_Literals '        [+make'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]] [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals option>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]] [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals target>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]]?Build\n'>
                          <Id.Char_Literals '\t    and install. The default '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals target>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals install>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', which makes\n'>
                          <Id.Char_Literals '\t    and installs '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. If the standard output is a terminal\n'>
                          <Id.Char_Literals '\t    then the output is also captured in\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$INSTALLROOT/lib/package/gen/make.out'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. The build is done in\n'>
                          <Id.Char_Literals '            the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$INSTALLROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' directory tree viewpathed on top of the\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' directory tree. If '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals flat>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is specified then\n'>
                          <Id.Char_Literals '            the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$INSTALLROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' { bin fun include lib } directories are\n'>
                          <Id.Char_Literals 
'            linked to the same directories in the package root. Only one\n'
                          >
                          <Id.Char_Literals '            architecture may be '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals flat>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. Leaf directory names matching the\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '|'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '-separated shell pattern '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$MAKESKIP'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' are ignored. The\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals view>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' action is done before making. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals option>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' operands are\n'>
                          <Id.Char_Literals '\t    passed to the underlying make command.]\n'>
                          <Id.Char_Literals '        [+read'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... | '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals archive>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]]?Read the named\n'>
                          <Id.Char_Literals 
'            package or archive(s). Must be run from the package root\n'
                          >
                          <Id.Char_Literals '            directory. Archives are searched for in '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'lib/package/tgz'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. Each package archive is read only once.\n'>
                          <Id.Char_Literals '            The file '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'lib/package/tgz/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '[.'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals type>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']]'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .tim>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '            tracks the read time. See the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals write>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' action for archive\n'>
                          <Id.Char_Literals 
'            naming conventions. Text file archive member are assumed to be\n'
                          >
                          <Id.Char_Literals '            ASCII or UTF-8 encoded.]\n'>
                          <Id.Char_Literals '        [+regress?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals diff>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) the current and previous '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'package test'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '            results.]\n'>
                          <Id.Char_Literals '        [+release'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ ['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals CC>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']]'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals YY-MM-DD>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' [ ['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals cc>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']]'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals yy-mm-dd>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]]]] [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]]?Display\n'>
                          <Id.Char_Literals '            recent changes for the date range ['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals CC>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']]'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals YY-MM-DD>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' (up to\n'>
                          <Id.Char_Literals '        ['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals cc>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']]'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals yy-mm-dd>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.), where '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ->
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' means lowest (or highest.)\n'>
                          <Id.Char_Literals 
'            If no dates are specified then changes for the last 4 months\n'
                          >
                          <Id.Char_Literals '            are listed. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' may be a package or component name.]\n'>
                          <Id.Char_Literals '        [+remove'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]]?Remove files installed for\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '        [+results'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals failed>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ]] [ '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals path>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ]] [ '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals old>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ]] ['>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals make>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' | '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals test>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' | '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals write>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ]]?List\n'>
                          <Id.Char_Literals 
'            results and interesting messages captured by the most recent\n'
                          >
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals make>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' (default), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals test>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' or '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals write>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' action. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals old>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'            specifies the previous results, if any (current and previous\n'
                          >
                          <Id.Char_Literals '            results are retained.) '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$HOME/.pkgresults'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', if it exists,\n'>
                          <Id.Char_Literals '            must contain an '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals egrep>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) expression of result lines to be\n'>
                          <Id.Char_Literals '            ignored. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals failed>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' lists failures only and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals path>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' lists the\n'>
                          <Id.Char_Literals '            results file path name only.]\n'>
                          <Id.Char_Literals '        [+setup'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ beta ]] [ binary ]] [ source ]] [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals architecture>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]] [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals url>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]] [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]]?This\n'>
                          <Id.Char_Literals 
'            action initializes the current directory as a package root, runs the\n'
                          >
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals update>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 
' action to download new or out of date packages, and runs the\n'
                          >
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals read>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' action on those packages. If '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals flat>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is specified then the\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$INSTALLROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 
' { bin fun include lib } directories are linked to the\n'
                          >
                          <Id.Char_Literals 
'            same directories in the package root. Only one architecture may be\n'
                          >
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals flat>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. See the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals update>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals read>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' action descriptions for\n'>
                          <Id.Char_Literals '            argument details.]\n'>
                          <Id.Char_Literals '        [+test'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]]?Run the regression tests for\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. If the standard output is a terminal then the\n'>
                          <Id.Char_Literals '            output is also captured in\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$INSTALLROOT/lib/package/gen/test.out'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. In general a package\n'>
                          <Id.Char_Literals 
'            must be made before it can be tested. Components tested with\n'
                          >
                          <Id.Char_Literals '            the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals regress>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) command require '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ksh93>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. If '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals only>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is\n'>
                          <Id.Char_Literals 
'\t    also specified then only the listed package components are\n'
                          >
                          <Id.Char_Literals 
'\t    tested, otherwise the closure of the components is tested.]\n'
                          >
                          <Id.Char_Literals '        [+update'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ beta ]] [ binary ]] [ source ]] ['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals architecture>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]] [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals url>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]] [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... ]]?Download\n'>
                          <Id.Char_Literals 
'            the latest release of the selected and required packages from '
                          >
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals url>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '            (e.g., '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'http://www.research.att.com/sw/download'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ') into the directory\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT/lib/package/tgz'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals beta>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' acesses beta packages;\n'>
                          <Id.Char_Literals '            download these at your own risk. If '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals architecture>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is omitted then\n'>
                          <Id.Char_Literals '            only architectures already present in the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals tgz>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' directory will be\n'>
                          <Id.Char_Literals '            downloaded. If '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals architecture>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ->
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' then all posted architectures\n'>
                          <Id.Char_Literals '            will be downloaded. If '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals url>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' matches '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '*.url'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' then it is interpreted\n'>
                          <Id.Char_Literals 
'            as a file containing shell variable assignments for '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals url>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ',\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals authorize>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals password>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. If '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals url>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is omitted then the\n'>
                          <Id.Char_Literals '            definitions for '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals url>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals authorize>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals password>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' in\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT/lib/package/tgz/default.url'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', if it exists, are used.\n'>
                          <Id.Char_Literals '            If '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT/lib/package/tgz/default.url'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' does not exist then it\n'>
                          <Id.Char_Literals '            is initialized with the current '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals url>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals authorize>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals password>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'            values and read permission for the current user only. If '
                          >
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is\n'>
                          <Id.Char_Literals 
'            omitted then only packages already present in the tgz directory will be\n'
                          >
                          <Id.Char_Literals '            downloaded. If '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ->
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' then all posted packages will be\n'>
                          <Id.Char_Literals '            downloaded. If '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals source>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals binary>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' are omitted then both source\n'>
                          <Id.Char_Literals 
'            and binary packages will be downloaded. If '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals only>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is specified then\n'>
                          <Id.Char_Literals 
'            only the named packages are updated; otherwise the closure of required\n'
                          >
                          <Id.Char_Literals '            packages is updated. This action requires '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals wget>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals lynx>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1),\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals curl>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) or a shell that supports io to\n'>
                          <Id.Char_Literals '\t    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '/dev/tcp/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals host>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '/'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals port>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '        [+use'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals uid>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' | '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals 
' | . [ 32 | 64 ]] | 32 | 64 | - ]] [ command ...]]?Run\n'
                          >
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals command>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ', or an interactive shell if '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals command>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is omitted,\n'>
                          <Id.Char_Literals 
'            with the environment initialized for using the package (can you\n'
                          >
                          <Id.Char_Literals '            say '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals shared>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals library>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' or '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals dll>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' without cussing?) If\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals uid>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' or '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' or '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals .>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is specified then it is used\n'>
                          <Id.Char_Literals '\t    to determine a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', possibly different from\n'>
                          <Id.Char_Literals 
'\t    the current directory. For example, to try out bozo`s package:\n'
                          >
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'package use bozo'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. The '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals use>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' action may be run from any\n'>
                          <Id.Char_Literals '            directory. If the file '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$INSTALLROOT/lib/package/profile'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is\n'>
                          <Id.Char_Literals 
'            readable then it is sourced to initialize the environment. 32 or 64\n'
                          >
                          <Id.Char_Literals '\t    implies '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' of . and specifies the target architecture\n'>
                          <Id.Char_Literals '\t    word size (which may be silently ignored.)]\n'>
                          <Id.Char_Literals '        [+verify'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]]?Verify installed binary files\n'>
                          <Id.Char_Literals '            against the checksum files in\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$INSTALLROOT/lib/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '/gen/*.sum'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. The checksum\n'>
                          <Id.Char_Literals 
'            files contain mode, user and group information. If the checksum\n'
                          >
                          <Id.Char_Literals 
'            matches for a given file then the mode, user and group are\n'
                          >
                          <Id.Char_Literals 
'            changed as necessary to match the checksum entry. A warning is\n'
                          >
                          <Id.Char_Literals 
'            printed on the standard error for each mismatch. Requires the\n'
                          >
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ast>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' package '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals cksum>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) command.]\n'>
                          <Id.Char_Literals '        [+view'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '?Initialize the architecture specific viewpath\n'>
                          <Id.Char_Literals '            hierarchy. If '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals flat>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is specified then the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$INSTALLROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' {\n'>
                          <Id.Char_Literals 
'            bin fun include lib } directories are linked to the same\n'
                          >
                          <Id.Char_Literals 
'            directories in the package root. Only one architecture may be\n'
                          >
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals flat>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. The '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals make>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' action implicitly calls this action.]\n'>
                          <Id.Char_Literals '        [+write'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' ['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals format>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']] '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals type>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ... [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ...]]?Write\n'>
                          <Id.Char_Literals '            a package archive for '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. All work is done in the\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT/lib/package'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' directory. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals format>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '-specific\n'>
                          <Id.Char_Literals '            files are placed in the '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals format>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' subdirectory. A\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '[.'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals type>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']]'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .tim>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' file in this directory tracks\n'>
                          <Id.Char_Literals 
'            the write time and prevents a package from being read in the\n'
                          >
                          <Id.Char_Literals 
'            same root it was written. If more than one file is generated\n'
                          >
                          <Id.Char_Literals '            for a particular '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals format>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' then those files are placed in the\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals format>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '/'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' subdirectory. File names in the\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals format>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' subdirectory will contain the package name, a\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals yyyy-mm-dd>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' date, and for binary packages, '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals HOSTTYPE>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. If\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is omitted then an ordered list of previously\n'>
                          <Id.Char_Literals '            written packages is generated. If '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals only>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is specified then\n'>
                          <Id.Char_Literals 
'            only the named packages will be written; otherwise prerequisite\n'
                          >
                          <Id.Char_Literals 
'            packages are written first. Package components must be listed\n'
                          >
                          <Id.Char_Literals '            in '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .pkg>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals format>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' may be one of:]\n'>
                          <Id.Char_Literals '            {\n'>
                          <Id.Char_Literals '                [+cyg?Generate a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals cygwin>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' package.]\n'>
                          <Id.Char_Literals '                [+exp?Generate an '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals exptools>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' maintainer source\n'>
                          <Id.Char_Literals '                    archive and '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals NPD>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' file, suitable for '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals expmake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1)]\n'>
                          <Id.Char_Literals 
'                [+lcl?Generate a package archive suitable for\n'
                          >
                          <Id.Char_Literals 
'                    restoration into the local source tree (i.e., the\n'
                          >
                          <Id.Char_Literals 
'                    source is not annotated for licencing.)]\n'
                          >
                          <Id.Char_Literals '                [+pkg?Generate a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals pkgmk>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) package suitable for\n'>
                          <Id.Char_Literals '                    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals pkgadd>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1).]\n'>
                          <Id.Char_Literals '                [+rpm?Generate an '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals rpm>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) package.]\n'>
                          <Id.Char_Literals '                [+tgz?Generate a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals gzip>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals tar>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) package\n'>
                          <Id.Char_Literals '                    archive. This is the default.]\n'>
                          <Id.Char_Literals '                [+tst?Generate a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals tgz>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' format package archive in the\n'>
                          <Id.Char_Literals '\t\t    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals tst>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' subdirectory. Version state files are not updated.]\n'>
                          <Id.Char_Literals '            }\n'>
                          <Id.Char_Literals '        [+?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals type>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' specifies the package type which must be one of\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals source>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals binary>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' or '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals runtime>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. A source package\n'>
                          <Id.Char_Literals 
'            contains the source needed to build the corresponding binary\n'
                          >
                          <Id.Char_Literals 
'            package. A binary package includes the libraries and headers\n'
                          >
                          <Id.Char_Literals 
'            needed for compiling and linking against the public interfaces.\n'
                          >
                          <Id.Char_Literals 
'            A runtime package contains the commands and required dynamic\n'
                          >
                          <Id.Char_Literals '            libraries.]\n'>
                          <Id.Char_Literals '        [+?A package may be either a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals base>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' or '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals delta>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. A base\n'>
                          <Id.Char_Literals 
'            package contains a complete copy of all components. A delta\n'
                          >
                          <Id.Char_Literals 
'            package contains only changes from a previous base package.\n'
                          >
                          <Id.Char_Literals '            Delta recipients must have the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ast>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals pax>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) command (in\n'>
                          <Id.Char_Literals '            the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ast-base>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' package.) If neither '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals base>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' nor '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals delta>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is\n'>
                          <Id.Char_Literals 
'            specified, then the current base is overwritten if there are no\n'
                          >
                          <Id.Char_Literals 
'            deltas referring to the current base. Only the '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals tgz>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and\n'>
                          <Id.Char_Literals '            '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals lcl>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' formats support '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals delta>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. If '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals base>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is specified\n'>
                          <Id.Char_Literals 
'            then a new base and two delta archives are generated: one delta\n'
                          >
                          <Id.Char_Literals 
'            to generate the new base from the old, and one delta to\n'
                          >
                          <Id.Char_Literals 
'            generate the old base from the new; the old base is then\n'
                          >
                          <Id.Char_Literals '            removed. If '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals delta>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is specified then a new delta referring\n'>
                          <Id.Char_Literals '            to the current base is written.]\n'>
                          <Id.Char_Literals '        [+?'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .pkg>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' may reference other packages. By default\n'>
                          <Id.Char_Literals 
'            a pointer to those packages is written. The recipient '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'package\n'>
                          <Id.Char_Literals '            read'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 
' will then check that all required packages have been\n'
                          >
                          <Id.Char_Literals '            downloaded. If '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals closure>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' is specified then the components for\n'>
                          <Id.Char_Literals 
'            all package references are included in the generated package.\n'
                          >
                          <Id.Char_Literals '            This may be useful for '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals lcl>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and versioning.]\n'>
                          <Id.Char_Literals '        [+?All formats but '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals lcl>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' annotate each '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals source>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' file (not\n'>
                          <Id.Char_Literals 
'            already annotated) with a license comment as it is written to\n'
                          >
                          <Id.Char_Literals '            the package archive using '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals proto>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1).]\n'>
                          <Id.Char_Literals '    }\n'>
                          <Id.Char_Literals 
'[+DETAILS?The package directory hierarchy is rooted at\n'
                          >
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 
'. All source and binaries reside under this tree. A two\n'
                          >
                          <Id.Char_Literals 
'    level viewpath is used to separate source and binaries. The top view is\n'
                          >
                          <Id.Char_Literals 
'    architecture specific, the bottom view is shared source. All building\n'
                          >
                          <Id.Char_Literals 
'    is done in the architecture specific view; no source view files are\n'
                          >
                          <Id.Char_Literals 
'    intentionally changed. This means that many different binary\n'
                          >
                          <Id.Char_Literals 
'    architectures can be made from a single copy of the source.]\n'
                          >
                          <Id.Char_Literals '[+?Independent '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' hierarchies can be combined by\n'>
                          <Id.Char_Literals '    appending '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$INSTALLROOT:$PACKAGEROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' pairs to '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals VPATH>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. The\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals VPATH>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' viewing order is from left to right. Each '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '    must have a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT/lib/package'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' directory.]\n'>
                          <Id.Char_Literals 
'[+?Each package contains one or more components. Component source for\n'
                          >
                          <Id.Char_Literals '    the '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals foo>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' command is in '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT/src/cmd/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals foo>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ', and source\n'>
                          <Id.Char_Literals '    for the '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals bar>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' library is in '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT/src/lib/lib'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals bar>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '. This\n'>
                          <Id.Char_Literals 
'    naming is for convenience only; the underlying makefiles handle\n'
                          >
                          <Id.Char_Literals '    inter-component build order. The '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals INIT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' component, which contains\n'>
                          <Id.Char_Literals 
'    generic package support files, is always made first, then the\n'
                          >
                          <Id.Char_Literals '    components named '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals INIT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '*, then the component order determined by the\n'>
                          <Id.Char_Literals '    closure of component makefile dependencies.]\n'>
                          <Id.Char_Literals '[+?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT/lib/package'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' contains package specific files. The\n'>
                          <Id.Char_Literals '    package naming convention is '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals group>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '[-'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals part>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']]; e.g., '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ast-base>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ',\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals gnu-fileutils>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. The *'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .pkg>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' files are ast '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals nmake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) makefiles\n'>
                          <Id.Char_Literals 
'    that contain the package name, package components, references to other\n'
                          >
                          <Id.Char_Literals '    packages, and a short package description. *'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .pkg>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' files are used by\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'package write'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' to generate new source and binary packages.]\n'>
                          <Id.Char_Literals '[+?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT/lib/package/'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals group>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .lic>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' files contain license\n'>
                          <Id.Char_Literals '    information that is used by the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ast>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals proto>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals nmake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1)\n'>
                          <Id.Char_Literals 
'    commands to generate source and binary license strings. '
                          >
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals group>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is\n'>
                          <Id.Char_Literals '    determined by the first '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ':PACKAGE:'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' operator name listed in the\n'>
                          <Id.Char_Literals '    component '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals nmake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' makefile. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals group>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .lic>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' files are part of the\n'>
                          <Id.Char_Literals 
'    licensing documentation. Each component may have its own '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals LICENSE>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' file\n'>
                          <Id.Char_Literals '    that overrides the '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals group>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .lic>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' file. The full text of the licenses\n'>
                          <Id.Char_Literals '    are in the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT/lib/package/LICENSES'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$INSTALLROOT/lib/package/LICENSES'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' directories.]\n'>
                          <Id.Char_Literals '[+?A few files are generated in '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT/lib/package/gen'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$INSTALLROOT/lib/package/gen'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .ver>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' contains one line\n'>
                          <Id.Char_Literals '    consisting of '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals 'package version release'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 1>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' for the most recent\n'>
                          <Id.Char_Literals '    instance of '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' read into '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', where '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '    is the package name, '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals version>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is the '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals YYYY-MM-DD>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' base version,\n'>
                          <Id.Char_Literals '    and '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals release>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' is '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals version>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' for the base release or '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals YYYY-MM-DD>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '    for delta releases. '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .req>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' contains *'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .ver>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' entries for\n'>
                          <Id.Char_Literals '    the packages required by '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ', except that the fourth field is\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 0>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' instead of '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 1>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. All packages except '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals INIT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' require the\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals INIT>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' package. A simple sort of '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .pkg>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and *'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .ver>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'    determines if the required package have been read in. Finally,\n'
                          >
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals .README>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals .html>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' contain the README text\n'>
                          <Id.Char_Literals '    for '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals 
' and all its components. Included are all changes added\n'
                          >
                          <Id.Char_Literals '    to the component '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals RELEASE>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ', '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals CHANGES>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' or '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ChangeLog>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' files dated\n'>
                          <Id.Char_Literals 
'    since the two most recent base releases. Component '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals RELEASE>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' files\n'>
                          <Id.Char_Literals '    contain tag lines of the form ['>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals YY>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ']]'>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals YY-MM-DD>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' [ '>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals text>
                          <Id.Char_OneChar '\\a'>
                          <Id.Char_Literals ' ]] (or\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals date>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 
'(1) format dates) followed by README text, in reverse\n'
                          >
                          <Id.Char_Literals 
'    chronological order (newer entries at the top of the file.) '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'package\n'>
                          <Id.Char_Literals '    release'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' lists this information, and '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'package contents ...'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' lists\n'>
                          <Id.Char_Literals '    the descriptions and components.]\n'>
                          <Id.Char_Literals '[+?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$HOSTYPE'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 
' names the current binary architecture and is determined\n'
                          >
                          <Id.Char_Literals '    by the output of '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals package>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' (no arguments.) The '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$HOSTTYPE'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' naming\n'>
                          <Id.Char_Literals 
'    scheme is used to separate incompatible executable and object formats.\n'
                          >
                          <Id.Char_Literals 
'    All architecture specific binaries are placed under '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$INSTALLROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '    ('>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT/arch/$HOSTTYPE'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.) There are a few places that match\n'>
                          <Id.Char_Literals '    against '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$HOSTTYPE'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' when making binaries; these are limited to\n'>
                          <Id.Char_Literals '    makefile compiler workarounds, e.g., if '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$HOSTTYPE'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' matches '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'hp.*'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'    then turn off the optimizer for these objects. All other architecture\n'
                          >
                          <Id.Char_Literals '    dependent logic is handled either by the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ast>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals iffe>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) command or\n'>
                          <Id.Char_Literals '    by component specific configure scripts. Explicit '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$HOSTYPE'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'    values matching *,*cc*[,-*,...]] optionally set the default '
                          >
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals CC>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' and\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals CCFLAGS>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 
'. This is handy for build farms that support different\n'
                          >
                          <Id.Char_Literals '    compilers on the same architecture.]\n'>
                          <Id.Char_Literals '[+?Each component contains an '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ast>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals nmake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) makefile (either\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals Nmakefile>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' or '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals Makefile>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ') and a '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals MAM>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' (make abstract machine)\n'>
                          <Id.Char_Literals '    file ('>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals Mamfile>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 
'.) A Mamfile contains a portable makefile description\n'
                          >
                          <Id.Char_Literals '    that is used by '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals mamake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) to simulate '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals nmake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '. Currently there is\n'>
                          <Id.Char_Literals 
'    no support for old-make/gnu-make makefiles; if the binaries are just\n'
                          >
                          <Id.Char_Literals '    being built then '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals mamake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' will suffice; if source or makefile\n'>
                          <Id.Char_Literals '    modifications are anticipated then '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals nmake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' (in the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ast-base>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals 
'    package) should be used. Mamfiles are automatically generated by\n'
                          >
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'package write'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '[+?Most component C source is prototyped. If '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$CC'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' (default value\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals cc>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ') is not a prototyping C compiler then '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'package make'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' runs\n'>
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals proto>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1) on portions of the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT/src'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' tree and places\n'>
                          <Id.Char_Literals '    the converted output files in the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT/proto/src'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' tree.\n'>
                          <Id.Char_Literals 
'    Converted files are then viewpathed over the original source.\n'
                          >
                          <Id.Char_Literals '    '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals proto>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 
'(1) converts an ANSI C subset to code that is compatible with\n'
                          >
                          <Id.Char_Literals '    K&R, ANSI, and C++ dialects.]\n'>
                          <Id.Char_Literals '[+?All scripts and commands under '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' use '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PATH'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '    relative pathnames (via the '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ast>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals pathpath>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(3) function); there\n'>
                          <Id.Char_Literals 
'    are no imbedded absolute pathnames. This means that binaries generated\n'
                          >
                          <Id.Char_Literals '    under '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PACKAGEROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' may be copied to a different root; users need\n'>
                          <Id.Char_Literals '    only change their '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$PATH'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' variable to reference the new installation\n'>
                          <Id.Char_Literals '    root '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals bin>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' directory. '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals 'package install'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ' installs binary packages in\n'>
                          <Id.Char_Literals '    a new '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '$INSTALLROOT'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '.]\n'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '[ qualifier ... ] [ action ] [ arg ... ] [ n=v ... ]\n'>
                          <Id.Char_Literals '\n'>
                          <Id.Char_Literals '[+SEE ALSO?'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals autoconfig>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals cksum>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals execrate>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals expmake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1),\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals gzip>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals make>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals mamake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals nmake>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals pax>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1),\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals pkgadd>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals pkgmk>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals proto>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals ratz>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals rpm>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1),\n'>
                          <Id.Char_Literals '\t'>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals sh>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals tar>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(1), '>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals optget>
                          <Id.Char_OneChar '\\b'>
                          <Id.Char_Literals '(3)]\n'>
                        ]
                        right: <Id.Right_SingleQuote '\''>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Star '*')})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <help>
                  pattern: (pat.Words words:[{<help>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {<-->} {<--man>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  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: <getopts>
                      more_env: []
                      words: [
                        {<getopts>}
                        {<-a>}
                        {($ Id.VSub_DollarName command)}
                        {(DQ ($ Id.VSub_DollarName USAGE))}
                        {<OPT>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>} {($ Id.VSub_DollarName OPTIND) <-1>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName AR)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Left_SingleQuote '\''>
          pattern: (pat.Words words:[{(SQ )}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'AR='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'AR='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'AR='> name:AR)
                  op: assign_op.Equal
                  rhs: {<ar>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName CC)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Left_SingleQuote '\''>
          pattern: (pat.Words words:[{(SQ )}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'CC='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'CC='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                  op: assign_op.Equal
                  rhs: {<cc>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName LD)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Left_SingleQuote '\''>
          pattern: (pat.Words words:[{(SQ )}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LD='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LD='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD='> name:LD)
                  op: assign_op.Equal
                  rhs: {<ld>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName NM)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Left_SingleQuote '\''>
          pattern: (pat.Words words:[{(SQ )}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'NM='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'NM='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NM='> name:NM)
                  op: assign_op.Equal
                  rhs: {<nm>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'action='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'action='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'action='> name:action)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'admin_all='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'admin_all='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_all='> name:admin_all)
          op: assign_op.Equal
          rhs: {<1>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'admin_on='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'admin_on='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_on='> name:admin_on)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'authorize='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'authorize='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'authorize='> name:authorize)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'bit='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'bit='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bit='> name:bit)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'exec='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'exec='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exec='> name:exec)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'flat='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'flat='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'flat='> name:flat)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'force='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'force='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'force='> name:force)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'global='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'global='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'global='> name:global)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'hi='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'hi='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hi='> name:hi)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'html='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'html='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'html='> name:html)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ifs='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ifs='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ifs='> name:ifs)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name IFS>
                var_name: IFS
                suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{(SQ <'\n'> <'\t '>)})
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'lo='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'lo='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lo='> name:lo)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'make='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'make='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'make='> name:make)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'makeflags='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'makeflags='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'makeflags='> name:makeflags)
          op: assign_op.Equal
          rhs: {(SQ <'-k -K'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'nmakeflags='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'nmakeflags='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nmakeflags='> name:nmakeflags)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'nmakesep='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'nmakesep='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nmakesep='> name:nmakesep)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'nl='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'nl='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nl='> name:nl)
          op: assign_op.Equal
          rhs: {(DQ <'\n'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'noexec='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'noexec='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'noexec='> name:noexec)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'only='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'only='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'only='> name:only)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'output='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'output='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'package_src='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'package_src='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package_src='> name:package_src)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'password='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'password='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'password='> name:password)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'quiet='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'quiet='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'quiet='> name:quiet)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'show='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'show='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'show='> name:show)
          op: assign_op.Equal
          rhs: {<Id.Lit_Colon ':'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'tab='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'tab='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tab='> name:tab)
          op: assign_op.Equal
          rhs: {(DQ <'        '>)}
        )
      ]
      redirects: []
    )
    (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: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'AUTHORIZE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'AUTHORIZE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'AUTHORIZE='> name:AUTHORIZE)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (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: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'HURL='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'HURL='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HURL='> name:HURL)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'PROTOROOT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'PROTOROOT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROTOROOT='> name:PROTOROOT)
          op: assign_op.Equal
          rhs: {<->}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SHELLMAGIC='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SHELLMAGIC='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SHELLMAGIC='> name:SHELLMAGIC)
          op: assign_op.Equal
          rhs: {<->}
        )
      ]
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <unset>
          more_env: []
          words: [
            {<unset>}
            {<FIGNORE>}
            {<BINDIR>}
            {<DLLDIR>}
            {<ETCDIR>}
            {<FUNDIR>}
            {<INCLUDEDIR>}
            {<LIBDIR>}
            {<LOCALEDIR>}
            {<MANDIR>}
            {<SHAREDIR>}
          ]
          redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
          do_fork: T
        )
        (command.Simple blame_tok:<true> more_env:[] words:[{<true>}] redirects:[] do_fork:T)
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (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.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {<host>} {<type>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <admin>
                  pattern: 
                    (pat.Words
                      words: [
                        {<admin>}
                        {<clean>}
                        {<clobber>}
                        {<contents>}
                        {<copyright>}
                        {<export>}
                        {<host>}
                        {<install>}
                        {<license>}
                        {<list>}
                        {<make>}
                        {<read>}
                        {<regress>}
                        {<release>}
                        {<remove>}
                        {<results>}
                        {<setup>}
                        {<test>}
                        {<update>}
                        {<use>}
                        {<verify>}
                        {<view>}
                        {<write>}
                        {<TEST>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'action='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'action='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'action='> name:action)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow keyword:<Id.ControlFlow_Break break>)
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <authorize>
                  pattern: (pat.Words words:[{<authorize>}])
                  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.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                    {($ Id.VSub_Number 1) <Id.Lit_Colon ':'>}
                                    {<authorization>}
                                    {<user>}
                                    {<name>}
                                    {<argument>}
                                    {<expected>}
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (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 'authorize='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'authorize='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'authorize='> name:authorize)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Continue continue>
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <debug>
                  pattern: (pat.Words words:[{<debug>} {<environment>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'exec='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'exec='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exec='> name:exec)
                          op: assign_op.Equal
                          rhs: {<echo>}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'make='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'make='> name:make)
                          op: assign_op.Equal
                          rhs: {<echo>}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'show='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'show='> name:show)
                          op: assign_op.Equal
                          rhs: {<echo>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <flat>
                  pattern: (pat.Words words:[{<flat>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'flat='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'flat='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'flat='> name:flat)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <force>
                  pattern: (pat.Words words:[{<force>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'force='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'force='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'force='> name:force)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <never>
                  pattern: (pat.Words words:[{<never>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'exec='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'exec='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exec='> name:exec)
                          op: assign_op.Equal
                          rhs: {<echo>}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'noexec='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'noexec='> name:noexec)
                          op: assign_op.Equal
                          rhs: {<-N>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <only>
                  pattern: (pat.Words words:[{<only>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'only='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'only='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'only='> name:only)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <password>
                  pattern: (pat.Words words:[{<password>}])
                  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.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                    {($ Id.VSub_Number 1) <Id.Lit_Colon ':'>}
                                    {<authorization>}
                                    {<password>}
                                    {<argument>}
                                    {<expected>}
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (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 'password='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'password='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'password='> name:password)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Continue continue>
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <quiet>
                  pattern: (pat.Words words:[{<quiet>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'quiet='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'quiet='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'quiet='> name:quiet)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <show>
                  pattern: (pat.Words words:[{<show>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'exec='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'exec='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exec='> name:exec)
                          op: assign_op.Equal
                          rhs: {<echo>}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'noexec='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'noexec='> name:noexec)
                          op: assign_op.Equal
                          rhs: {<-n>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <verbose>
                  pattern: (pat.Words words:[{<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: <DEBUG>
                  pattern: (pat.Words words:[{<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: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'PS4='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'PS4='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PS4='> name:PS4)
                          op: assign_op.Equal
                          rhs: {(SQ <'+$LINENO:$SECONDS+ '>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {<-x>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <help>
                  pattern: 
                    (pat.Words
                      words: [
                        {<help>}
                        {<HELP>}
                        {<html>}
                        {<man>}
                        {<--> <Id.Lit_LBracket '['> <Id.Lit_QMark '?'> <m> <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_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <help>
                          pattern: (pat.Words words:[{<help>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (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: {<0>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_Number 2)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <exec>
                                      more_env: []
                                      words: [{<exec>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '1>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <html>
                          pattern: (pat.Words words:[{<html>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (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: {<0>}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'html='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'html='> name:html)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              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 '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: {<2>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <exec>
                              more_env: []
                              words: [{<exec>}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName html)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bO='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bO='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bO='> name:bO)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'<HTML>\n'> <'<HEAD>\n'> <'<TITLE>'> ($ Id.VSub_Number 2) 
                                        <' package installation instructions</TITLE>\n'> <'<HEAD>\n'> <'<BODY bgcolor=white link=teal vlink=dimgray>'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'eO='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'eO='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eO='> name:eO)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'</BODY>\n'> <'</HTML>'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bH='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bH='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bH='> name:bH)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'<CENTER><H3><FONT face=courier color=red>'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'eH='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'eH='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eH='> name:eH)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'</FONT></H3></CENTER>'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bP='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bP='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bP='> name:bP)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<P>'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bL='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bL='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bL='> name:bL)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<P><TABLE cellpadding=0 cellspacing=2>'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bL2='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bL2='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bL2='> name:bL2)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<P><TABLE border=0 cellpadding=0 cellspacing=2>'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'eL='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'eL='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eL='> name:eL)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'</TABLE><P>'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bT='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bT='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bT='> name:bT)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<TR><TD align=right valign=top><B>'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bD='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bD='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bD='> name:bD)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'</B></TD><TD align=left>'>)}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'eD='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eD='> name:eD)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'</TD></TR>'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bB='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bB='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bB='> name:bB)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<B>'>)}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'eB='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eB='> name:eB)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'</B>'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bI='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bI='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bI='> name:bI)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<I>'>)}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'eI='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eI='> name:eI)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'</I>'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bX='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bX='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bX='> name:bX)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<PRE>'>)}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'eX='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eX='> name:eX)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'</PRE>'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bF='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bF='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bF='> name:bF)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<TT>'>)}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'eF='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eF='> name:eF)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'</TT>'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Camp='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Camp='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Camp='> name:Camp)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'&amp;'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mcurl='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mcurl='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mcurl='> name:Mcurl)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<A href=../../man/man1/curl.html>curl</A>(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mdate='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mdate='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mdate='> name:Mdate)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<A href=../../man/man1/date.html>date</A>(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mfile='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mfile='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mfile='> name:Mfile)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<A href=../../man/man1/file.html>file</A>(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mgunzip='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mgunzip='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'Mgunzip='>
                                      name: Mgunzip
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<A href=../../man/man1/gzip.html>gunzip</A>(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mhurl='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mhurl='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mhurl='> name:Mhurl)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<A href=../../man/man1/hurl.html>hurl</A>(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mlynx='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mlynx='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mlynx='> name:Mlynx)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<A href=../../man/man1/lynx.html>lynx</A>(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mnmake='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mnmake='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mnmake='> name:Mnmake)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<A href=../../man/man1/nmake.html>nmake</A>(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mpackage='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mpackage='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'Mpackage='>
                                      name: Mpackage
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<A href=../../man/man1/package.html>package</A>(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mproto='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mproto='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mproto='> name:Mproto)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<A href=../../man/man1/proto.html>proto</A>(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mratz='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mratz='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mratz='> name:Mratz)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<A href=../../man/man1/ratz.html>ratz</A>'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mtar='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mtar='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mtar='> name:Mtar)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<A href=../../man/man1/tar.html>tar</A>(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mwget='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mwget='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mwget='> name:Mwget)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'<A href=../../man/man1/wget.html>wget</A>(1)'>)}
                                )
                              ]
                              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 'bO='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bO='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bO='> name:bO)
                                  op: assign_op.Equal
                                  rhs: {(SQ )}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'eO='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eO='> name:eO)
                                  op: assign_op.Equal
                                  rhs: {(SQ )}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bH='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bH='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bH='> name:bH)
                                  op: assign_op.Equal
                                  rhs: {(SQ )}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'eH='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eH='> name:eH)
                                  op: assign_op.Equal
                                  rhs: {(SQ <':'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bP='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bP='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bP='> name:bP)
                                  op: assign_op.Equal
                                  rhs: {(SQ )}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bL='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bL='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bL='> name:bL)
                                  op: assign_op.Equal
                                  rhs: {(SQ )}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'eL='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eL='> name:eL)
                                  op: assign_op.Equal
                                  rhs: {(SQ )}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bL2='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bL2='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bL2='> name:bL2)
                                  op: assign_op.Equal
                                  rhs: {(SQ )}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bT='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bT='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bT='> name:bT)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'  '>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bD='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bD='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bD='> name:bD)
                                  op: assign_op.Equal
                                  rhs: {(SQ <' '>)}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'eD='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eD='> name:eD)
                                  op: assign_op.Equal
                                  rhs: {(SQ )}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bB='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bB='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bB='> name:bB)
                                  op: assign_op.Equal
                                  rhs: {(SQ )}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'eB='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eB='> name:eB)
                                  op: assign_op.Equal
                                  rhs: {(SQ )}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bI='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bI='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bI='> name:bI)
                                  op: assign_op.Equal
                                  rhs: {(SQ )}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'eI='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eI='> name:eI)
                                  op: assign_op.Equal
                                  rhs: {(SQ )}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bX='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bX='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bX='> name:bX)
                                  op: assign_op.Equal
                                  rhs: {(SQ )}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'eX='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eX='> name:eX)
                                  op: assign_op.Equal
                                  rhs: {(SQ )}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bF='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bF='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bF='> name:bF)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'"'>)}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'eF='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eF='> name:eF)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'"'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Camp='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Camp='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Camp='> name:Camp)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'&'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mcurl='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mcurl='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mcurl='> name:Mcurl)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'curl(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mdate='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mdate='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mdate='> name:Mdate)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'date(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mfile='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mfile='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mfile='> name:Mfile)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'file(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mgunzip='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mgunzip='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'Mgunzip='>
                                      name: Mgunzip
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'gunzip(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mhurl='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mhurl='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mhurl='> name:Mhurl)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'hurl(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mlynx='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mlynx='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mlynx='> name:Mlynx)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'lynx(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mnmake='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mnmake='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mnmake='> name:Mnmake)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'nmake(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mpackage='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mpackage='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'Mpackage='>
                                      name: Mpackage
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'package(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mproto='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mproto='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mproto='> name:Mproto)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'proto(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mratz='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mratz='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mratz='> name:Mratz)
                                  op: assign_op.Equal
                                  rhs: {(SQ <ratz>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mtar='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mtar='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mtar='> name:Mtar)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'tar(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Mwget='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Mwget='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Mwget='> name:Mwget)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'wget(1)'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 2)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <binary>
                          pattern: (pat.Words words:[{<binary>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ (${ Id.VSub_Name bO) <'\n'> (${ Id.VSub_Name bH) 
                                    <'Binary Package Installation Instructions'> (${ Id.VSub_Name eH) <'\n'> (${ Id.VSub_Name bL) <'\n'> (${ Id.VSub_Name bT) <'(1)'> (${ Id.VSub_Name bD) 
                                    <'Do not install packages as '> (${ Id.VSub_Name bI) <'root/super-user'> (${ Id.VSub_Name eI) <'. Although some components may\n'> 
                                    <'      have setuid executables, few must be owned by '> (${ Id.VSub_Name bI) <root> (${ Id.VSub_Name eI) <'. These are best\n'> 
                                    <
'      changed manually when the security implications are understood.'
                                    > (${ Id.VSub_Name eD) <'\n'> (${ Id.VSub_Name bT) <'(2)'> (${ Id.VSub_Name bD) 
                                    <
'Choose a package root directory and cd to it. This will be a local work\n'
                                    > <'      area for all packages.'> (${ Id.VSub_Name eD) <'\n'> (${ Id.VSub_Name bT) <'(3)'> 
                                    (${ Id.VSub_Name bD) <'These instructions bypass the '> (${ Id.VSub_Name bI) <'click to download'> (${ Id.VSub_Name eI) 
                                    <' package links on the\n'> <'      download site. If you already clicked, or if your system does not have\n'> <'      '> 
                                    (${ Id.VSub_Name Mcurl) <', '> (${ Id.VSub_Name Mhurl) <', '> (${ Id.VSub_Name Mlynx) <' or '> (${ Id.VSub_Name Mwget) 
                                    <' then use the alternate instructions\n'> <'      for (3),(4),(5) in plan '> (${ Id.VSub_Name bB) <B> (${ Id.VSub_Name eB) <' below. Plan '> 
                                    (${ Id.VSub_Name bB) <B> (${ Id.VSub_Name eB) <' installs the '> (${ Id.VSub_Name Mhurl) <'\n'> 
                                    <
'      script which works with ksh and modern bash. The top level URL is:'
                                    > (${ Id.VSub_Name bX) <'\n'> <'\t\tURL=http://www.research.att.com/sw/download'> (${ Id.VSub_Name eX) 
                                    (${ Id.VSub_Name eD) <'\n'> (${ Id.VSub_Name bT) <'(4)'> (${ Id.VSub_Name bD) <'If the '> (${ Id.VSub_Name bB) <'bin/package'> 
                                    (${ Id.VSub_Name eB) <' script does not exist then run:'> (${ Id.VSub_Name bX) <'\n'> <'\t\ttest -d bin || mkdir bin\n'> 
                                    <'\t\turl='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'URL/package\n'> 
                                    <'\t\t(wget -O - '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'url||curl -L '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'url||hurl '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <'url) > bin/package\n'> <'\t\tchmod +x bin/package'> (${ Id.VSub_Name eX) (${ Id.VSub_Name eD) <'\n'> (${ Id.VSub_Name bT) <'(5)'> 
                                    (${ Id.VSub_Name bD) <'Determine the list of package names you want from the download site, then\n'> <'      use the '> 
                                    (${ Id.VSub_Name Mpackage) <' command to do the actual download:'> (${ Id.VSub_Name bX) <'\n'> <'\t\tbin/package authorize '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) (${ Id.VSub_Name bI) <NAME> (${ Id.VSub_Name eI) 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <' password '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') (${ Id.VSub_Name bI) 
                                    <PASSWORD> (${ Id.VSub_Name eI) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\\\'>
                                      ch: '\\'
                                    ) <'\n'> <'\t\t\tsetup binary '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <'URL '> (${ Id.VSub_Name bI) <PACKAGE> (${ Id.VSub_Name eI) <' ...'> (${ Id.VSub_Name eX) <'\n'> 
                                    <'      (Refer to the '> (${ Id.VSub_Name bB) <AUTHORIZATION> (${ Id.VSub_Name eB) <' paragraph on the main download page for\n'> 
                                    <'      '> (${ Id.VSub_Name bI) <NAME> (${ Id.VSub_Name eI) <'/'> (${ Id.VSub_Name bI) <PASSWORD> (${ Id.VSub_Name eI) 
                                    <' details.)  This downloads the closure of the latest\n'> <'      binary package(s); covered and up-to-date packages are not downloaded again unless\n'> 
                                    <'      '> (${ Id.VSub_Name bB) <'package force ...'> (${ Id.VSub_Name eB) 
                                    <' is specified. Package content is verified using '> (${ Id.VSub_Name bB) (${ Id.VSub_Name checksum) (${ Id.VSub_Name eB) <'.\n'> 
                                    <
'      If the package root will contain only one architecture then you can install in '
                                    > (${ Id.VSub_Name bB) <bin> (${ Id.VSub_Name eB) <' and\n'> <'      '> (${ Id.VSub_Name bB) <lib> 
                                    (${ Id.VSub_Name eB) <' instead of '> (${ Id.VSub_Name bB) <'arch/'> (${ Id.VSub_Name eB) (${ Id.VSub_Name bI) <HOSTTYPE> 
                                    (${ Id.VSub_Name eI) (${ Id.VSub_Name bB) <'/bin'> (${ Id.VSub_Name eB) <' and '> (${ Id.VSub_Name bB) <'arch/'> 
                                    (${ Id.VSub_Name eB) (${ Id.VSub_Name bI) <HOSTTYPE> (${ Id.VSub_Name eI) (${ Id.VSub_Name bB) <'/lib'> (${ Id.VSub_Name eB) 
                                    <' by running this\n'> <'      instead:'> (${ Id.VSub_Name bX) <'\n'> <'\t\tbin/package authorize '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) (${ Id.VSub_Name bI) <NAME> (${ Id.VSub_Name eI) 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <' password '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') (${ Id.VSub_Name bI) 
                                    <PASSWORD> (${ Id.VSub_Name eI) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\\\'>
                                      ch: '\\'
                                    ) <'\n'> <'\t\t\tflat setup binary '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <'URL '> (${ Id.VSub_Name bB) <PACKAGE> (${ Id.VSub_Name eB) <' ...'> (${ Id.VSub_Name eX) <'\n'> 
                                    <'      To update the same packages from the same URL run:'> (${ Id.VSub_Name bX) <'\n'> <'\t\tbin/package setup binary'> (${ Id.VSub_Name eX) (${ Id.VSub_Name eD) 
                                    <'\n'> (${ Id.VSub_Name bT) <'(6)'> (${ Id.VSub_Name bD) 
                                    <
'The packaged binaries are position independent, i.e., they do not\n'
                                    > <'      contain hard-coded paths. However, commands with related files, like\n'> <'      '> 
                                    (${ Id.VSub_Name Mfile) <' and '> (${ Id.VSub_Name Mnmake) <', require the path of the bin directory to be\n'> 
                                    <'      exported in '> (${ Id.VSub_Name bB) <PATH> (${ Id.VSub_Name eb) <.> (${ Id.VSub_Name eD) <'\n'> (${ Id.VSub_Name bT) 
                                    <'(7)'> (${ Id.VSub_Name bD) <'You can run the binaries directly from the package root, or you can\n'> 
                                    <'      install them in a public root (requires the '> (${ Id.VSub_Name bI) <AT> (${ Id.VSub_Name Camp) <T> (${ Id.VSub_Name eI) <' '> (${ Id.VSub_Name Mnmake) 
                                    <' command):'> (${ Id.VSub_Name bX) <'\n'> <'\t\tbin/package flat install '> (${ Id.VSub_Name bI) <'DIRECTORY PACKAGE'> 
                                    (${ Id.VSub_Name eI) (${ Id.VSub_Name eX) <'\n'> <'      This will install in '> (${ Id.VSub_Name bI) <DIRECTORY> 
                                    (${ Id.VSub_Name eI) (${ Id.VSub_Name bB) <'/bin'> (${ Id.VSub_Name eB) <' and '> (${ Id.VSub_Name bI) <DIRECTORY> 
                                    (${ Id.VSub_Name eI) (${ Id.VSub_Name bB) <'/lib'> (${ Id.VSub_Name eB) <'. If you want to\n'> <'      preserve the '> 
                                    (${ Id.VSub_Name bB) <'arch/'> (${ Id.VSub_Name eB) (${ Id.VSub_Name bI) <HOSTTYPE> (${ Id.VSub_Name eI) <' hierarchy under '> 
                                    (${ Id.VSub_Name bI) <DIRECTORY> (${ Id.VSub_Name eI) <' then omit the\n'> <'      '> (${ Id.VSub_Name bB) <flat> 
                                    (${ Id.VSub_Name eB) <' argument. If you don\'t have '> (${ Id.VSub_Name Mnmake) <' then the following will do a\n'> 
                                    <'      flat install:'> (${ Id.VSub_Name bX) <'\n'> <'\t\tcd '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'INSTALLROOT\n'> <'\t\tcp -p -r bin lib include '> (${ Id.VSub_Name bI) <DIRECTORY> (${ Id.VSub_Name eI) 
                                    (${ Id.VSub_Name eX) (${ Id.VSub_Name eD) <'\n'> (${ Id.VSub_Name bT) <'(8)'> (${ Id.VSub_Name bD) 
                                    <
'To summarize, after the first time, the download cycle for the latest\n'
                                    > <'      binary release is:'> (${ Id.VSub_Name bX) <'\n'> <'\t\tbin/package setup binary'> 
                                    (${ Id.VSub_Name eX) (${ Id.VSub_Name eD) (${ Id.VSub_Name eL) <'\n'> <'\n'> (${ Id.VSub_Name bH) 
                                    <'Binary Package Installation Instructions -- Plan B'> (${ Id.VSub_Name eH) <'\n'> (${ Id.VSub_Name bL) <'\n'> (${ Id.VSub_Name bT) <'(3)'> (${ Id.VSub_Name bD) 
                                    <'Create the subdirectory '> (${ Id.VSub_Name bB) <'lib/package/tgz'> (${ Id.VSub_Name eB) <' and download all package archives\n'> 
                                    <'      into that directory.'> (${ Id.VSub_Name eD) <'\n'> (${ Id.VSub_Name bT) <'(4)'> (${ Id.VSub_Name bD) <'If the '> 
                                    (${ Id.VSub_Name bB) <'bin/package'> (${ Id.VSub_Name eB) <' script does not exist then manually read the '> 
                                    (${ Id.VSub_Name bB) <INIT> (${ Id.VSub_Name eB) <'\n'> <'      binary package:'> (${ Id.VSub_Name bX) <'\n'> 
                                    <'\t\tgunzip < lib/package/tgz/INIT.'> (${ Id.VSub_Name bI) <YYYY-MM-DD.HOSTTYPE> (${ Id.VSub_Name eI) <'.tgz |\n'> <'\t\t\t'> 
                                    (${ Id.VSub_Name TAR) <' '> (${ Id.VSub_Name TARFLAGS) <'f -'> (${ Id.VSub_Name eX) <'\n'> 
                                    <
'      Note that some browsers automatically unzip downloaded without warning.\n'
                                    > <'      If the gunzip fails try:\n'> <'\t\t'> (${ Id.VSub_Name TAR) <' '> (${ Id.VSub_Name TARFLAGS) 
                                    <'f -'> (${ Id.VSub_Name eX) <' lib/package/tgz/INIT.'> (${ Id.VSub_Name bI) <YYYY-MM-DD.HOSTTYPE> 
                                    (${ Id.VSub_Name eI) <'.tgz\n'> <'      If your system does not have '> (${ Id.VSub_Name Mtar) <' or '> 
                                    (${ Id.VSub_Name Mgunzip) <' then download the '> (${ Id.VSub_Name Mratz) <'\n'> <'      binary package:'> (${ Id.VSub_Name bX) 
                                    <'\n'> <'\t\tmkdir bin\n'> <'\t\tcp lib/package/tgz/ratz.'> (${ Id.VSub_Name bI) <YYYY-MM-DD.HOSTTYPE> 
                                    (${ Id.VSub_Name eI) <'.exe bin/ratz\n'> <'\t\tchmod +x bin/ratz\n'> <'\t\tbin/ratz -lm < lib/package/tgz/INIT.'> 
                                    (${ Id.VSub_Name bI) <'YYYY-MM-DD/HOSTTYPE'> (${ Id.VSub_Name eI) <'.tgz\n'> (${ Id.VSub_Name bT) <'(5)'> (${ Id.VSub_Name bD) 
                                    <'Read all unread package archive(s):'> (${ Id.VSub_Name bX) <'\n'> <'\t\tbin/package read'> (${ Id.VSub_Name eX) <'\n'> 
                                    <
'      Both source and binary packages will be read by this step.'
                                    > (${ Id.VSub_Name eD) (${ Id.VSub_Name eL) (${ Id.VSub_Name eO)
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <intro>
                          pattern: (pat.Words words:[{<intro>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ (${ Id.VSub_Name bO) <'\n'> (${ Id.VSub_Name bH) 
                                    <'Package Hierarchy Details'> (${ Id.VSub_Name eH) <'\n'> (${ Id.VSub_Name bP) <'\n'> <'The package directory hierarchy is rooted at '> 
                                    (${ Id.VSub_Name bB) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <PACKAGEROOT> (${ Id.VSub_Name eB) 
                                    <'. All source and\n'> <'binaries reside under this tree. A two level viewpath is used to separate\n'> 
                                    <
'source and binaries. The top view is architecture specific, the bottom view\n'
                                    > <'is shared source. All building is done in the architecture specific view;\n'> 
                                    <
'no source view files are intentionally changed. This means that many\n'
                                    > <'different binary architectures can be made from a single copy of the source.\n'> 
                                    (${ Id.VSub_Name bP) <'\n'> <'Each package contains one or more components. Component source for the '> (${ Id.VSub_Name bI) 
                                    <FOO> (${ Id.VSub_Name eI) <'\n'> <'command is in '> (${ Id.VSub_Name bB) 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'PACKAGEROOT/src/cmd/'> (${ Id.VSub_Name eB) (${ Id.VSub_Name bI) <FOO> (${ Id.VSub_Name eI) 
                                    <', and source for the '> (${ Id.VSub_Name bI) <BAR> (${ Id.VSub_Name eI) <' library is\n'> <'in '> (${ Id.VSub_Name bB) 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'PACKAGEROOT/src/lib/lib'> (${ Id.VSub_Name eB) (${ Id.VSub_Name bI) <BAR> (${ Id.VSub_Name eI) 
                                    <'. This naming is for convenience only; the\n'> <'underlying makefiles handle inter-component build order. The '> (${ Id.VSub_Name bB) <INIT> 
                                    (${ Id.VSub_Name eB) <' component,\n'> <'which contains generic package support files, is always made first, then the\n'> 
                                    <'components named '> (${ Id.VSub_Name bB) <INIT> (${ Id.VSub_Name eB) 
                                    <'*, then the order determined by the closure of component\n'> <'makefile dependencies.\n'> (${ Id.VSub_Name bP) <'\n'> (${ Id.VSub_Name bB) 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'PACKAGEROOT/lib/package'> (${ Id.VSub_Name eB) 
                                    <' contains package specific files. The package naming\n'> <'convention is '> (${ Id.VSub_Name bI) <GROUP> (${ Id.VSub_Name eI) <'['> (${ Id.VSub_Name bI) <-PART> 
                                    (${ Id.VSub_Name eI) <']; e.g., '> (${ Id.VSub_Name bB) <ast-base> (${ Id.VSub_Name eB) <', '> (${ Id.VSub_Name bB) 
                                    <gnu-fileutils> (${ Id.VSub_Name eB) <'. The *'> (${ Id.VSub_Name bB) <.pkg> (${ Id.VSub_Name eB) <' files\n'> <'are '> 
                                    (${ Id.VSub_Name bB) <ast> (${ Id.VSub_Name eB) <' '> (${ Id.VSub_Name Mnmake) 
                                    <
' makefiles that contain the package name, package components,\n'
                                    > <'references to other packages, and a short package description. *'> (${ Id.VSub_Name bB) <.pkg> 
                                    (${ Id.VSub_Name eB) <' files\n'> <'are used by '> (${ Id.VSub_Name bF) <'package write'> (${ Id.VSub_Name eF) 
                                    <' to generate new source and binary packages.\n'> (${ Id.VSub_Name bP) <'\n'> (${ Id.VSub_Name bB) 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'PACKAGEROOT/lib/package/'> (${ Id.VSub_Name eB) (${ Id.VSub_Name bI) <GROUP> (${ Id.VSub_Name eI) 
                                    (${ Id.VSub_Name bB) <.lic> (${ Id.VSub_Name eB) <' files contain license information that\n'> <'is used by the '> 
                                    (${ Id.VSub_Name bB) <ast> (${ Id.VSub_Name eB) <' '> (${ Id.VSub_Name Mproto) <' and '> (${ Id.VSub_Name Mnmake) 
                                    <' commands to generate source and\n'> <'binary license strings. '> (${ Id.VSub_Name bI) <GROUP> (${ Id.VSub_Name eI) 
                                    <' is determined by the first '> (${ Id.VSub_Name bB) <':PACKAGE:'> (${ Id.VSub_Name eB) <' operator\n'> <'name listed in the component '> 
                                    (${ Id.VSub_Name bB) <nmake> (${ Id.VSub_Name eB) <' makefile. '> (${ Id.VSub_Name bI) <GROUP> (${ Id.VSub_Name eI) 
                                    (${ Id.VSub_Name bB) <.lic> (${ Id.VSub_Name eB) <' files are part of the\n'> 
                                    <'licensing documentation.  Each component may have its own '> (${ Id.VSub_Name bB) <LICENSE> (${ Id.VSub_Name eB) <' file that\n'> <'overrides the '> 
                                    (${ Id.VSub_Name bI) <GROUP> (${ Id.VSub_Name eI) (${ Id.VSub_Name bB) <.lic> (${ Id.VSub_Name eB) 
                                    <' file.  The full text of the licenses are in the\n'> (${ Id.VSub_Name bB) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <'PACKAGEROOT/lib/package/LICENSES'> (${ Id.VSub_Name eB) <' and '> (${ Id.VSub_Name bB) 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'INSTALLROOT/lib/package/LICENSES'> (${ Id.VSub_Name eB) <'\n'> <'directories.\n'> (${ Id.VSub_Name bP) 
                                    <'\n'> <'A few files are generated in '> (${ Id.VSub_Name bB) 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'PACKAGEROOT/lib/package/gen'> (${ Id.VSub_Name eB) <' and\n'> (${ Id.VSub_Name bB) 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'INSTALLROOT/lib/package/gen'> (${ Id.VSub_Name eB) <'. '> (${ Id.VSub_Name bI) <PACKAGE> 
                                    (${ Id.VSub_Name eI) (${ Id.VSub_Name bB) <.ver> (${ Id.VSub_Name eB) <' contains one line consisting of'> 
                                    (${ Id.VSub_Name bX) <'\n'> <'\t'> (${ Id.VSub_Name bI) <'PACKAGE VERSION RELEASE'> (${ Id.VSub_Name eI) <' 1'> 
                                    (${ Id.VSub_Name eX) <'\n'> <'for the most recent instance of '> (${ Id.VSub_Name bI) <PACKAGE> (${ Id.VSub_Name eI) 
                                    <' read into '> (${ Id.VSub_Name bB) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <PACKAGEROOT> 
                                    (${ Id.VSub_Name eB) <', where\n'> (${ Id.VSub_Name bI) <PACKAGE> (${ Id.VSub_Name eI) <' is the package name, '> 
                                    (${ Id.VSub_Name bI) <VERSION> (${ Id.VSub_Name eI) <' is the '> (${ Id.VSub_Name bI) <YYYY-MM-DD> (${ Id.VSub_Name eI) 
                                    <' base version,\n'> <'and '> (${ Id.VSub_Name bI) <RELEASE> (${ Id.VSub_Name eI) <' is '> (${ Id.VSub_Name bI) <VERSION> 
                                    (${ Id.VSub_Name eI) <' for the base release or '> (${ Id.VSub_Name bI) <YYYY-MM-DD> (${ Id.VSub_Name eI) 
                                    <' for delta releases.\n'> (${ Id.VSub_Name bI) <PACKAGE> (${ Id.VSub_Name eI) (${ Id.VSub_Name bB) <.req> (${ Id.VSub_Name eB) 
                                    <' contains *'> (${ Id.VSub_Name bB) <.ver> (${ Id.VSub_Name eB) <' entries for the packages required by\n'> 
                                    (${ Id.VSub_Name bI) <PACKAGE> (${ Id.VSub_Name eI) <', except that the fourth field is 0 instead of 1. All packages\n'> 
                                    <'except '> (${ Id.VSub_Name bB) <INIT> (${ Id.VSub_Name eB) <' and '> (${ Id.VSub_Name Mratz) <' require the '> 
                                    (${ Id.VSub_Name bB) <INIT> (${ Id.VSub_Name eB) <' package. A simple sort of '> (${ Id.VSub_Name bI) <PACKAGE> 
                                    (${ Id.VSub_Name eI) (${ Id.VSub_Name bB) <.pkg> (${ Id.VSub_Name eB) <'\n'> <'and *'> (${ Id.VSub_Name bB) <.ver> 
                                    (${ Id.VSub_Name eB) <' determines if the required package have been read in. Finally,\n'> (${ Id.VSub_Name bI) <PACKAGE> 
                                    (${ Id.VSub_Name eI) (${ Id.VSub_Name bB) <.README> (${ Id.VSub_Name eB) <' contains the '> (${ Id.VSub_Name bB) <README> 
                                    (${ Id.VSub_Name eB) <' text for '> (${ Id.VSub_Name bI) <PACKAGE> (${ Id.VSub_Name eI) <' and all its\n'> 
                                    <'components. Included are all changes added to the component '> (${ Id.VSub_Name bB) <RELEASE> (${ Id.VSub_Name eB) <',\n'> (${ Id.VSub_Name bB) <CHANGES> 
                                    (${ Id.VSub_Name eB) <' or '> (${ Id.VSub_Name bB) <ChangeLog> (${ Id.VSub_Name eB) 
                                    <' files dated since the two most recent base\n'> <'releases. Component '> (${ Id.VSub_Name bB) <RELEASE> (${ Id.VSub_Name eB) 
                                    <' files contain tag lines of the form\n'> <'['> (${ Id.VSub_Name bI) <CC> (${ Id.VSub_Name eI) <']'> (${ Id.VSub_Name bI) <YY-MM-DD> 
                                    (${ Id.VSub_Name eI) <' [ '> (${ Id.VSub_Name bI) <TEXT> (${ Id.VSub_Name eI) <' ] (or '> (${ Id.VSub_Name Mdate) 
                                    <' format dates) followed by README\n'> <'text, in reverse chronological order (newer entries at the top of the\n'> <'file.) '> 
                                    (${ Id.VSub_Name bF) <'package release'> (${ Id.VSub_Name eF) <' generates this information, and\n'> (${ Id.VSub_Name bF) 
                                    <'package contents ...'> (${ Id.VSub_Name eF) <' lists the descriptions and components.\n'> (${ Id.VSub_Name bP) <'\n'> 
                                    (${ Id.VSub_Name bB) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <HOSTYPE> (${ Id.VSub_Name eB) 
                                    <
' names the current binary architecture and is determined by the\n'
                                    > <'output of '> (${ Id.VSub_Name bF) <package> (${ Id.VSub_Name eF) <' (no arguments.) The '> 
                                    (${ Id.VSub_Name bB) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <HOSTTYPE> (${ Id.VSub_Name eB) 
                                    <' naming scheme is used\n'> <'to separate incompatible executable and object formats. All architecture\n'> 
                                    <'specific binaries are placed under '> (${ Id.VSub_Name bB) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <INSTALLROOT> 
                                    (${ Id.VSub_Name eB) <' ('> (${ Id.VSub_Name bB) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <'PACKAGEROOT/arch/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <HOSTTYPE> (${ Id.VSub_Name eB) 
                                    <'.)\n'> <'There are a few places that match against '> (${ Id.VSub_Name bB) 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <HOSTTYPE> (${ Id.VSub_Name eB) <' when making binaries; these\n'> 
                                    <'are limited to makefile compiler workarounds, e.g., if '> (${ Id.VSub_Name bB) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <HOSTTYPE> 
                                    (${ Id.VSub_Name eB) <' matches\n'> <'\'hp.*\' then turn off the optimizer for these objects. All other architecture\n'> 
                                    <'dependent logic is handled either by '> (${ Id.VSub_Name bB) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <'INSTALLROOT/bin/iffe'> (${ Id.VSub_Name eB) <' or by component\n'> <'specific configure scripts. Explicit '> 
                                    (${ Id.VSub_Name bB) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <HOSTYPE> (${ Id.VSub_Name eB) 
                                    <' values matching *,*cc*[,-*,...]\n'> <'optionally set the default '> (${ Id.VSub_Name bB) <CC> (${ Id.VSub_Name eB) <' and '> 
                                    (${ Id.VSub_Name bB) <CCFLAGS> (${ Id.VSub_Name eB) <'. This is handy for build\n'> 
                                    <
'farms that support different compilers on the same architecture.\n'
                                    > (${ Id.VSub_Name bP) <'\n'> <'Each component contains an '> (${ Id.VSub_Name bB) <ast> 
                                    (${ Id.VSub_Name eB) <' '> (${ Id.VSub_Name Mnmake) <' makefile (either '> (${ Id.VSub_Name bB) <Nmakefile> 
                                    (${ Id.VSub_Name eB) <' or '> (${ Id.VSub_Name bB) <Makefile> (${ Id.VSub_Name eB) <')\n'> <'and a '> (${ Id.VSub_Name bI) <MAM> 
                                    (${ Id.VSub_Name eI) <' (make abstract machine) file ('> (${ Id.VSub_Name bB) <Mamfile> (${ Id.VSub_Name eB) 
                                    <'.) A Mamfile contains a portable\n'> <'makefile description that is used by '> (${ Id.VSub_Name bB) 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'INSTALLROOT/bin/mamake'> (${ Id.VSub_Name eB) <' to simulate\n'> (${ Id.VSub_Name bB) <nmake> 
                                    (${ Id.VSub_Name eB) <'. Currently there is no support for old-make/gnu-make makefiles; if\n'> 
                                    <'the binaries are just being built then '> (${ Id.VSub_Name bB) <mamake> (${ Id.VSub_Name eB) <' will suffice; if source or\n'> 
                                    <'makefile modifications are anticipated then '> (${ Id.VSub_Name bB) <nmake> (${ Id.VSub_Name eB) <' (from the '> (${ Id.VSub_Name bB) <ast-open> 
                                    (${ Id.VSub_Name eB) <' or\n'> (${ Id.VSub_Name bB) <ast-base> (${ Id.VSub_Name eB) 
                                    <
' package) should be used. Mamfiles are automatically generated by\n'
                                    > (${ Id.VSub_Name bF) <'package write'> (${ Id.VSub_Name eF) <'.\n'> (${ Id.VSub_Name bP) <'\n'> 
                                    <'Most component C source is prototyped. If '> (${ Id.VSub_Name bB) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <CC> 
                                    (${ Id.VSub_Name eB) <' (default value '> (${ Id.VSub_Name bB) <cc> (${ Id.VSub_Name eB) <') is not a\n'> 
                                    <'prototyping C compiler then '> (${ Id.VSub_Name bF) <'package make'> (${ Id.VSub_Name eF) <' runs '> (${ Id.VSub_Name Mproto) 
                                    <' on portions of the\n'> (${ Id.VSub_Name bB) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <'PACKAGEROOT/src'> (${ Id.VSub_Name eB) <' tree and places the converted output files in the\n'> (${ Id.VSub_Name bB) 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'PACKAGEROOT/proto/src'> (${ Id.VSub_Name eB) 
                                    <' tree. Converted files are then viewpathed over the\n'> <'original source. The '> (${ Id.VSub_Name bB) <ast> (${ Id.VSub_Name eB) <' '> (${ Id.VSub_Name Mproto) 
                                    <' command converts an ANSI C subset to code\n'> <'that is compatible with K&R, ANSI, and C++ dialects.\n'> (${ Id.VSub_Name bP) <'\n'> 
                                    <'All scripts and commands under '> (${ Id.VSub_Name bB) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <PACKAGEROOT> 
                                    (${ Id.VSub_Name eB) <' use '> (${ Id.VSub_Name bB) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <PATH> 
                                    (${ Id.VSub_Name eB) <' relative pathnames;\n'> 
                                    <
'there are no imbedded absolute pathnames. This means that binaries generated\n'
                                    > <'under '> (${ Id.VSub_Name bB) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <PACKAGEROOT> (${ Id.VSub_Name eB) <' may be copied to a different root; users need only change\n'> <'their '> 
                                    (${ Id.VSub_Name bB) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <PATH> (${ Id.VSub_Name eB) 
                                    <
' variable to reference the new instalation root bin directory.\n'
                                    > (${ Id.VSub_Name bF) <'package install'> (${ Id.VSub_Name eF) <' installs binary packages in a new '> 
                                    (${ Id.VSub_Name bB) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <INSTALLROOT> (${ Id.VSub_Name eB) 
                                    <'.\n'> (${ Id.VSub_Name eO)
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <source>
                          pattern: (pat.Words words:[{<source>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ (${ Id.VSub_Name bO) <'\n'> (${ Id.VSub_Name bH) 
                                    <'Source Package Installation Instructions'> (${ Id.VSub_Name eH) <'\n'> (${ Id.VSub_Name bL) <'\n'> (${ Id.VSub_Name bT) <'(1)'> (${ Id.VSub_Name bD) 
                                    <'Do not install packages as '> (${ Id.VSub_Name bI) <'root/super-user'> (${ Id.VSub_Name eI) <'. Although some components may\n'> 
                                    <'      have setuid executables, few must be owned by '> (${ Id.VSub_Name bI) <root> (${ Id.VSub_Name eI) <'. These are best\n'> 
                                    <
'      changed manually when the security implications are understood.'
                                    > (${ Id.VSub_Name eD) <'\n'> (${ Id.VSub_Name bT) <'(2)'> (${ Id.VSub_Name bD) 
                                    <
'Choose a package root directory and cd to it. This will be a local work\n'
                                    > <'      area for all packages.\n'> (${ Id.VSub_Name bT) <'(3)'> (${ Id.VSub_Name bD) 
                                    <'These instructions bypass the '> (${ Id.VSub_Name bI) <'click to download'> (${ Id.VSub_Name eI) <' package links on the\n'> 
                                    <
'      download site. If you already clicked, or if your system does not have\n'
                                    > <'      '> (${ Id.VSub_Name Mcurl) <', '> (${ Id.VSub_Name Mhurl) <', '> (${ Id.VSub_Name Mlynx) <' or '> 
                                    (${ Id.VSub_Name Mwget) <' then use the alternate instructions\n'> <'      for (3),(4),(5) in plan '> (${ Id.VSub_Name bB) <B> 
                                    (${ Id.VSub_Name eB) <' below. Plan '> (${ Id.VSub_Name bB) <B> (${ Id.VSub_Name eB) <' installs the '> (${ Id.VSub_Name Mhurl) 
                                    <'\n'> <'      script which works with ksh and modern bash. The top level URL is:'> (${ Id.VSub_Name bX) 
                                    <'\n'> <'\t\tURL=http://www.research.att.com/sw/download'> (${ Id.VSub_Name eX) (${ Id.VSub_Name eD) <'\n'> 
                                    (${ Id.VSub_Name bT) <'(4)'> (${ Id.VSub_Name bD) <'If the '> (${ Id.VSub_Name bB) <'bin/package'> (${ Id.VSub_Name eB) 
                                    <' script does not exist then run:'> (${ Id.VSub_Name bX) <'\n'> <'\t\ttest -d bin || mkdir bin\n'> <'\t\turl='> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'URL/package\n'> <'\t\t(wget -O - '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'url||curl -L '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'url||hurl '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'url) > bin/package\n'> <'\t\tchmod +x bin/package'> (${ Id.VSub_Name eX) (${ Id.VSub_Name eD) <'\n'> 
                                    (${ Id.VSub_Name bT) <'(5)'> (${ Id.VSub_Name bD) 
                                    <
'Determine the list of package names you want from the download site, then\n'
                                    > <'      use the '> (${ Id.VSub_Name Mpackage) <' command to do the actual download:'> 
                                    (${ Id.VSub_Name bX) <'\n'> <'\t\tbin/package authorize '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) (${ Id.VSub_Name bI) <NAME> (${ Id.VSub_Name eI) 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <' password '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') (${ Id.VSub_Name bI) 
                                    <PASSWORD> (${ Id.VSub_Name eI) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\\\'>
                                      ch: '\\'
                                    ) <'\n'> <'\t\t\tsetup source '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <'URL '> (${ Id.VSub_Name bB) <PACKAGE> (${ Id.VSub_Name eB) <' ...'> (${ Id.VSub_Name eX) <'\n'> 
                                    <'      (Refer to the '> (${ Id.VSub_Name bB) <AUTHORIZATION> (${ Id.VSub_Name eB) <' paragraph on the main download page for\n'> 
                                    <'      '> (${ Id.VSub_Name bI) <NAME> (${ Id.VSub_Name eI) <'/'> (${ Id.VSub_Name bI) <PASSWORD> (${ Id.VSub_Name eI) 
                                    <' details.)  This downloads the closure of the latest\n'> <'      source package(s); covered and up-to-date packages are not downloaded again unless\n'> 
                                    <'      '> (${ Id.VSub_Name bB) <'package force ...'> (${ Id.VSub_Name eB) 
                                    <' is specified. Package content is verified using '> (${ Id.VSub_Name bB) (${ Id.VSub_Name checksum) (${ Id.VSub_Name eB) <'.\n'> 
                                    <
'      If the package root will contain only one architecture then you can install in '
                                    > (${ Id.VSub_Name bB) <bin> (${ Id.VSub_Name eB) <' and\n'> <'      '> (${ Id.VSub_Name bB) <lib> 
                                    (${ Id.VSub_Name eB) <' instead of '> (${ Id.VSub_Name bB) <'arch/'> (${ Id.VSub_Name eB) (${ Id.VSub_Name bI) <HOSTTYPE> 
                                    (${ Id.VSub_Name eI) (${ Id.VSub_Name bB) <'/bin'> (${ Id.VSub_Name eB) <' and '> (${ Id.VSub_Name bB) <'arch/'> 
                                    (${ Id.VSub_Name eB) (${ Id.VSub_Name bI) <HOSTTYPE> (${ Id.VSub_Name eI) (${ Id.VSub_Name bB) <'/lib'> (${ Id.VSub_Name eB) 
                                    <' by running this\n'> <'      instead:'> (${ Id.VSub_Name bX) <'\n'> <'\t\tbin/package authorize '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) (${ Id.VSub_Name bI) <NAME> (${ Id.VSub_Name eI) 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <' password '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') (${ Id.VSub_Name bI) 
                                    <PASSWORD> (${ Id.VSub_Name eI) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\\\'>
                                      ch: '\\'
                                    ) <'\n'> <'\t\t\tflat setup source '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <'URL '> (${ Id.VSub_Name bB) <PACKAGE> (${ Id.VSub_Name eB) <' ...'> (${ Id.VSub_Name eX) <'\n'> 
                                    <'      To update the same packages from the same URL run:'> (${ Id.VSub_Name bX) <'\n'> <'\t\tbin/package setup source'> (${ Id.VSub_Name eX) (${ Id.VSub_Name eD) 
                                    <'\n'> (${ Id.VSub_Name bT) <'(6)'> (${ Id.VSub_Name bD) 
                                    <'Build and install; all generated files are placed under '> (${ Id.VSub_Name bB) <'arch/'> (${ Id.VSub_Name eB) (${ Id.VSub_Name bI) <HOSTTYPE> (${ Id.VSub_Name eI) 
                                    <'\n'> <'      ('> (${ Id.VSub_Name bB) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <INSTALLROOT> (${ Id.VSub_Name eB) <'), where '> (${ Id.VSub_Name bI) <HOSTTYPE> (${ Id.VSub_Name eI) 
                                    <' is the output of '> (${ Id.VSub_Name bB) <'bin/package'> (${ Id.VSub_Name eB) <' (with no\n'> <'      arguments.) '> 
                                    (${ Id.VSub_Name bI) <'name=value'> (${ Id.VSub_Name eI) <' arguments are supported; '> (${ Id.VSub_Name bB) <CC> 
                                    (${ Id.VSub_Name eB) <' and '> (${ Id.VSub_Name bB) <'debug=1'> (${ Id.VSub_Name eB) <' (compile\n'> 
                                    <
'      with -g instead of -O) are likely candidates. The output is written to\n'
                                    > <'      the terminal and captured in '> (${ Id.VSub_Name bB) 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'INSTALLROOT/lib/package/gen/make.out'> (${ Id.VSub_Name eB) <':'> (${ Id.VSub_Name bX) <'\n'> 
                                    <'\t\tbin/package make'> (${ Id.VSub_Name eX) (${ Id.VSub_Name eD) <'\n'> (${ Id.VSub_Name bT) <'(7)'> (${ Id.VSub_Name bD) 
                                    <'List make results and interesting errors:'> (${ Id.VSub_Name bX) <'\n'> <'\t\tbin/package results'> (${ Id.VSub_Name eX) <'\n'> 
                                    <'      Run the regression tests:'> (${ Id.VSub_Name bX) <'\n'> <'\t\tbin/package test'> (${ Id.VSub_Name eX) <'\n'> 
                                    <'      List test results and errors:'> (${ Id.VSub_Name bX) <'\n'> <'\t\tbin/package results test'> (${ Id.VSub_Name eX) (${ Id.VSub_Name eD) 
                                    <'\n'> (${ Id.VSub_Name bT) <'(8)'> (${ Id.VSub_Name bD) 
                                    <
'The generated binaries are position independent, i.e., they do not\n'
                                    > <'      contain hard-coded paths. However, commands with related files, like\n'> <'      '> 
                                    (${ Id.VSub_Name Mfile) <' and '> (${ Id.VSub_Name Mnmake) <', require the path of the bin directory to be\n'> 
                                    <'      exported in '> (${ Id.VSub_Name bB) <PATH> (${ Id.VSub_Name eb) <.> (${ Id.VSub_Name eD) <'\n'> (${ Id.VSub_Name bT) 
                                    <'(9)'> (${ Id.VSub_Name bD) <'You can run the binaries directly from the package root, or you can\n'> 
                                    <
'      install them in a public root after you are satisfied with the make and\n'
                                    > <'      test actions (requires the '> (${ Id.VSub_Name bI) <AT> (${ Id.VSub_Name Camp) <T> 
                                    (${ Id.VSub_Name eI) <' '> (${ Id.VSub_Name Mnmake) <' command):'> (${ Id.VSub_Name bX) <'\n'> 
                                    <'\t\tbin/package flat install '> (${ Id.VSub_Name bI) <'DIRECTORY PACKAGE'> (${ Id.VSub_Name eI) (${ Id.VSub_Name eX) <'\n'> 
                                    <'      This will install in '> (${ Id.VSub_Name bI) <DIRECTORY> (${ Id.VSub_Name eI) (${ Id.VSub_Name bB) <'/bin'> (${ Id.VSub_Name eB) 
                                    <' and '> (${ Id.VSub_Name bI) <DIRECTORY> (${ Id.VSub_Name eI) (${ Id.VSub_Name bB) <'/lib'> (${ Id.VSub_Name eB) 
                                    <'. If you want to\n'> <'      preserve the '> (${ Id.VSub_Name bB) <'arch/'> (${ Id.VSub_Name eB) (${ Id.VSub_Name bI) 
                                    <HOSTTYPE> (${ Id.VSub_Name eI) <' hierarchy under '> (${ Id.VSub_Name bI) <DIRECTORY> (${ Id.VSub_Name eI) 
                                    <' then omit the\n'> <'      '> (${ Id.VSub_Name bB) <flat> (${ Id.VSub_Name eB) <' argument. If you don\'t have '> 
                                    (${ Id.VSub_Name Mnmake) <' then the following will do a\n'> <'      flat install:'> (${ Id.VSub_Name bX) <'\n'> <'\t\tcd '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'INSTALLROOT\n'> <'\t\tcp -p -r bin lib include '> (${ Id.VSub_Name bI) <DIRECTORY> (${ Id.VSub_Name eI) 
                                    (${ Id.VSub_Name eX) (${ Id.VSub_Name eD) <'\n'> (${ Id.VSub_Name bT) <'(10)'> (${ Id.VSub_Name bD) 
                                    <
'To summarize, after the first time the download, build, and test cycle\n'
                                    > <'      for the latest source release is:'> (${ Id.VSub_Name bX) <'\n'> 
                                    <'\t\tbin/package setup source\n'> <'\t\tbin/package make\n'> <'\t\tbin/package test'> (${ Id.VSub_Name eX) (${ Id.VSub_Name eD) 
                                    (${ Id.VSub_Name eL) <'\n'> <'\n'> (${ Id.VSub_Name bH) <'Source Package Installation Instructions -- Plan B'> 
                                    (${ Id.VSub_Name eH) <'\n'> (${ Id.VSub_Name bL) <'\n'> (${ Id.VSub_Name bT) <'(3)'> (${ Id.VSub_Name bD) 
                                    <'Create the subdirectory '> (${ Id.VSub_Name bB) <'lib/package/tgz'> (${ Id.VSub_Name eB) <' and download all package archives\n'> 
                                    <'      into that directory.'> (${ Id.VSub_Name eD) <'\n'> (${ Id.VSub_Name bT) <'(4)'> (${ Id.VSub_Name bD) <'If the '> 
                                    (${ Id.VSub_Name bB) <'bin/package'> (${ Id.VSub_Name eB) <' script does not exist then manually read the '> 
                                    (${ Id.VSub_Name bB) <INIT> (${ Id.VSub_Name eB) <'\n'> <'      source package:'> (${ Id.VSub_Name bX) <'\n'> 
                                    <'\t\tgunzip < lib/package/tgz/INIT.'> (${ Id.VSub_Name bI) <YYYY-MM-DD> (${ Id.VSub_Name eI) <'.tgz | '> (${ Id.VSub_Name TAR) <' '> 
                                    (${ Id.VSub_Name TARFLAGS) <'f -'> (${ Id.VSub_Name eX) <'\n'> 
                                    <
'      Note that some browsers automatically unzip downloaded without warning.\n'
                                    > <'      If the gunzip fails try:\n'> <'\t\t'> (${ Id.VSub_Name TAR) <' '> (${ Id.VSub_Name TARFLAGS) 
                                    <'f -'> (${ Id.VSub_Name eX) <' lib/package/tgz/INIT.'> (${ Id.VSub_Name bI) <YYYY-MM-DD> (${ Id.VSub_Name eI) 
                                    <'.tgz\n'> <'      If your system does not have '> (${ Id.VSub_Name Mtar) <' or '> (${ Id.VSub_Name Mgunzip) 
                                    <' then download the '> (${ Id.VSub_Name Mratz) <'\n'> <'      source package, compile it, and manually read the '> 
                                    (${ Id.VSub_Name bB) <INIT> (${ Id.VSub_Name eB) <'\n'> <'      source package:'> (${ Id.VSub_Name bX) <'\n'> 
                                    <'\t\tmkdir bin\n'> <'\t\tcp lib/package/tgz/ratz.'> (${ Id.VSub_Name bI) <YYYY-MM-DD> (${ Id.VSub_Name eI) 
                                    <'.c lib/package/tgz/ratz.c\n'> <'\t\tcc -o bin/ratz lib/package/tgz/ratz.c\n'> <'\t\tbin/ratz -lm < lib/package/tgz/INIT.'> 
                                    (${ Id.VSub_Name bI) <YYYY-MM-DD> (${ Id.VSub_Name eI) <'.tgz\n'> (${ Id.VSub_Name bT) <'(5)'> (${ Id.VSub_Name bD) 
                                    <'Read all unread package archive(s):'> (${ Id.VSub_Name bX) <'\n'> <'\t\tbin/package read'> (${ Id.VSub_Name eX) <'\n'> 
                                    <
'      Both source and binary packages will be read by this step.'
                                    > (${ Id.VSub_Name eD) (${ Id.VSub_Name eL) (${ Id.VSub_Name eO)
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          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: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ <'Usage: '> ($ Id.VSub_DollarName command) 
                                    <' [ qualifier ... ] [ action ] [ arg ... ] [ n=v ... ]\n'> <'\n'> <'   The '> ($ Id.VSub_DollarName command) 
                                    <
' command controls source and binary packages. It must be run\n'
                                    > <'   within the package root directory tree. See '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) ($ Id.VSub_DollarName command) <' help intro'> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <' for\n'> <'   details. In the following, PACKAGE names either a package or a component\n'> 
                                    <
'   within a package; if omitted, all packages are operated on. The default\n'
                                    > <'   action is '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'host type'> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <'.\n'> <'\n'> <'   qualifier:\n'> 
                                    <
'\tauthorize NAME Remote authorization name or license acceptance phrase.\n'
                                    > <'\tdebug|environment Show environment and actions; do not execute.\n'> <'\tflat    Collapse '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'INSTALLROOT { bin fun include lib } onto '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'PACKAGEROOT.\n'> <'\tforce\tForce the action to override saved state.\n'> 
                                    <'\tnever\tRun make -N; otherwise show other actions.\n'> <'\tonly\tOnly operate on the specified packages.\n'> 
                                    <
'\tpassword PASSWORD Remote authorization or license acceptance password.\n'
                                    > <'\tquiet\tDo not list captured make and test action output.\n'> 
                                    <'\tshow\tRun make -n; otherwise show other actions.\n'> <'\tDEBUG\tTrace the package script actions in detail for debugging.\n'> <'   action:\n'> 
                                    <'\tadmin [ all ] [ db FILE ] [ on PATTERN ] [ action ... ]\n'> <'\t\tApply ACTION ... to the hosts listed in FILE. If FILE is\n'> <'\t\tomitted then '>
                                  ) <admin.db> 
                                  (DQ <' is assumed. The caller must have rcp(1)\n'> 
                                    <
'\t\tand rsh(1) or scp(1) and ssh(1) access to the hosts. Output\n'
                                    > <'\t\tfor the action is saved per-host in ACTION.log/HOST. Logs\n'> <'\t\tcan be viewed by '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <'package admin [on HOST] results [ACTION]'> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <'.\n'> <'\t\tBy default only local PACKAGEROOT hosts are selected from FILE;\n'> <'\t\t'> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <all> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' selects all hosts. '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <'on PATTERN'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' selects only\n'> 
                                    <
'\t\thosts matching the | separated PATTERN. FILE contains four\n'
                                    > <'\t\ttypes of lines. Blank lines and lines beginning with # are\n'> 
                                    <
'\t\tignored. Lines starting with id=value are variable assignments.\n'
                                    > <'\t\tSet admin_ping to local conventions if '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) ($ Id.VSub_DollarName admin_ping) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                    <' fails.\n'> <'\t\tIf a package list is not specified on the command line the\n'> 
                                    <'\t\taction applies to all packages; a variable assigment\n'> <'\t\tpackage=list applies action to the packages in list for\n'> 
                                    <
'\t\tsubsequent hosts in FILE. The remaining line type is a host\n'
                                    > <'\t\tdescription consisting of 6 tab separated fields. The first 3\n'> 
                                    <
'\t\tare mandatory; the remaining 3 are updated by the admin action:\n'
                                    > <'\t\t   hosttype\n'> <'\t\t\t   The host type as reported by package.\n'> <'\t\t   [user@]host\n'> 
                                    <'\t\t\t   The host name and optionally user name for rcp(1)\n'> <'\t\t\t   and rsh(1) access.\n'> <'\t\t   [remote:[[master]:]]PACKAGEROOT\n'> 
                                    <'\t\t\t   The absolute remote package root directory and\n'> <'\t\t\t   optionally the remote prorocol (rsh or ssh) if\n'> 
                                    <'\t\t\t   the directory is on a different server than the\n'> <'\t\t\t   master package root directory. If\n'> <'\t\t\t   lib/package/admin/'> 
                                    ($ Id.VSub_DollarName admin_env) <' exists under\n'> <'\t\t\t   this directory then it is sourced by sh(1)\n'> 
                                    <
'\t\t\t   before ACTION is done. If this field begins with -\n'
                                    > <'\t\t\t   then the host is ignored. If this field contains\n'> 
                                    <'\t\t\t   : then ditto(1) is used to sync the remote src\n'> <'\t\t\t   directory hierarchy to the local one. If [master]:\n'> 
                                    <'\t\t\t   is specified then the sync is deferred to the\n'> <'\t\t\t   master host. If master is omitted (two :) then\n'> 
                                    <
'\t\t\t   the sync is disabled. These directories must exist\n'
                                    > <'\t\t\t   on the remote side: lib/package, src/cmd, src/lib.\n'> 
                                    <'\t\t   date    YYMMDD of the last action.\n'> <'\t\t   date    Elapsed wall time of the last action.\n'> 
                                    <
'\t\t   M T W   The admin action make, test and write action error\n'
                                    > <'\t\t\t   counts. A non-numeric value in any of these fields\n'> 
                                    <'\t\t\t   disables the corresponding action.\n'> <'\t    \t   owner   The owner contact information.\n'> <'\t\t   attributes\n'> 
                                    <
'\t\t           NAME=VALUE attributes. Should at least contain\n'
                                    > <'\t\t\t   cc=compiler-version.\n'> <'\tclean | clobber\n'> 
                                    <
'\t    Delete the arch/HOSTTYPE hierarchy; this deletes all generated\n'
                                    > <'\t    files and directories for HOSTTYPE. The heirarchy can be rebuilt\n'> 
                                    <'\t    by package make.]\n'> <'\tcontents [ package ... ]\n'> <'\t\tList description and components for PACKAGE on the standard\n'> 
                                    <'\t\toutput.\n'> <'\tcopyright [ package ... ]\n'> <'\t\tList the general copyright notice(s) for PACKAGE on the\n'> 
                                    <
'\t\tstandard output. Note that individual components in PACKAGE\n'
                                    > <'\t\tmay contain additional or replacement notices.\n'> <'\texport [ VARIABLE ... ]\n'> 
                                    <
'\t\tList NAME=VALUE for each VARIABLE, one per line. If the\n'
                                    > <'\t\t'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <only> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <' attribute is specified then only the variable\n'> 
                                    <'\t\tvalues are listed. If no variables are specified then\n'> <'\t\t'> ($ Id.VSub_DollarName env) <' are assumed.\n'> <'\thelp [ ACTION ]\n'> 
                                    <
'\t\tDisplay help text on the standard error [ standard output\n'
                                    > <'\t\tfor ACTION ].\n'> <'\thost [ canon cpu name rating type ... ]\n'> 
                                    <
'\t\tList architecture/implementation dependent host information\n'
                                    > <'\t\ton the standard output. type is listed if no attributes are\n'> 
                                    <
'\t\tspecified. Information is listed on a single line in attributes\n'
                                    > <'\t\torder. The attributes are:\n'> <'\t\t   canon   The next argument is a host type name to be\n'> 
                                    <'\t\t\t   converted to package syntax.\n'> <'\t\t   cpu     The number of cpus; 1 if the host is not a\n'> <'\t\t\t   multiprocessor.\n'> 
                                    <'\t\t   name    The host name.\n'> <'\t\t   rating  The cpu rating in pseudo mips; the value is useful\n'> 
                                    <'\t\t\t   useful only in comparisons with rating values of\n'> <'\t\t\t   other hosts. Other than a vax rating fixed at 1,\n'> 
                                    <'\t\t\t   ratings can vary wildly but consistently from\n'> <'\t\t\t   vendor mips ratings. cc(1) may be required to\n'> <'\t\t\t   determine the rating.\n'> 
                                    <'\t           type    The host type, usually of the form\n'> <'\t\t\t   vendor.architecture, with an optional trailing\n'> 
                                    <
'\t\t\t   -version. The main theme is that type names within\n'
                                    > <'\t\t\t   a family of architectures are named in a similar,\n'> 
                                    <
'\t\t\t   predictable style. Os point release information is\n'
                                    > <'\t\t\t   avoided as much as possible, but vendor resistance\n'> 
                                    <
'\t\t\t   to release incompatibilities has for the most part\n'
                                    > <'\t\t\t   been futile.\n'> <'\thtml [ ACTION ]\n'> 
                                    <
'\t\tDisplay html help text on the standard error [ standard output\n'
                                    > <'\t\tfor ACTION ].\n'> <'\tinstall [ ARCHITECTURE ... ] DIR [ PACKAGE ... ]\n'> 
                                    <
'\t\tCopy the package binary hierarchy to DIR. If ARCHITECTURE is\n'
                                    > <'\t\tomitted then all architectures are installed. If the '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <flat> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> 
                                    <
'\t\tattribute is specified then exactly one ARCHITECTURE must be\n'
                                    > <'\t\tspecified; this architecture will be installed in DIR without\n'> <'\t\tthe '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <'arch/HOSTTYPE'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                    <' directory prefixes. Otherwise each\n'> <'\t\tarchitecture will be installed in a separate '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <'arch/HOSTTYPE'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'\n'> 
                                    <
'\t\tsubdirectory of DIR. The ARCHITECTURE - names the current\n'
                                    > <'\t\tarchitecture. DIR must be an existing directory. If PACKAGE\n'> 
                                    <
'\t\tis omitted then all binary packages are installed. This action\n'
                                    > <'\t\trequires nmake.\n'> <'\tlicense [ package ... ]\n'> 
                                    <
'\t\tList the source license(s) for PACKAGE on the standard output.\n'
                                    > <'\t\tNote that individual components in PACKAGE may contain\n'> 
                                    <'\t\tadditional or replacement licenses.\n'> <'\tlist [ PACKAGE ... ]\n'> <'\t\tList the name, version and prerequisites for PACKAGE on the\n'> 
                                    <'\t\tstandard output.\n'> <'\tmake [ PACKAGE ] [ OPTION ... ] [ TARGET ... ]\n'> 
                                    <
'\t\tBuild and install. The default TARGET is install, which\n'
                                    > <'\t\tmakes and installs all packages. If the standard output\n'> 
                                    <'\t\tis a terminal then the output is also captured in\n'> <'\t\t'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <'INSTALLROOT/lib/package/gen/make.out. The build is done\n'> <'\t\tin the '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <'INSTALLROOT directory tree viewpathed on top of\n'> <'\t\tthe '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <'PACKAGEROOT directory tree. If '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <flat> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <' is specified then\n'> <'\t\tthe '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'INSTALLROOT { bin fun include lib } directories are\n'> 
                                    <
'\t\tlinked to the same directories in the package root. Only\n'
                                    > <'\t\tone architecture may be flat. Leaf directory names matching\n'> 
                                    <'\t\tthe |-separated shell pattern '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'MAKESKIP are ignored. The\n'> 
                                    <'\t\tview action is done before making. OPTION operands are\n'> <'\t\tpassed to the underlying make command.\n'> <'\tread [ package ... | archive ... ]\n'> 
                                    <
'\t\tRead the named package archive(s). Must be run from the\n'
                                    > <'\t\tpackage root directory. Archives are searched for in .\n'> 
                                    <
'\t\tand lib/package/tgz. Each package is read only once. The\n'
                                    > <'\t\tfile lib/package/tgz/package[.type].tim tracks the read time.\n'> 
                                    <
'\t\tSee the write action for archive naming conventions. Text\n'
                                    > <'\t\tfile archive member are assumed to be ASCII or UTF-8 encoded.\n'> 
                                    <
'\tregress diff(1) the current and previous package test results.\n'
                                    > <'\trelease [ [CC]YY-MM-DD [ [cc]yy-mm-dd ] ] [ package ]\n'> 
                                    <
'\t\tDisplay recent changes since [CC]YY-MM-DD (up to [cc]yy-mm-dd),\n'
                                    > <'\t\twhere - means lowest (or highest.) If no dates are specified\n'> 
                                    <
'\t\tthen changes for the last 4 months are listed. PACKAGE may\n'
                                    > <'\t\tbe a package or component name.\n'> <'\tremove PACKAGE\n'> 
                                    <'\t\tRemove files installed for PACKAGE.\n'> <'\tresults [ path ] [ old ] [ make | test ]\n'> 
                                    <
'\t\tList results and interesting messages captured by the most\n'
                                    > <'\t\trecent make (default), test or write action. old specifies the\n'> 
                                    <
'\t\tprevious results, if any (current and previous results are\n'
                                    > <'\t\tretained.) '> ($ Id.VSub_DollarName HOME) <'/.pkgresults, if it exists, must contain an\n'> 
                                    <
'\t\tegrep(1) expression of result lines to be ignored. failed lists\n'
                                    > <'\t\tfailures only and path lists the results file path only.\n'> 
                                    <
'\tsetup [ beta ] [ binary ] [ source ] [ ARCHITECTURE ... ] [ URL ] [ PACKAGE ... ]\n'
                                    > <'\t\tThe action initializes the current directory as a package root,\n'> 
                                    <
'\t\truns the update action to download new or out of date packages,\n'
                                    > <'\t\tand runs the read action on those packages. If '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <flat> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' is\n'> 
                                    <'\t\tspecified then the '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <'INSTALLROOT { bin fun include lib }\n'> <'\t\tdirectories are linked to the same directories in the package\n'> 
                                    <
'\t\troot. Only one architecture may be flat. See the update and\n'
                                    > <'\t\tread actions for argument details.\n'> <'\ttest [ PACKAGE ]\n'> 
                                    <
'\t\tRun the regression tests for PACKAGE. If the standard output\n'
                                    > <'\t\tis a terminal then the output is also captured in\n'> <'\t\t'> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'INSTALLROOT/lib/package/gen/test.out. In general a package\n'> 
                                    <
'\t\tmust be made before it can be tested. Components tested with\n'
                                    > <'\t\tthe '> <Id.Lit_BadBackslash '\\'> <bregress> <Id.Lit_BadBackslash '\\'> <'b(1) command require '> 
                                    <Id.Lit_BadBackslash '\\'> <bksh93> <Id.Lit_BadBackslash '\\'> <'b. If only is\n'> 
                                    <
'\t\talso specified then only the listed package components are\n'
                                    > <'\t\ttested, otherwise the closure of the components is tested.\n'> 
                                    <
'\tupdate [ beta ] [ binary ] [ source ] [ ARCHITECTURE ... ] [ URL ] [ PACKAGE ... ]\n'
                                    > <'\t\tDownload the latest release of the selected and required\n'> <'\t\tpackages from URL (e.g.,\n'> 
                                    <
'\t\thttp://www.research.att.com/sw/download) into the directory\n'
                                    > <'\t\t'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <'PACKAGEROOT/lib/package/tgz. beta acesses beta packages;\n'> <'\t\tdownload these at your own risk. If ARCHITECTURE is omitted\n'> 
                                    <
'\t\tthen only architectures already present in the tgz directory\n'
                                    > <'\t\twill be downloaded. If ARCHITECTURE is - then all posted\n'> 
                                    <
'\t\tarchitectures will be downloaded. If URL matches *.url then\n'
                                    > <'\t\tit is interpreted as a file containing shell variable\n'> 
                                    <'\t\tassignments for url, authorize and password. If URL is\n'> <'\t\tomitted then the definitions for url, authorize and password\n'> <'\t\tin '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'PACKAGEROOT/lib/package/tgz/'> ($ Id.VSub_DollarName default_url) <', if it exists,\n'> 
                                    <'\t\tare used. If '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'PACKAGEROOT/lib/package/tgz/'> 
                                    ($ Id.VSub_DollarName default_url) <' does\n'> <'\t\tnot exist then it is initialized with the current url,\n'> 
                                    <
'\t\tauthorize and password values and read permission for the\n'
                                    > <'\t\tcurrent user only. If PACKAGE is omitted then only\n'> 
                                    <'\t\tpackages already present in the tgz directory will be\n'> <'\t\tdownloaded. If PACKAGE is - then all posted packages will be\n'> 
                                    <
'\t\tdownloaded. If source and binary are omitted then both source\n'
                                    > <'\t\tand binary packages will be downloaded. If '> <Id.Lit_BadBackslash '\\'> <bonly> 
                                    <Id.Lit_BadBackslash '\\'> <'b is\n'> <'\t\tspecified then only the named packages are updated; otherwise\n'> 
                                    <
'\t\tthe closure of required packages is updated. This action\n'
                                    > <'\t\trequires wget(1), lynx(1), curl(1) or a shell that supports\n'> 
                                    <'\t\tio to /dev/tcp/HOST/PORT.\n'> <'   \tuse [ uid | PACKAGE | . [ 32 | 64 ] | 32 | 64 | - ] [ COMMAND ... ]\n'> 
                                    <
'   \t\tRun COMMAND or an interactive shell if COMMAND is omitted, with\n'
                                    > <'\t\tthe environment initialized for using the package (can you say\n'> 
                                    <
'\t\tshared library without cussing?) If uid or PACKAGE or . is\n'
                                    > <'\t\tspecified then it is used to determine a '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'PACKAGEROOT,\n'> <'\t\tpossibly different from the current directory. For example, to\n'> 
                                    <'\t\ttry out bozo\'s package: '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'package use bozo'> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <'. In this case the\n'> <'\t\tcommand may be run from any directory. If the file\n'> <'\t\t'> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'INSTALLROOT/lib/package/profile is readable then it is\n'> 
                                    <
'\t\tsourced to initialize the environment. 32 or 64 implies\n'
                                    > <'\t\t'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <
'PACKAGEROOT of . and specifies the target architecture word\n'
                                    > <'\t\tsize (which may be silently ignored.)\n'> <'\tverify [ PACKAGE ]\n'> 
                                    <
'\t\tVerify installed binary files against the checksum files in\n'
                                    > <'\t\t'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <
'INSTALLROOT/lib/package/gen/*.sum. The checksum files contain\n'
                                    > <'\t\tmode, user and group information. If the checksum matches\n'> 
                                    <
'\t\tfor a given file then the mode, user and group are changed\n'
                                    > <'\t\tas necessary to match the checksum entry. A warning is printed\n'> 
                                    <
'\t\ton the standard error for each mismatch. Requires the ast\n'
                                    > <'\t\tpackage cksum(1) command.\n'> <'\tview\n'> 
                                    <
'\t\tInitialize the architecture specific viewpath hierarchy. The\n'
                                    > <'\t\tmake action implicitly calls this action. If '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <flat> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' is specified\n'> 
                                    <'\t\tthen the '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                    <'INSTALLROOT { bin fun include lib } directories are\n'> <'\t\tlinked to the same directories in the package root. Only one\n'> 
                                    <'\t\tarchitecture may be flat.\n'> <'\twrite [closure] [cyg|exp|lcl|pkg|rpm|tgz|tst] [base|delta]\n'> 
                                    <'\t\t\t[binary|runtime|source] PACKAGE\n'> <'\t\tWrite a package archive for PACKAGE. All work is done in the\n'> <'\t\t'> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'PACKAGEROOT/lib/package directory. FORMAT-specific files\n'> 
                                    <
'\t\tare placed in the FORMAT subdirectory. A PACKAGE[.TYPE].tim\n'
                                    > <'\t\tfile in this directory tracksthe write time and prevents a\n'> 
                                    <
'\t\tpackage from being read in the same root it was written. If\n'
                                    > <'\t\tmore than one file is generated for a particular FORMAT then\n'> 
                                    <
'\t\tthose files are placed in the FORMAT/PACKAGE subdirectory.\n'
                                    > <'\t\tFile names in the FORMAT subdirectory will contain the package\n'> 
                                    <
'\t\tname, a YYYY-MM-DD date, and for binary packages, HOSTTYPE.\n'
                                    > <'\t\tIf PACKAGE is omitted then an ordered list of previously\n'> 
                                    <'\t\twritten packages is generated. If '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <only> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\"'>
                                      ch: '"'
                                    ) <' is specified then\n'> <'\t\tonly the named packages will be written; otherwise\n'> 
                                    <
'\t\tprerequisite packages are written first. Package components\n'
                                    > <'\t\tmust be listed in PACKAGE.pkg. FORMAT may be one of:\n'> 
                                    <'\t\t   cyg  generate a cygwin package\n'> <'\t\t   exp  generate an exptools(1) maintainer source archive\n'> 
                                    <
'\t\t        and NPD file in the exp subdirectory, suitable for\n'
                                    > <'\t\t\texpmake(1); support files are placed in the\n'> <'\t\t\texp/PACKAGE subdirectory\n'> 
                                    <'\t\t   lcl\tgenerate a package archive or delta in the lcl\n'> <'\t\t\tsubdirectory, suitable for restoration into the\n'> 
                                    <'\t\t\tprimary source tree (no source licence annotation)\n'> <'\t\t   pkg\tgenerate a pkgmk(1) package, suitable for pkgadd(1)\n'> 
                                    <'\t\t   rpm  generate an rpm(1) package\n'> <'\t\t   tgz  generate a gzip(1) tar(1) package archive; this is\n'> <'\t\t\tthe default\n'> 
                                    <'\t\t   tst  generate tgz FORMAT package archive in the tst\n'> <'\t\t\tsubdirectory; version state files are not updated\n'> 
                                    <
'\t\tThe package type must be one of source, binary or runtime.\n'
                                    > <'\t\tA source package contains the source needed to build the\n'> 
                                    <
'\t\tcorresponding binary package. A binary package includes the\n'
                                    > <'\t\tlibraries and headers needed for compiling and linking\n'> 
                                    <
'\t\tagainst the public interfaces. A runtime package contains\n'
                                    > <'\t\tthe commands and required dynamic libraries.  A package may\n'> 
                                    <'\t\tbe either a base or delta. A base package contains a\n'> <'\t\tcomplete copy of all components.  A delta package contains\n'> 
                                    <
'\t\tonly changes from a previous base package. Delta recipients\n'
                                    > <'\t\tmust have the ast pax(1) command (in the ast-base package.)\n'> 
                                    <
'\t\tIf neither base nor delta is specified, then the current\n'
                                    > <'\t\tbase is overwritten if there are no deltas referring to the\n'> 
                                    <
'\t\tcurrent base. Only the tgz and lcl formats support delta.\n'
                                    > <'\t\tIf base is specified then a new base and two delta archives\n'> 
                                    <
'\t\tare generated: one delta to generate the new base from the\n'
                                    > <'\t\told, and one delta to generate the old base from the new;\n'> 
                                    <
'\t\tthe old base is then removed. If delta is specified then a\n'
                                    > <'\t\tnew delta referring to the current base is written.\n'> 
                                    <'\t\tpackage.pkg may reference other packages. By default a\n'> <'\t\tpointer to those packages is written. The recipient package\n'> 
                                    <
'\t\tread will then check that all required packages have been\n'
                                    > <'\t\tdownloaded. If closure is specified then the components for\n'> 
                                    <'\t\tall package references are included in the generated\n'> <'\t\tpackage.  This may be useful for lcl and versioning.  All\n'> 
                                    <'\t\tformats but lcl annotate each source file (not already\n'> <'\t\tannotated) with a license comment as it is written to the\n'> 
                                    <'\t\tpackage archive using proto(1).\n'> <'   name=value:\n'> <'\tvariable definition: typically CC=cc or CCFLAGS=-g.'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName code)}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [{<Id.Lit_Star '*'> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {<DEFAULT>} {<host>} {<type>} {(DQ ($ Id.VSub_At '@'))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  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: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'Usage: '> ($ Id.VSub_DollarName command) 
                            <' [ options ] [ qualifier ... ] [ action ] [ arg ... ] [ n=v ... ]'>
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<2>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'global='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'global='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'global='> name:global)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName global) <' '> ($ Id.VSub_Number 1))}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.ShFunction
      name_tok: <hostopts>
      name: hostopts
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike '_ifs_='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_ifs_='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_ifs_='> name:_ifs_)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName IFS)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Comma ','>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName HOSTTYPE)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName _ifs_)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (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>} {<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                          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.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <cc> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'CC='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'CC='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              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>} {<1>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_Number 2)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <->
                                          pattern: (pat.Words words:[{<-> <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 assign_CCFLAGS)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'assign_CCFLAGS='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'assign_CCFLAGS='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'assign_CCFLAGS='>
                                                              name: assign_CCFLAGS
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName assign_CCFLAGS) <' '>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'assign_CCFLAGS='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'assign_CCFLAGS='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'assign_CCFLAGS='>
                                                      name: assign_CCFLAGS
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName assign_CCFLAGS) 
                                                        ($ Id.VSub_Number 2)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          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_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: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName _PACKAGE_HOSTTYPE_)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Lit_QMark '?'>
          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'HOSTTYPE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'HOSTTYPE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOSTTYPE='> name:HOSTTYPE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName _PACKAGE_HOSTTYPE_)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KEEP_HOSTTYPE='> name:KEEP_HOSTTYPE)
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              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 'KEEP_HOSTTYPE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KEEP_HOSTTYPE='> name:KEEP_HOSTTYPE)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'KEEP_PACKAGEROOT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'KEEP_PACKAGEROOT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KEEP_PACKAGEROOT='> name:KEEP_PACKAGEROOT)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'KEEP_SHELL='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'KEEP_SHELL='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KEEP_SHELL='> name:KEEP_SHELL)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'USER_VPATH='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'USER_VPATH='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USER_VPATH='> name:USER_VPATH)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'args='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'args='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'args='> name:args)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'assign='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'assign='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'assign='> name:assign)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'assign_CCFLAGS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'assign_CCFLAGS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'assign_CCFLAGS='> name:assign_CCFLAGS)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ForEach
      keyword: <Id.KW_For for>
      iter_names: [i]
      iterable: (for_iter__Args)
      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 i)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <Id.Lit_Equals '='> 
                          <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'args='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'args='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'args='> name:args)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName args) <' '> ($ Id.VSub_DollarName i))}
                        )
                      ]
                      redirects: []
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Continue continue>
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [{<Id.Lit_Star '*'> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [{<echo>} {(SQ <' '>)} {(DQ ($ Id.VSub_DollarName i))}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <sed>
                                    more_env: []
                                    words: [
                                      {<sed>}
                                      {(SQ <'s,^[ \t]*\\([^=]*\\)=\\(.*\\),n=\\1 v='>) 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\\''>
                                          ch: '\''
                                        ) (SQ <'\\2'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') (SQ <','>)
                                      }
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName i)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_VarLike 'AR='>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_VarLike 'AR='> <Id.Lit_Star '*'>}
                        {<Id.Lit_VarLike 'LD='> <Id.Lit_Star '*'>}
                        {<Id.Lit_VarLike 'NM='> <Id.Lit_Star '*'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'assign='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'assign='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'assign='> name:assign)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName assign) <' '> ($ Id.VSub_DollarName n) <'=\''> 
                                ($ Id.VSub_DollarName v) <'\''>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [{<eval>} {($ Id.VSub_DollarName n) <Id.Lit_Equals '='> (SQ <'$'>) <v>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_VarLike 'CC='>
                  pattern: (pat.Words words:[{<Id.Lit_VarLike 'CC='> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [{<eval>} {($ Id.VSub_DollarName n) <Id.Lit_Equals '='> (SQ <'$'>) <v>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_VarLike 'CCFLAGS='>
                  pattern: (pat.Words words:[{<Id.Lit_VarLike 'CCFLAGS='> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [{<eval>} {($ Id.VSub_DollarName n) <Id.Lit_Equals '='> (SQ <'$'>) <v>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'assign_CCFLAGS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'assign_CCFLAGS='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'assign_CCFLAGS='>
                              name: assign_CCFLAGS
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'CCFLAGS='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <CCFLAGS> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\"'>
                                  ch: '"'
                                )
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_VarLike 'HOSTTYPE='>
                  pattern: (pat.Words words:[{<Id.Lit_VarLike 'HOSTTYPE='> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [{<eval>} {($ Id.VSub_DollarName n) <Id.Lit_Equals '='> (SQ <'$'>) <v>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName HOSTTYPE)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
                                      name: KEEP_HOSTTYPE
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_VarLike 'HURL='>
                  pattern: (pat.Words words:[{<Id.Lit_VarLike 'HURL='> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [{<eval>} {($ Id.VSub_DollarName n) <Id.Lit_Equals '='> (SQ <'$'>) <v>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_VarLike 'PACKAGEROOT='>
                  pattern: (pat.Words words:[{<Id.Lit_VarLike 'PACKAGEROOT='> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [{<eval>} {($ Id.VSub_DollarName n) <Id.Lit_Equals '='> (SQ <'$'>) <v>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName PACKAGEROOT)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'KEEP_PACKAGEROOT='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'KEEP_PACKAGEROOT='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'KEEP_PACKAGEROOT='>
                                      name: KEEP_PACKAGEROOT
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_VarLike 'SHELL='>
                  pattern: (pat.Words words:[{<Id.Lit_VarLike 'SHELL='> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [{<eval>} {($ Id.VSub_DollarName n) <Id.Lit_Equals '='> (SQ <'$'>) <v>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName SHELL)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'KEEP_SHELL='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'KEEP_SHELL='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'KEEP_SHELL='>
                                      name: KEEP_SHELL
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_VarLike 'TAR='>
                  pattern: (pat.Words words:[{<Id.Lit_VarLike 'TAR='> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [{<eval>} {($ Id.VSub_DollarName n) <Id.Lit_Equals '='> (SQ <'$'>) <v>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_VarLike 'TARFLAGS='>
                  pattern: (pat.Words words:[{<Id.Lit_VarLike 'TARFLAGS='> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [{<eval>} {($ Id.VSub_DollarName n) <Id.Lit_Equals '='> (SQ <'$'>) <v>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_VarLike 'VPATH='>
                  pattern: (pat.Words words:[{<Id.Lit_VarLike 'VPATH='> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<USER_> ($ Id.VSub_DollarName n) <Id.Lit_Equals '='> (SQ <'$'>) <v>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ <'debug=1'>)}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'makeflags='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'makeflags='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'makeflags='> name:makeflags)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName makeflags) <' --debug-symbols'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ <'strip=1'>)}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'makeflags='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'makeflags='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'makeflags='> name:makeflags)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName makeflags) <' --strip-symbols'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [{<Id.Lit_Star '*'> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'assign='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'assign='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'assign='> name:assign)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName assign) <' '> ($ Id.VSub_DollarName n) <'=\''> 
                                ($ Id.VSub_DollarName v) <'\''>
                              )
                            }
                        )
                      ]
                      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 'args='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'args='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'args='> name:args)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName args) <' '> ($ Id.VSub_DollarName i))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName HOSTTYPE)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <hostopts>
              more_env: []
              words: [{<hostopts>} {($ Id.VSub_DollarName HOSTTYPE)}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName assign_CCFLAGS)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Lit_QMark '?'>
          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'assign='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'assign='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'assign='> name:assign)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName assign) <' '> ($ Id.VSub_DollarName assign_CCFLAGS))}
                )
              ]
              redirects: []
            )
          ]
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName CC)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Left_SingleQuote '\''>
          pattern: (pat.Words words:[{(SQ )} {<cc>}])
          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.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<CC>}]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <admin>
          pattern: (pat.Words words:[{<admin>}])
          middle: <Id.Right_CasePat _>
          action: [
            (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.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [{<set>} {<list>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <all>
                          pattern: (pat.Words words:[{<all>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'admin_all='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'admin_all='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'admin_all='>
                                      name: admin_all
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <db>
                          pattern: (pat.Words words:[{<db>}])
                          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: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                        {($ Id.VSub_DollarName action) <Id.Lit_Colon ':'>}
                                        {($ Id.VSub_Number 1) <Id.Lit_Colon ':'>}
                                        {<db>}
                                        {<file>}
                                        {<argument>}
                                        {<expected>}
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      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 'admin_db='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'admin_db='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'admin_db='>
                                      name: admin_db
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <on>
                          pattern: (pat.Words words:[{<on>}])
                          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: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                        {($ Id.VSub_DollarName action) <Id.Lit_Colon ':'>}
                                        {($ Id.VSub_Number 1) <Id.Lit_Colon ':'>}
                                        {<host>}
                                        {<pattern>}
                                        {<argument>}
                                        {<expected>}
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      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 'admin_on='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'admin_on='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'admin_on='>
                                      name: admin_on
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              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_Break break>)]
                          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 'admin_action='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'admin_action='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_action='> name:admin_action)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'admin_args='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'admin_args='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_args='> name:admin_args)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Star '*')}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter__Args)
              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 i)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <debug>
                          pattern: 
                            (pat.Words
                              words: [
                                {<debug>}
                                {<environment>}
                                {<force>}
                                {<never>}
                                {<only>}
                                {<quiet>}
                                {<show>}
                                {<DEBUG>}
                              ]
                            )
                          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_VarLike 'admin_action='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'admin_action='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'admin_action='>
                                      name: admin_action
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName i)}
                                )
                              ]
                              redirects: []
                            )
                            (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 _>
        )
        (CaseArm
          left: <setup>
          pattern: (pat.Words words:[{<setup>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'PACKAGEROOT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'PACKAGEROOT='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PACKAGEROOT='> name:PACKAGEROOT)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name PWD>
                        var_name: PWD
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VTest_ColonHyphen _>
                            arg_word: 
                              {
                                (CommandSub
                                  left_token: <Id.Left_Backtick '`'>
                                  child: 
                                    (command.Simple
                                      blame_tok: <pwd>
                                      more_env: []
                                      words: [{<pwd>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  right: <Id.Backtick_Right '`'>
                                )
                              }
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<PACKAGEROOT>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'KEEP_PACKAGEROOT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'KEEP_PACKAGEROOT='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'KEEP_PACKAGEROOT='>
                      name: KEEP_PACKAGEROOT
                    )
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <use>
          pattern: (pat.Words words:[{<use>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <.>
                  pattern: (pat.Words words:[{<.>} {<32>} {<64>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <32>
                          pattern: (pat.Words words:[{<32>} {<64>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'bit='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'bit='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bit='> name:bit)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              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
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName HOSTTYPE)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <win32.>
                          pattern: (pat.Words words:[{<win32.> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'sys='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'sys='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sys='> name:sys)
                                  op: assign_op.Equal
                                  rhs: {<uwin>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'wow='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'wow='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'wow='> name:wow)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <uname>
                                            more_env: []
                                            words: [{<uname>} {<-i>}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName bit)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <32>
                                  pattern: (pat.Words words:[{<32>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName HOSTTYPE)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <-64>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'HOSTTYPE='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'HOSTTYPE='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'HOSTTYPE='>
                                                      name: HOSTTYPE
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (BracedVarSub
                                                        left: <Id.Left_DollarBrace '${'>
                                                        token: <Id.VSub_Name HOSTTYPE>
                                                        var_name: HOSTTYPE
                                                        suffix_op: 
                                                          (suffix_op.Unary
                                                            op: <Id.VOp1_Percent '%'>
                                                            arg_word: {<-64>}
                                                          )
                                                        right: <Id.Right_DollarBrace '}'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName wow)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <'/32'>}])
                                          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.Simple
                                              blame_tok: <vpath>
                                              more_env: []
                                              words: [
                                                {<vpath>}
                                                {<'/'>}
                                                {<'/'> ($ Id.VSub_DollarName bit)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <64>
                                  pattern: (pat.Words words:[{<64>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName HOSTTYPE)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <-64>}])
                                          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_VarLike 'HOSTTYPE='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'HOSTTYPE='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'HOSTTYPE='>
                                                      name: HOSTTYPE
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName HOSTTYPE) <-64>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName wow)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <'/32'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Sentence
                                              child: 
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [
                                                    {<echo>}
                                                    {($ Id.VSub_DollarName command) 
                                                      <Id.Lit_Colon ':'>
                                                    }
                                                    {<cannot>}
                                                    {<build>}
                                                    {($ Id.VSub_DollarName bit) <-bit>}
                                                    {<on>}
                                                    {($ Id.VSub_DollarName wow)}
                                                    {($ Id.VSub_DollarName sys)}
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_GreatAnd '>&'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {<2>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Exit exit>
                                              arg_word: {<2>}
                                            )
                                          ]
                                          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: <vpath>
                                              more_env: []
                                              words: [
                                                {<vpath>}
                                                {<'/'>}
                                                {<'/'> ($ Id.VSub_DollarName bit)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName bit)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'PS1='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'PS1='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'PS1='>
                                              name: PS1
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <'('> ($ Id.VSub_DollarName sys) <') '>)}
                                        )
                                      ]
                                      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 'PS1='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'PS1='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'PS1='>
                                              name: PS1
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <'('> ($ Id.VSub_DollarName sys) <-> 
                                                ($ Id.VSub_DollarName bit) <') '>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$exec'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName exec)} {<umask>} {<002>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$exec'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName exec)} {<unset>} {<MAKESKIP>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$exec'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName exec)}
                                {<export>}
                                {<Id.Lit_VarLike 'P='> ($ Id.VSub_DollarName PWD)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$exec'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName exec)}
                                {<export>}
                                {<Id.Lit_VarLike 'A='> ($ Id.VSub_DollarName P) <'/arch/'> 
                                  ($ Id.VSub_DollarName HOSTTYPE)
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$exec'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName exec)}
                                {<export>}
                                {<Id.Lit_VarLike 'CDPATH='> <Id.Lit_Colon ':'> <..> <Id.Lit_Colon ':'> 
                                  ($ Id.VSub_DollarName A) <'/src/cmd'> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName A) <'/src/lib'> <Id.Lit_Colon ':'> 
                                  ($ Id.VSub_DollarName A) <'/src/uwin'> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName P) <'/lib/package'>
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$exec'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName exec)}
                                {<export>}
                                {<Id.Lit_VarLike 'INSTALLROOT='> ($ Id.VSub_DollarName A)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$exec'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName exec)}
                                {<export>}
                                {<Id.Lit_VarLike 'PACKAGEROOT='> ($ Id.VSub_DollarName P)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$exec'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName exec)}
                                {<export>}
                                {<Id.Lit_VarLike 'PATH='> ($ Id.VSub_DollarName A) <'/bin'> 
                                  <Id.Lit_Colon ':'> ($ Id.VSub_DollarName P) <'/bin'> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName PATH)
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$exec'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName exec)}
                                {<export>}
                                {<Id.Lit_VarLike 'PS1='> (DQ ($ Id.VSub_DollarName PS1))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$exec'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName exec)}
                                {<export>}
                                {<Id.Lit_VarLike 'VPATH='> ($ Id.VSub_DollarName A) <Id.Lit_Colon ':'> 
                                  ($ Id.VSub_DollarName P)
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$exec'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName exec)}
                                {<export>}
                                {<Id.Lit_VarLike 'nativepp='> <'/usr/lib'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {(SQ )}
                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName INSTALLROOT))}
                                            {<-a>}
                                            {<-d>}
                                            {($ Id.VSub_DollarName INSTALLROOT) <'/include/ast'>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$exec'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName exec)}
                                        {<export>}
                                        {<Id.Lit_VarLike 'PACKAGE_ast='> 
                                          ($ Id.VSub_DollarName INSTALLROOT)
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [8562 8584]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-d>}
                                            {
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name PWD>
                                                var_name: PWD
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VOp1_Percent '%'>
                                                    arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              ) <'/ast/arch/'> ($ Id.VSub_DollarName HOSTTYPE)
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$exec'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName exec)}
                                        {<export>}
                                        {<Id.Lit_VarLike 'PACKAGE_ast='> 
                                          (BracedVarSub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name PWD>
                                            var_name: PWD
                                            suffix_op: 
                                              (suffix_op.Unary
                                                op: <Id.VOp1_Percent '%'>
                                                arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          ) <'/ast/arch/'> ($ Id.VSub_DollarName HOSTTYPE)
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [8594 8610]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (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.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName show)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ <':'>)}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName exec)}
                                                {<exec>}
                                                {($ Id.VSub_DollarName SHELL)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      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: <Id.VSub_DollarName '$exec'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName exec)}
                                        {<exec>}
                                        {($ Id.VSub_DollarName SHELL)}
                                        {<-c>}
                                        {(DQ ($ Id.VSub_At '@'))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'PACKAGEROOT='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'PACKAGEROOT='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'PACKAGEROOT='>
                              name: PACKAGEROOT
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (BracedVarSub
                                left: <Id.Left_DollarBrace '${'>
                                token: <Id.VSub_Name PWD>
                                var_name: PWD
                                suffix_op: 
                                  (suffix_op.Unary
                                    op: <Id.VTest_ColonHyphen _>
                                    arg_word: 
                                      {
                                        (CommandSub
                                          left_token: <Id.Left_Backtick '`'>
                                          child: 
                                            (command.Simple
                                              blame_tok: <pwd>
                                              more_env: []
                                              words: [{<pwd>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          right: <Id.Backtick_Right '`'>
                                        )
                                      }
                                  )
                                right: <Id.Right_DollarBrace '}'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$show'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName show)} {<export>} {<PACKAGEROOT>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShFunction
      name_tok: <packageroot>
      name: packageroot
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <test>
              more_env: []
              words: [
                {<test>}
                {<-d>}
                {($ Id.VSub_Number 1) <'/lib/'> ($ Id.VSub_DollarName command)}
                {<-o>}
                {<-x>}
                {($ Id.VSub_Number 1) <'/bin/'> ($ Id.VSub_DollarName command)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <executable>
      name: executable
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ <'!'>)}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<Id.KW_Bang '!'>}
                            {<-x>}
                            {(DQ ($ Id.VSub_Number 2))}
                            {<-a>}
                            {<Id.KW_Bang '!'>}
                            {<-x>}
                            {(DQ ($ Id.VSub_Number 2) <.exe>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<-x>}
                            {(DQ ($ Id.VSub_Number 1))}
                            {<-o>}
                            {<-x>}
                            {(DQ ($ Id.VSub_Number 1) <.exe>)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <shellmagic>
      name: shellmagic
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName SHELLMAGIC)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <->
                  pattern: (pat.Words words:[{<->}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-f>} {<'/emx/bin/sh.exe'>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'SHELLMAGIC='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'SHELLMAGIC='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'SHELLMAGIC='>
                                      name: SHELLMAGIC
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'#!/emx/bin/sh.exe'>) ($ Id.VSub_DollarName nl)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [8879 8888]
                        )
                        (IfArm
                          keyword: <Id.KW_Elif elif>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-f>} {<'/bin/env.exe'>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'SHELLMAGIC='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'SHELLMAGIC='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'SHELLMAGIC='>
                                      name: SHELLMAGIC
                                    )
                                  op: assign_op.Equal
                                  rhs: {(SQ <'#!/bin/env sh'>) ($ Id.VSub_DollarName nl)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [8897 8906]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'SHELLMAGIC='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'SHELLMAGIC='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'SHELLMAGIC='>
                                  name: SHELLMAGIC
                                )
                              op: assign_op.Equal
                              rhs: (rhs_word__Empty)
                            )
                          ]
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <onpath>
      name: onpath
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike '_onpath_b='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_onpath_b='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_onpath_b='> name:_onpath_b)
                  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 _onpath_b)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <'/'>
                  pattern: (pat.Words words:[{<'/'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <executable>
                                  more_env: []
                                  words: [{<executable>} {($ Id.VSub_DollarName _onpath_b)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_onpath_='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_onpath_='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_onpath_='>
                                      name: _onpath_
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName _onpath_b)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [8960 8967]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {(SQ <':'>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName PATH)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName ifs)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [_onpath_d]
              iterable: (for_iter__Args)
              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 _onpath_d)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_onpath_d='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_onpath_d='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_onpath_d='>
                                      name: _onpath_d
                                    )
                                  op: assign_op.Equal
                                  rhs: {<.>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          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.Simple
                                  blame_tok: <executable>
                                  more_env: []
                                  words: [
                                    {<executable>}
                                    {
                                      (DQ ($ Id.VSub_DollarName _onpath_d) <'/'> 
                                        ($ Id.VSub_DollarName _onpath_b)
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_onpath_='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_onpath_='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_onpath_='>
                                      name: _onpath_
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName _onpath_d) <'/'> 
                                      ($ Id.VSub_DollarName _onpath_b)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [9040 9051]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <nonmake>
      name: nonmake
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike '_nonmake_version='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_nonmake_version='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike '_nonmake_version='>
                      name: _nonmake_version
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.AndOr
                            children: [
                              (command.Subshell
                                left: <Id.Op_LParen _>
                                child: 
                                  (command.Simple
                                    blame_tok: <Id.VSub_Number '$1'>
                                    more_env: []
                                    words: [
                                      {($ Id.VSub_Number 1)}
                                      {<-n>}
                                      {<-f>}
                                      {<->}
                                      {
                                        (SQ 
                                          <
'print $(MAKEVERSION:@/.*AT&T.* //:/-//G:@/.* .*/19960101/)'
                                          >
                                        )
                                      }
                                      {<.>}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Right_Subshell _>
                                redirects: [
                                  (Redir
                                    op: <Id.Redir_Less '<'>
                                    loc: (redir_loc.Fd fd:0)
                                    arg: {<'/dev/null'>}
                                  )
                                  (Redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                              )
                              (command.Simple
                                blame_tok: <echo>
                                more_env: []
                                words: [{<echo>} {<19840919>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_DPipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {($ Id.VSub_DollarName _nonmake_version)} {<-lt>} {<20001031>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})]
                  spids: [9127 9138]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <hostinfo>
      name: hostinfo
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName DEBUG)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <1>
                  pattern: (pat.Words words:[{<1>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {<-x>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'map='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'map='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'map='> name:map)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'something='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'something='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'something='> name:something)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'path='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'path='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'path='> name:path)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName PATH)}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName ccs)}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'PATH='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'PATH='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName PATH) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName i)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName use)}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [j]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName org)}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'PATH='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'PATH='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName PATH) <Id.Lit_Colon ':'> 
                                      ($ Id.VSub_DollarName i) <'/'> ($ Id.VSub_DollarName j) <'/bin'>
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'PATH='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'PATH='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName PATH) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName i) 
                              <'/bin'>
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName SED)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'SED='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'SED='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SED='> name:SED)
                          op: assign_op.Equal
                          rhs: {<sed>}
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$SED'>
                          more_env: []
                          words: [{($ Id.VSub_DollarName SED)} {<1d>}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Less '<'>
                              loc: (redir_loc.Fd fd:0)
                              arg: {<'/dev/null'>}
                            )
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                            (Redir
                              op: <Id.Redir_GreatAnd '2>&'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<1>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.ForEach
                          keyword: <Id.KW_For for>
                          iter_names: [dir]
                          iterable: (for_iter.Words words:[{<'/bin'>} {<'/usr/bin'>}])
                          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.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-x>}
                                                {($ Id.VSub_DollarName dir) <'/'> 
                                                  ($ Id.VSub_DollarName SED)
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'SED='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'SED='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'SED='>
                                                  name: SED
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName dir) <'/'> 
                                                  ($ Id.VSub_DollarName SED)
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Break break>
                                        )
                                      ]
                                      spids: [9313 9324]
                                    )
                                  ]
                                  else_action: []
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                              ]
                              right: <Id.KW_Done done>
                            )
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'TR='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'TR='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TR='> name:TR)
                          op: assign_op.Equal
                          rhs: {<tr>}
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$TR'>
                          more_env: []
                          words: [{($ Id.VSub_DollarName TR)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Less '<'>
                              loc: (redir_loc.Fd fd:0)
                              arg: {<'/dev/null'>}
                            )
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                            (Redir
                              op: <Id.Redir_GreatAnd '2>&'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<1>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.ForEach
                          keyword: <Id.KW_For for>
                          iter_names: [dir]
                          iterable: (for_iter.Words words:[{<'/bin'>} {<'/usr/bin'>}])
                          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.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-x>}
                                                {($ Id.VSub_DollarName dir) <'/'> 
                                                  ($ Id.VSub_DollarName TR)
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'TR='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'TR='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'TR='>
                                                  name: TR
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName dir) <'/'> 
                                                  ($ Id.VSub_DollarName TR)
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Break break>
                                        )
                                      ]
                                      spids: [9374 9385]
                                    )
                                  ]
                                  else_action: []
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                              ]
                              right: <Id.KW_Done done>
                            )
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName PACKAGE_PATH)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: 
                        (for_iter.Words
                          words: [
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName PACKAGE_PATH)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                        more_env: []
                                        words: [{($ Id.VSub_DollarName SED)} {(SQ <'s,:, ,g'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'PATH='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'PATH='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName PATH) <Id.Lit_Colon ':'> 
                                      ($ Id.VSub_DollarName i) <'/bin'>
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'canon='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'canon='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'canon='> name:canon)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cc='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cc='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cc='> name:cc)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName CC)}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [info]
              iterable: (for_iter__Args)
              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 canon)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <->
                          pattern: (pat.Words words:[{<->}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'canon='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'canon='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'canon='> name:canon)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName info)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<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 info)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'>}
                                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <cC> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <cC> <Id.Lit_RBracket ']'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'cc='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'cc='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cc='> name:cc)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName info)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <canon>
                                  pattern: (pat.Words words:[{<canon>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'canon='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'canon='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'canon='>
                                              name: canon
                                            )
                                          op: assign_op.Equal
                                          rhs: {<->}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'something='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'something='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'something='>
                                              name: something
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <cpu>
                                  pattern: (pat.Words words:[{<cpu>} {<name>} {<rating>} {<type>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'something='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'something='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'something='>
                                              name: something
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      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: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                            ($ Id.VSub_DollarName action) <': '> ($ Id.VSub_DollarName info) <': unknown attribute'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName canon)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <->
                  pattern: (pat.Words words:[{<->}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName action) 
                            <': canon: host type name expected'>
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      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.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName something)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {(DQ ($ Id.VSub_At '@'))} {<type>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName DEBUG)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <exec>
                      more_env: []
                      words: [{<exec>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '9>&'>
                          loc: (redir_loc.Fd fd:9)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <exec>
                      more_env: []
                      words: [{<exec>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '2>'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_hostinfo_='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_hostinfo_='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_hostinfo_='> name:_hostinfo_)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [info]
              iterable: (for_iter__Args)
              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 info)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <cpu>
                          pattern: (pat.Words words:[{<cpu>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName NPROC)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> <123456789> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '_hostinfo_='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '_hostinfo_='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '_hostinfo_='>
                                              name: _hostinfo_
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName _hostinfo_) <' '> 
                                                ($ Id.VSub_DollarName NPROC)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cpu='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cpu='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cpu='> name:cpu)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <grep>
                                            more_env: []
                                            words: [
                                              {<grep>}
                                              {<-ic>}
                                              {(SQ <'^processor[ \t][ \t]*:[ \t]*[0123456789]'>)}
                                              {<'/proc/cpuinfo'>}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName cpu)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> <123456789> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '_hostinfo_='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '_hostinfo_='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '_hostinfo_='>
                                              name: _hostinfo_
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName _hostinfo_) <' '> 
                                                ($ Id.VSub_DollarName cpu)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cpu='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cpu='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cpu='> name:cpu)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [
                                {<set>}
                                {<hinv>}
                                {(SQ <'^Processor [0123456789]'>)}
                                {<psrinfo>}
                                {(SQ <on-line>)}
                                {
                                  (SQ 
                                    <
'cat /reg/LOCAL_MACHINE/Hardware/Description/System/CentralProcessor'
                                    >
                                  )
                                }
                                {(SQ <.>)}
                                {
                                  (SQ 
                                    <
'cat /proc/registry/HKEY_LOCAL_MACHINE/Hardware/Description/System/CentralProcessor'
                                    >
                                  )
                                }
                                {(SQ <.>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (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 'i='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'i='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_Number '$1'>
                                                        more_env: []
                                                        words: [{($ Id.VSub_Number 1)}]
                                                        redirects: [
                                                          (Redir
                                                            op: <Id.Redir_Great '2>'>
                                                            loc: (redir_loc.Fd fd:2)
                                                            arg: {<'/dev/null'>}
                                                          )
                                                        ]
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <grep>
                                                        more_env: []
                                                        words: [
                                                          {<grep>}
                                                          {<-c>}
                                                          {(DQ ($ Id.VSub_Number 2))}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName i)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> <123456789> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'cpu='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'cpu='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'cpu='>
                                                      name: cpu
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName i)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <shift>
                                          more_env: []
                                          words: [{<shift>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName cpu)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <0>
                                  pattern: (pat.Words words:[{<0>} {<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <set>
                                      more_env: []
                                      words: [{<set>} {<'/bin/mpstat'>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (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.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <executable>
                                                          more_env: []
                                                          words: [{<executable>} {($ Id.VSub_Number 1)}]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: 
                                                                          <Id.VSub_Number '$1'>
                                                                        more_env: []
                                                                        words: [{($ Id.VSub_Number 1)}]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: <grep>
                                                                        more_env: []
                                                                        words: [
                                                                          {<grep>}
                                                                          {<-ic>}
                                                                          {(SQ <'^cpu '>)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <1>
                                                          pattern: (pat.Words words:[{<1>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'cpu='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'cpu='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'cpu='>
                                                                      name: cpu
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Pipeline
                                                                            children: [
                                                                              (command.Simple
                                                                                blame_tok: 
                                                                                  <Id.VSub_Number 
'$1'
                                                                                  >
                                                                                more_env: []
                                                                                words: [
                                                                                  {
                                                                                    ($ 
Id.VSub_Number 1
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                              (command.Simple
                                                                                blame_tok: <grep>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<grep>}
                                                                                  {<-ic>}
                                                                                  {
                                                                                    (SQ 
                                                                                      <
'^ *[0123456789][0123456789]* '
                                                                                      >
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                            ]
                                                                            ops: [<Id.Op_Pipe _>]
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ControlFlow
                                                              keyword: <Id.ControlFlow_Break break>
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [9965 9972]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName cpu)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <0>
                                  pattern: (pat.Words words:[{<0>} {<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <set>
                                      more_env: []
                                      words: [
                                        {<set>}
                                        {<'/usr/kvm/mpstat'>}
                                        {(SQ <'cpu[0123456789]'>)}
                                        {<'/usr/etc/cpustatus'>}
                                        {(SQ <enable>)}
                                        {<'/usr/alliant/showsched'>}
                                        {(SQ <CE>)}
                                        {(SQ <'ls /config/hw/system/cpu'>)}
                                        {(SQ <cpu>)}
                                        {<prtconf>}
                                        {(SQ <cpu-unit>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (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 'i='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'i='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'i='>
                                                      name: i
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: <Id.VSub_Number '$1'>
                                                                more_env: []
                                                                words: [{($ Id.VSub_Number 1)}]
                                                                redirects: [
                                                                  (Redir
                                                                    op: <Id.Redir_Great '2>'>
                                                                    loc: (redir_loc.Fd fd:2)
                                                                    arg: {<'/dev/null'>}
                                                                  )
                                                                ]
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: <Id.VSub_DollarName '$TR'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName TR)}
                                                                  {(SQ <' \t'>)}
                                                                  {(SQ <'\n'> <'\n'>)}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: <grep>
                                                                more_env: []
                                                                words: [
                                                                  {<grep>}
                                                                  {<-c>}
                                                                  {(DQ <'^'> ($ Id.VSub_Number 2))}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName i)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_LBracket '['>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_LBracket '['> <123456789> 
                                                          <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'cpu='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'cpu='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'cpu='>
                                                              name: cpu
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName i)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.Simple
                                                  blame_tok: <shift>
                                                  more_env: []
                                                  words: [{<shift>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName cpu)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <0>
                                  pattern: (pat.Words words:[{<0>} {<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <set>
                                      more_env: []
                                      words: [
                                        {<set>}
                                        {<hinv>}
                                        {(SQ <'/^[0123456789][0123456789]* .* Processors*$/'>)}
                                        {(SQ <'/[ \t].*//'>)}
                                        {<'/usr/bin/hostinfo'>}
                                        {
                                          (SQ 
                                            <
'/^[0123456789][0123456789]* .* physically available\\.*$/'
                                            >
                                          )
                                        }
                                        {(SQ <'/[ \t].*//'>)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (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 'i='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'i='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'i='>
                                                      name: i
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: <Id.VSub_Number '$1'>
                                                                more_env: []
                                                                words: [{($ Id.VSub_Number 1)}]
                                                                redirects: [
                                                                  (Redir
                                                                    op: <Id.Redir_Great '2>'>
                                                                    loc: (redir_loc.Fd fd:2)
                                                                    arg: {<'/dev/null'>}
                                                                  )
                                                                ]
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: 
                                                                  <Id.VSub_DollarName '$SED'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName SED)}
                                                                  {<-e>}
                                                                  {(DQ (${ Id.VSub_Number 2) <'!d'>)}
                                                                  {<-e>}
                                                                  {(DQ <s> (${ Id.VSub_Number 3))}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName i)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_LBracket '['>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_LBracket '['> <123456789> 
                                                          <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'cpu='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'cpu='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'cpu='>
                                                              name: cpu
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName i)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.Simple
                                                  blame_tok: <shift>
                                                  more_env: []
                                                  words: [{<shift>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.Simple
                                                  blame_tok: <shift>
                                                  more_env: []
                                                  words: [{<shift>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName cpu)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <0>
                                  pattern: (pat.Words words:[{<0>} {<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'cpu='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'cpu='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'cpu='>
                                              name: cpu
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Subshell
                                                    left: <Id.Op_LParen _>
                                                    child: 
                                                      (command.CommandList
                                                        children: [
                                                          (command.Simple
                                                            blame_tok: <cd>
                                                            more_env: []
                                                            words: [
                                                              {<cd>}
                                                              {
                                                                (BracedVarSub
                                                                  left: <Id.Left_DollarBrace '${'>
                                                                  token: <Id.VSub_Name TMPDIR>
                                                                  var_name: TMPDIR
                                                                  suffix_op: 
                                                                    (suffix_op.Unary
                                                                      op: <Id.VTest_ColonHyphen _>
                                                                      arg_word: 
                                                                        {<Id.Lit_Slash '/'> <tmp>}
                                                                    )
                                                                  right: <Id.Right_DollarBrace '}'>
                                                                )
                                                              }
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                          (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: {<hi> ($ Id.VSub_Dollar '$')}
                                                              )
                                                            ]
                                                            redirects: []
                                                          )
                                                          (command.Simple
                                                            blame_tok: <trap>
                                                            more_env: []
                                                            words: [
                                                              {<trap>}
                                                              {(SQ <'rm -f $tmp.*'>)}
                                                              {<0>}
                                                              {<1>}
                                                              {<2>}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                          (command.Simple
                                                            blame_tok: <cat>
                                                            more_env: []
                                                            words: [{<cat>}]
                                                            redirects: [
                                                              (Redir
                                                                op: <Id.Redir_Great '>'>
                                                                loc: (redir_loc.Fd fd:1)
                                                                arg: {($ Id.VSub_DollarName tmp) <.c>}
                                                              )
                                                              (Redir
                                                                op: <Id.Redir_DLess '<<'>
                                                                loc: (redir_loc.Fd fd:0)
                                                                arg: 
                                                                  (redir_param.HereDoc
                                                                    here_begin: {<Id.KW_Bang '!'>}
                                                                    here_end_tok: 
                                                                      <Id.Undefined_Tok ''>
                                                                    stdin_parts: [
                                                                      <'#include <stdio.h>\n'>
                                                                      <'#include <pthread.h>\n'>
                                                                      <'int main()\n'>
                                                                      <'{\n'>
                                                                      <'\tprintf('>
                                                                      <Id.Right_DoubleQuote '"'>
                                                                      <'%d'>
                                                                      <Id.Lit_BadBackslash '\\'>
                                                                      <n>
                                                                      <Id.Right_DoubleQuote '"'>
                                                                      <
', pthread_num_processors_np());\n'
                                                                      >
                                                                      <'\treturn 0;\n'>
                                                                      <'}\n'>
                                                                    ]
                                                                  )
                                                              )
                                                            ]
                                                            do_fork: T
                                                          )
                                                          (command.ForEach
                                                            keyword: <Id.KW_For for>
                                                            iter_names: [o]
                                                            iterable: 
                                                              (for_iter.Words
                                                                words: [{<-lpthread>} {(SQ )}]
                                                              )
                                                            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.AndOr
                                                                                children: [
                                                                                  (command.Simple
                                                                                    blame_tok: 
                                                                                      <
Id.VSub_DollarName '$CC'
                                                                                      >
                                                                                    more_env: []
                                                                                    words: [
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName CC
                                                                                        )
                                                                                      }
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName o
                                                                                        )
                                                                                      }
                                                                                      {<-O>}
                                                                                      {<-o>}
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName tmp
                                                                                        ) <.exe>
                                                                                      }
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName tmp
                                                                                        ) <.c>
                                                                                      }
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName o
                                                                                        )
                                                                                      }
                                                                                    ]
                                                                                    redirects: [
                                                                                      (Redir
                                                                                        op: 
                                                                                          <
Id.Redir_Great '>'
                                                                                          >
                                                                                        loc: 
                                                                                          (redir_loc.Fd
                                                                                            fd: 1
                                                                                          )
                                                                                        arg: 
                                                                                          {
                                                                                            <
'/dev/null'
                                                                                            >
                                                                                          }
                                                                                      )
                                                                                      (Redir
                                                                                        op: 
                                                                                          <
Id.Redir_GreatAnd '2>&'
                                                                                          >
                                                                                        loc: 
                                                                                          (redir_loc.Fd
                                                                                            fd: 2
                                                                                          )
                                                                                        arg: {<1>}
                                                                                      )
                                                                                    ]
                                                                                    do_fork: T
                                                                                  )
                                                                                  (command.Simple
                                                                                    blame_tok: <gcc>
                                                                                    more_env: []
                                                                                    words: [
                                                                                      {<gcc>}
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName o
                                                                                        )
                                                                                      }
                                                                                      {<-O>}
                                                                                      {<-o>}
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName tmp
                                                                                        ) <.exe>
                                                                                      }
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName tmp
                                                                                        ) <.c>
                                                                                      }
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName o
                                                                                        )
                                                                                      }
                                                                                    ]
                                                                                    redirects: [
                                                                                      (Redir
                                                                                        op: 
                                                                                          <
Id.Redir_Great '>'
                                                                                          >
                                                                                        loc: 
                                                                                          (redir_loc.Fd
                                                                                            fd: 1
                                                                                          )
                                                                                        arg: 
                                                                                          {
                                                                                            <
'/dev/null'
                                                                                            >
                                                                                          }
                                                                                      )
                                                                                      (Redir
                                                                                        op: 
                                                                                          <
Id.Redir_GreatAnd '2>&'
                                                                                          >
                                                                                        loc: 
                                                                                          (redir_loc.Fd
                                                                                            fd: 2
                                                                                          )
                                                                                        arg: {<1>}
                                                                                      )
                                                                                    ]
                                                                                    do_fork: T
                                                                                  )
                                                                                ]
                                                                                ops: [<Id.Op_DPipe _>]
                                                                              )
                                                                            ]
                                                                          )
                                                                        then_kw: <Id.KW_Then then>
                                                                        action: [
                                                                          (command.Simple
                                                                            blame_tok: <'./'>
                                                                            more_env: []
                                                                            words: [
                                                                              {<'./'> 
                                                                                ($ 
Id.VSub_DollarName tmp
                                                                                ) <.exe>
                                                                              }
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                          (command.ControlFlow
                                                                            keyword: 
                                                                              <Id.ControlFlow_Break 
break
                                                                              >
                                                                          )
                                                                        ]
                                                                        spids: [10473 10523]
                                                                      )
                                                                    ]
                                                                    else_action: []
                                                                    fi_kw: <Id.KW_Fi fi>
                                                                    redirects: []
                                                                  )
                                                                ]
                                                                right: <Id.KW_Done done>
                                                              )
                                                            redirects: []
                                                          )
                                                        ]
                                                      )
                                                    right: <Id.Right_Subshell _>
                                                    redirects: []
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName cpu)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> <0123456789> 
                                                  <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_VarLike 'cpu='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'cpu='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'cpu='>
                                                      name: cpu
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_hostinfo_='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_hostinfo_='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_hostinfo_='>
                                      name: _hostinfo_
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName _hostinfo_) <' '> 
                                        ($ Id.VSub_DollarName cpu)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <name>
                          pattern: (pat.Words words:[{<name>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_name_='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_name_='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_name_='> name:_name_)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.AndOr
                                            children: [
                                              (command.Simple
                                                blame_tok: <hostname>
                                                more_env: []
                                                words: [{<hostname>}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <uname>
                                                more_env: []
                                                words: [{<uname>} {<-n>}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <cat>
                                                more_env: []
                                                words: [{<cat>} {<'/etc/whoami'>}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {<local>}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_DPipe _> <Id.Op_DPipe _> <Id.Op_DPipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_hostinfo_='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_hostinfo_='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_hostinfo_='>
                                      name: _hostinfo_
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName _hostinfo_) <' '> 
                                        ($ Id.VSub_DollarName _name_)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <rating>
                          pattern: (pat.Words words:[{<rating>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [rating]
                              iterable: 
                                (for_iter.Words
                                  words: [
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <grep>
                                                more_env: []
                                                words: [
                                                  {<grep>}
                                                  {<-i>}
                                                  {<Id.Lit_Other '^'> <bogomips>}
                                                  {<'/proc/cpuinfo'>}
                                                ]
                                                redirects: [
                                                  (Redir
                                                    op: <Id.Redir_Great '2>'>
                                                    loc: (redir_loc.Fd fd:2)
                                                    arg: {<'/dev/null'>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {<-e>}
                                                  {(SQ <'s,.*:[ \t]*,,'>)}
                                                  {<-e>}
                                                  {(SQ <'s,\\(...*\\)\\..*,\\1,'>)}
                                                  {<-e>}
                                                  {(SQ <'s,\\(\\..\\).*,\\1,'>)}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  ]
                                )
                              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 rating)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> <0123456789> 
                                                  <Id.Lit_RBracket ']'> <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: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName rating)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> <0123456789> <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.Simple
                                      blame_tok: <cd>
                                      more_env: []
                                      words: [
                                        {<cd>}
                                        {
                                          (BracedVarSub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name TMPDIR>
                                            var_name: TMPDIR
                                            suffix_op: 
                                              (suffix_op.Unary
                                                op: <Id.VTest_ColonHyphen _>
                                                arg_word: {<Id.Lit_Slash '/'> <tmp>}
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (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: {<hi> ($ Id.VSub_Dollar '$')}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <trap>
                                      more_env: []
                                      words: [{<trap>} {(SQ <'rm -f $tmp.*'>)} {<0>} {<1>} {<2>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <cat>
                                      more_env: []
                                      words: [{<cat>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName tmp) <.c>}
                                        )
                                        (Redir
                                          op: <Id.Redir_DLess '<<'>
                                          loc: (redir_loc.Fd fd:0)
                                          arg: 
                                            (redir_param.HereDoc
                                              here_begin: {<Id.KW_Bang '!'>}
                                              here_end_tok: <Id.Undefined_Tok ''>
                                              stdin_parts: [
                                                <'#include <stdio.h>\n'>
                                                <'#include <sys/types.h>\n'>
                                                <'#if TD || TZ\n'>
                                                <'#include <sys/time.h>\n'>
                                                <'#else\n'>
                                                <'extern time_t\ttime();\n'>
                                                <'#endif\n'>
                                                <'int main()\n'>
                                                <'{\n'>
                                                <'\tregister unsigned long\ti;\n'>
                                                <'\tregister unsigned long\tj;\n'>
                                                <'\tregister unsigned long\tk;\n'>
                                                <'\tunsigned long\t\tl;\n'>
                                                <'\tunsigned long\t\tm;\n'>
                                                <'\tunsigned long\t\tt;\n'>
                                                <'\tint\t\t\tx;\n'>
                                                <'#if TD || TZ\n'>
                                                <'\tstruct timeval\t\tb;\n'>
                                                <'\tstruct timeval\t\te;\n'>
                                                <'#if TZ\n'>
                                                <'\tstruct timezone\t\tz;\n'>
                                                <'#endif\n'>
                                                <'#endif\n'>
                                                <'\tl = 500;\n'>
                                                <'\tm = 890;\n'>
                                                <'\tx = 0;\n'>
                                                <'\tfor (;;)\n'>
                                                <'\t{\n'>
                                                <'#if TD || TZ\n'>
                                                <'#if TZ\n'>
                                                <'\t\tgettimeofday(&b, &z);\n'>
                                                <'#else\n'>
                                                <'\t\tgettimeofday(&b);\n'>
                                                <'#endif\n'>
                                                <'#else\n'>
                                                <'\t\tt = (unsigned long)time((time_t*)0);\n'>
                                                <'#endif\n'>
                                                <'\t\tk = 0;\n'>
                                                <'\t\tfor (i = 0; i < l; i++)\n'>
                                                <'\t\t\tfor (j = 0; j < 50000; j++)\n'>
                                                <'\t\t\t\tk += j;\n'>
                                                <'#if TD || TZ\n'>
                                                <'#if TZ\n'>
                                                <'\t\tgettimeofday(&e, &z);\n'>
                                                <'#else\n'>
                                                <'\t\tgettimeofday(&e);\n'>
                                                <'#endif\n'>
                                                <
'\t\tt = (e.tv_sec - b.tv_sec) * 1000 + (e.tv_usec - b.tv_usec) / 1000;\n'
                                                >
                                                <'\t\tif (!x++ && t < 1000)\n'>
                                                <'\t\t{\n'>
                                                <'\t\t\tt = 10000 / t;\n'>
                                                <'\t\t\tl = (l * t) / 10;\n'>
                                                <'\t\t\tcontinue;\n'>
                                                <'\t\t}\n'>
                                                <'#else\n'>
                                                <
'\t\tt = ((unsigned long)time((time_t*)0) - t) * 1000;\n'
                                                >
                                                <'\t\tif (!x++ && t < 20000)\n'>
                                                <'\t\t{\n'>
                                                <'\t\t\tt = 200000l / t;\n'>
                                                <'\t\t\tl = (l * t) / 10;\n'>
                                                <'\t\t\tcontinue;\n'>
                                                <'\t\t}\n'>
                                                <'#endif\n'>
                                                <'#if PR\n'>
                                                <'\t\tprintf('>
                                                <Id.Right_DoubleQuote '"'>
                                                <'[ k=%lu l=%lu m=%lu t=%lu ] '>
                                                <Id.Right_DoubleQuote '"'>
                                                <', k, l, m, t);\n'>
                                                <'#endif\n'>
                                                <'\t\tif (t == 0)\n'>
                                                <'\t\t\tt = 1;\n'>
                                                <'\t\tbreak;\n'>
                                                <'\t}\n'>
                                                <'\tprintf('>
                                                <Id.Right_DoubleQuote '"'>
                                                <'%lu'>
                                                <Id.Lit_BadBackslash '\\'>
                                                <n>
                                                <Id.Right_DoubleQuote '"'>
                                                <', ((l * m) / 10) / t);\n'>
                                                <'\treturn k == 0;\n'>
                                                <'}\n'>
                                              ]
                                            )
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'rating='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'rating='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'rating='>
                                              name: rating
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [o]
                                      iterable: (for_iter.Words words:[{<-DTZ>} {<-DTD>} {(SQ )}])
                                      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.AndOr
                                                          children: [
                                                            (command.Simple
                                                              blame_tok: <Id.VSub_DollarName '$CC'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName CC)}
                                                                {($ Id.VSub_DollarName o)}
                                                                {<-O>}
                                                                {<-o>}
                                                                {($ Id.VSub_DollarName tmp) <.exe>}
                                                                {($ Id.VSub_DollarName tmp) <.c>}
                                                              ]
                                                              redirects: [
                                                                (Redir
                                                                  op: <Id.Redir_Great '>'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: {<'/dev/null'>}
                                                                )
                                                                (Redir
                                                                  op: <Id.Redir_GreatAnd '2>&'>
                                                                  loc: (redir_loc.Fd fd:2)
                                                                  arg: {<1>}
                                                                )
                                                              ]
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <gcc>
                                                              more_env: []
                                                              words: [
                                                                {<gcc>}
                                                                {($ Id.VSub_DollarName o)}
                                                                {<-O>}
                                                                {<-o>}
                                                                {($ Id.VSub_DollarName tmp) <.exe>}
                                                                {($ Id.VSub_DollarName tmp) <.c>}
                                                              ]
                                                              redirects: [
                                                                (Redir
                                                                  op: <Id.Redir_Great '>'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: {<'/dev/null'>}
                                                                )
                                                                (Redir
                                                                  op: <Id.Redir_GreatAnd '2>&'>
                                                                  loc: (redir_loc.Fd fd:2)
                                                                  arg: {<1>}
                                                                )
                                                              ]
                                                              do_fork: T
                                                            )
                                                          ]
                                                          ops: [<Id.Op_DPipe _>]
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'rating='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'rating='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'rating='>
                                                              name: rating
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Simple
                                                                    blame_tok: <'./'>
                                                                    more_env: []
                                                                    words: [
                                                                      {<'./'> 
                                                                        ($ Id.VSub_DollarName tmp) <.exe>
                                                                      }
                                                                    ]
                                                                    redirects: []
                                                                    do_fork: T
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  spids: [10880 10926]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName rating)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> <0123456789> 
                                                  <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_VarLike 'rating='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'rating='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rating='>
                                                      name: rating
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_hostinfo_='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_hostinfo_='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_hostinfo_='>
                                      name: _hostinfo_
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName _hostinfo_) <' '> 
                                        ($ Id.VSub_DollarName rating)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <type>
                          pattern: (pat.Words words:[{<type>} {<canon>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: 
                                    {($ Id.VSub_DollarName CROSS) <Id.Lit_Colon ':'> 
                                      ($ Id.VSub_DollarName canon)
                                    }
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <0>
                                  pattern: (pat.Words words:[{<0> <Id.Lit_Colon ':'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName cc)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <cc>
                                          pattern: (pat.Words words:[{<cc>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {($ Id.VSub_DollarName KEEP_HOSTTYPE) 
                                                      <Id.Lit_Colon ':'> ($ Id.VSub_DollarName HOSTTYPE)
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <0>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<0> <Id.Lit_Colon ':'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<-d>}
                                                                    {
                                                                      (BracedVarSub
                                                                        left: 
                                                                          <Id.Left_DollarBrace '${'>
                                                                        token: 
                                                                          <Id.VSub_Name PACKAGEROOT>
                                                                        var_name: PACKAGEROOT
                                                                        suffix_op: 
                                                                          (suffix_op.Unary
                                                                            op: 
                                                                              <Id.VTest_ColonHyphen 
_
                                                                              >
                                                                            arg_word: {<.>}
                                                                          )
                                                                        right: 
                                                                          <Id.Right_DollarBrace '}'>
                                                                      ) <'/arch/'> ($ Id.VSub_DollarName HOSTTYPE)
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'KEEP_HOSTTYPE='
                                                                        >
                                                                      name: KEEP_HOSTTYPE
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<1>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [11036 11051]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {($ Id.VSub_DollarName KEEP_HOSTTYPE)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <1>
                                          pattern: (pat.Words words:[{<1>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike '_hostinfo_='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike '_hostinfo_='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike '_hostinfo_='>
                                                      name: _hostinfo_
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName _hostinfo_) <' '> 
                                                        ($ Id.VSub_DollarName HOSTTYPE)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName cc)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <'/'>
                                  pattern: (pat.Words words:[{<'/'> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'a='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'a='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <Id.VSub_DollarName '$cc'>
                                                    more_env: []
                                                    words: [
                                                      {($ Id.VSub_DollarName cc)}
                                                      {<-dumpmachine>}
                                                      {($ Id.VSub_DollarName CCFLAGS)}
                                                    ]
                                                    redirects: [
                                                      (Redir
                                                        op: <Id.Redir_Great '2>'>
                                                        loc: (redir_loc.Fd fd:2)
                                                        arg: {<'/dev/null'>}
                                                      )
                                                    ]
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName a)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName CCFLAGS)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'a='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'a='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'a='>
                                                              name: a
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Simple
                                                                    blame_tok: 
                                                                      <Id.VSub_DollarName '$cc'>
                                                                    more_env: []
                                                                    words: [
                                                                      {($ Id.VSub_DollarName cc)}
                                                                      {<-dumpmachine>}
                                                                    ]
                                                                    redirects: [
                                                                      (Redir
                                                                        op: <Id.Redir_Great '2>'>
                                                                        loc: (redir_loc.Fd fd:2)
                                                                        arg: {<'/dev/null'>}
                                                                      )
                                                                    ]
                                                                    do_fork: T
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName a)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {(SQ )}
                                                {<Id.Lit_Star '*'> (SQ <' '>) <Id.Lit_Star '*'>}
                                                {<Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'> 
                                                  <Id.Lit_Colon ':'> <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_Star '*'> <-> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike '_hostinfo_='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike '_hostinfo_='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike '_hostinfo_='>
                                                      name: _hostinfo_
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName _hostinfo_) <' '> 
                                                        ($ Id.VSub_DollarName a)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-> 
                                                  <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 canon)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'canon='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'canon='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'canon='>
                                                              name: canon
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName a)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              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 '_hostinfo_='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike '_hostinfo_='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike '_hostinfo_='>
                                                      name: _hostinfo_
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName _hostinfo_) <' '> 
                                                        ($ Id.VSub_DollarName a)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'IFS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [
                                {<set>}
                                {<'/'> ($ Id.VSub_DollarName IFS) ($ Id.VSub_DollarName PATH)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'IFS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName ifs)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'f='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'f='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                                  op: assign_op.Equal
                                  rhs: {<'../lib/hostinfo/typemap'>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [i]
                              iterable: (for_iter__Args)
                              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 i)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_DoubleQuote '"'>
                                          pattern: (pat.Words words:[{(DQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'i='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'i='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'i='>
                                                      name: i
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<.>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName canon)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName cc)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <'/'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<'/'> <Id.Lit_Star '*'>} {<cc>}]
                                                    )
                                                  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.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Simple
                                                                  blame_tok: <executable>
                                                                  more_env: []
                                                                  words: [
                                                                    {<executable>}
                                                                    {($ Id.VSub_DollarName i) <'/'> 
                                                                      ($ Id.VSub_DollarName cc)
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'a='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'a='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'a='>
                                                                      name: a
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Simple
                                                                            blame_tok: 
                                                                              <Id.VSub_DollarName 
'$i'
                                                                              >
                                                                            more_env: []
                                                                            words: [
                                                                              {
                                                                                ($ 
Id.VSub_DollarName i
                                                                                ) <'/'> ($ Id.VSub_DollarName cc)
                                                                              }
                                                                              {<-dumpmachine>}
                                                                              {
                                                                                ($ 
Id.VSub_DollarName CCFLAGS
                                                                                )
                                                                              }
                                                                            ]
                                                                            redirects: [
                                                                              (Redir
                                                                                op: 
                                                                                  <Id.Redir_Great 
'2>'
                                                                                  >
                                                                                loc: 
                                                                                  (redir_loc.Fd
                                                                                    fd: 2
                                                                                  )
                                                                                arg: {<'/dev/null'>}
                                                                              )
                                                                            ]
                                                                            do_fork: T
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName a)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Left_SingleQuote '\''>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [{(SQ )}]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
CCFLAGS
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <Id.Lit_QMark '?'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_QMark '?'> 
                                                                                  <Id.Lit_Star '*'>
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 'a='>
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'a='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'a='
                                                                                        >
                                                                                      name: a
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (CommandSub
                                                                                        left_token: 
                                                                                          <
Id.Left_Backtick '`'
                                                                                          >
                                                                                        child: 
                                                                                          (command.Simple
                                                                                            blame_tok: 
                                                                                              <
Id.VSub_DollarName '$cc'
                                                                                              >
                                                                                            more_env: []
                                                                                            words: [
                                                                                              {
                                                                                                ($ 
Id.VSub_DollarName cc
                                                                                                )
                                                                                              }
                                                                                              {
                                                                                                <
-dumpmachine
                                                                                                >
                                                                                              }
                                                                                            ]
                                                                                            redirects: [
                                                                                              (Redir
                                                                                                op: 
                                                                                                  <
Id.Redir_Great '2>'
                                                                                                  >
                                                                                                loc: 
                                                                                                  (redir_loc.Fd
                                                                                                    fd: 
2
                                                                                                  )
                                                                                                arg: 
                                                                                                  {
                                                                                                    <
'/dev/null'
                                                                                                    >
                                                                                                  }
                                                                                              )
                                                                                            ]
                                                                                            do_fork: 
T
                                                                                          )
                                                                                        right: 
                                                                                          <
Id.Backtick_Right '`'
                                                                                          >
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: {($ Id.VSub_DollarName a)}
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Left_SingleQuote '\''>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {(SQ )}
                                                                        {<Id.Lit_Star '*'> (SQ <' '>) 
                                                                          <Id.Lit_Star '*'>
                                                                        }
                                                                        {<Id.Lit_Star '*'> <'/'> 
                                                                          <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <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_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'canon='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'canon='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'canon='
                                                                                >
                                                                              name: canon
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName a)
                                                                            }
                                                                        )
                                                                      ]
                                                                      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 
'_hostinfo_='
                                                                        >
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'_hostinfo_='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'_hostinfo_='
                                                                                >
                                                                              name: _hostinfo_
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName _hostinfo_
                                                                                ) <' '> ($ Id.VSub_DollarName a)
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.ControlFlow
                                                                      keyword: 
                                                                        <Id.ControlFlow_Continue 
continue
                                                                        >
                                                                      arg_word: {<2>}
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [11360 11369]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          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.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-f>}
                                                    {
                                                      (DQ ($ Id.VSub_DollarName i) <'/'> 
                                                        ($ Id.VSub_DollarName f)
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'map='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'map='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'map='>
                                                      name: map
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ 
                                                        (CommandSub
                                                          left_token: <Id.Left_Backtick '`'>
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <grep>
                                                              more_env: []
                                                              words: [
                                                                {<grep>}
                                                                {<-v>}
                                                                {(SQ <'^#'>)}
                                                                {($ Id.VSub_DollarName i) <'/'> 
                                                                  ($ Id.VSub_DollarName f)
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          right: <Id.Backtick_Right '`'>
                                                        ) <' '> ($ Id.VSub_DollarName map)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [11510 11523]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{<-> (${ Id.VSub_Name canon) <->})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <-->
                                  pattern: 
                                    (pat.Words
                                      words: [{<-->} {<Id.Lit_Star '*'> <-powerpc-> <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'h='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'h='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'h='> name:h)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.AndOr
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <hostname>
                                                        more_env: []
                                                        words: [{<hostname>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <uname>
                                                        more_env: []
                                                        words: [{<uname>} {<-n>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <cat>
                                                        more_env: []
                                                        words: [{<cat>} {<'/etc/whoami'>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName h)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'h='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'h='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'h='>
                                                      name: h
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<local>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'a='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'a='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.AndOr
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <arch>
                                                        more_env: []
                                                        words: [{<arch>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <uname>
                                                        more_env: []
                                                        words: [{<uname>} {<-m>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <att>
                                                        more_env: []
                                                        words: [{<att>} {<uname>} {<-m>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <uname>
                                                        more_env: []
                                                        words: [{<uname>} {<-s>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <att>
                                                        more_env: []
                                                        words: [{<att>} {<uname>} {<-s>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [
                                                      <Id.Op_DPipe _>
                                                      <Id.Op_DPipe _>
                                                      <Id.Op_DPipe _>
                                                      <Id.Op_DPipe _>
                                                    ]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName a)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <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.ShAssignment
                                              left: <Id.Lit_VarLike 'a='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'a='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'a='>
                                                      name: a
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: <echo>
                                                                more_env: []
                                                                words: [
                                                                  {<echo>}
                                                                  {($ Id.VSub_DollarName a)}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: 
                                                                  <Id.VSub_DollarName '$SED'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName SED)}
                                                                  {(DQ <'s/[ \t]/-/g'>)}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName a)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'a='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'a='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'a='>
                                                      name: a
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<unknown>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'm='> name:m)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.AndOr
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <mach>
                                                        more_env: []
                                                        words: [{<mach>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <machine>
                                                        more_env: []
                                                        words: [{<machine>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <uname>
                                                        more_env: []
                                                        words: [{<uname>} {<-p>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <att>
                                                        more_env: []
                                                        words: [{<att>} {<uname>} {<-p>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [
                                                      <Id.Op_DPipe _>
                                                      <Id.Op_DPipe _>
                                                      <Id.Op_DPipe _>
                                                    ]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName m)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <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.ShAssignment
                                              left: <Id.Lit_VarLike 'm='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'm='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'm='>
                                                      name: m
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: <echo>
                                                                more_env: []
                                                                words: [
                                                                  {<echo>}
                                                                  {($ Id.VSub_DollarName m)}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: 
                                                                  <Id.VSub_DollarName '$SED'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName SED)}
                                                                  {(DQ <'s/[ \t]/-/g'>)}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName m)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'm='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'm='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'm='>
                                                      name: m
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<unknown>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'x='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'x='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.AndOr
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <uname>
                                                        more_env: []
                                                        words: [{<uname>} {<-a>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <att>
                                                        more_env: []
                                                        words: [{<att>} {<uname>} {<-a>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_DPipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'x='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'x='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'x='>
                                                      name: x
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ <'unknown '> ($ Id.VSub_DollarName host) 
                                                        <' unknown unknown unknown unknown unknown'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <set>
                                      more_env: []
                                      words: [
                                        {<set>}
                                        {(DQ )}
                                        {($ Id.VSub_DollarName h)}
                                        {($ Id.VSub_DollarName a)}
                                        {($ Id.VSub_DollarName m)}
                                        {($ Id.VSub_DollarName x)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'expected='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'expected='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'expected='>
                                              name: expected
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number 1)}
                                        )
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'host='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'host='>
                                              name: host
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number 2)}
                                        )
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'arch='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'arch='>
                                              name: arch
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number 3)}
                                        )
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mach='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'mach='>
                                              name: mach
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number 4)}
                                        )
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'os='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'os='> name:os)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number 5)}
                                        )
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'sys='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'sys='>
                                              name: sys
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number 6)}
                                        )
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'rel='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'rel='>
                                              name: rel
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number 7)}
                                        )
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'ver='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'ver='>
                                              name: ver
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number 8)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<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 canon)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'IFS='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'IFS='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'IFS='>
                                                      name: IFS
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<->}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <set>
                                              more_env: []
                                              words: [{<set>} {(DQ )} {($ Id.VSub_DollarName canon)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'IFS='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'IFS='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'IFS='>
                                                      name: IFS
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName ifs)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (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: <2>
                                                  pattern: (pat.Words words:[{<2>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'host='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'host='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'host='>
                                                              name: host
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'mach='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'mach='>
                                                              name: mach
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'arch='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'arch='>
                                                              name: arch
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_Number 1)}
                                                        )
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'os='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'os='>
                                                              name: os
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_Number 2)}
                                                        )
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'sys='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'sys='>
                                                              name: sys
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'rel='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'rel='>
                                                              name: rel
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      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 'host='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'host='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'host='>
                                                              name: host
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'mach='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'mach='>
                                                              name: mach
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_Number 2)}
                                                        )
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'arch='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'arch='>
                                                              name: arch
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_Number 1)}
                                                        )
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'os='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'os='>
                                                              name: os
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_Number 3)}
                                                        )
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'sys='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'sys='>
                                                              name: sys
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'rel='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'rel='>
                                                              name: rel
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName os)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_LBracket '['>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_LBracket '['> 
                                                          <abcdefghijklmnopqrstuvwxyz> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {
                                                          (CommandSub
                                                            left_token: <Id.Left_Backtick '`'>
                                                            child: 
                                                              (command.Pipeline
                                                                children: [
                                                                  (command.Simple
                                                                    blame_tok: <echo>
                                                                    more_env: []
                                                                    words: [
                                                                      {<echo>}
                                                                      {($ Id.VSub_DollarName os)}
                                                                    ]
                                                                    redirects: []
                                                                    do_fork: T
                                                                  )
                                                                  (command.Simple
                                                                    blame_tok: 
                                                                      <Id.VSub_DollarName '$SED'>
                                                                    more_env: []
                                                                    words: [
                                                                      {($ Id.VSub_DollarName SED)}
                                                                      {<-e>}
                                                                      {
                                                                        (SQ 
                                                                          <
's/^\\([^0123456789.]*\\)\\.*\\(.*\\)/os=\\1 rel=\\2/'
                                                                          >
                                                                        )
                                                                      }
                                                                    ]
                                                                    redirects: []
                                                                    do_fork: T
                                                                  )
                                                                ]
                                                                ops: [<Id.Op_Pipe _>]
                                                              )
                                                            right: <Id.Backtick_Right '`'>
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              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 'arch='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'arch='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'arch='>
                                                      name: arch
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName canon)}
                                                )
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'mach='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'mach='>
                                                      name: mach
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'os='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'os='>
                                                      name: os
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'sys='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'sys='>
                                                      name: sys
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'rel='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rel='>
                                                      name: rel
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'type='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'type='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'type='> name:type)
                                  op: assign_op.Equal
                                  rhs: {<unknown>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Star '*'> <.> <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'host='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'host='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'host='>
                                              name: host
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [{<echo>} {($ Id.VSub_DollarName host)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {<-e>}
                                                          {(SQ <'s/\\..*//'>)}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName mach)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <unknown>
                                  pattern: (pat.Words words:[{<unknown>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mach='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mach='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'mach='>
                                              name: mach
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> <Rr> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <0123> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mach='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mach='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'mach='>
                                              name: mach
                                            )
                                          op: assign_op.Equal
                                          rhs: {<mips1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> <Rr> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <4> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> 
                                          <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mach='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mach='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'mach='>
                                              name: mach
                                            )
                                          op: assign_op.Equal
                                          rhs: {<mips2>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> <Rr> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <56789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                        }
                                        {<Id.Lit_LBracket '['> <Rr> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mach='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mach='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'mach='>
                                              name: mach
                                            )
                                          op: assign_op.Equal
                                          rhs: {<mips4>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <pc>
                                  pattern: (pat.Words words:[{<pc>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'arch='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'arch='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'arch='>
                                              name: arch
                                            )
                                          op: assign_op.Equal
                                          rhs: {<i386>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mach='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mach='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'mach='>
                                              name: mach
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> <Pp> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <Oo> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Ww> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Ee> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Rr> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Pp> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <Cc> <Id.Lit_RBracket ']'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'arch='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'arch='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'arch='>
                                              name: arch
                                            )
                                          op: assign_op.Equal
                                          rhs: {<ppc>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mach='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mach='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'mach='>
                                              name: mach
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<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 arch)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <34>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<34> <Id.Lit_LBracket '['> <0123456789> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'os='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'os='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'os='>
                                                      name: os
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<ncr>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'arch='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'arch='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'arch='>
                                                      name: arch
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<i386>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName canon)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <set>
                                      more_env: []
                                      words: [
                                        {<set>}
                                        {<'/NextDeveloper'>}
                                        {<-d>}
                                        {<next>}
                                        {<->}
                                        {<'/config/hw/system/cpu'>}
                                        {<-d>}
                                        {<tandem>}
                                        {<mach>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (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.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {($ Id.VSub_Number 2)}
                                                            {($ Id.VSub_Number 1)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'os='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'os='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'os='>
                                                              name: os
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_Number 3)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_Number 4)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <arch>
                                                          pattern: (pat.Words words:[{<arch>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'mach='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'mach='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'mach='>
                                                                      name: mach
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName arch)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <mach>
                                                          pattern: (pat.Words words:[{<mach>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'arch='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'arch='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'arch='>
                                                                      name: arch
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName mach)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  spids: [12357 12366]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.Simple
                                                  blame_tok: <shift>
                                                  more_env: []
                                                  words: [{<shift>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.Simple
                                                  blame_tok: <shift>
                                                  more_env: []
                                                  words: [{<shift>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.Simple
                                                  blame_tok: <shift>
                                                  more_env: []
                                                  words: [{<shift>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName os)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <AIX>
                                  pattern: 
                                    (pat.Words
                                      words: [{<AIX> <Id.Lit_Star '*'>} {<aix> <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'type='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'type='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'type='>
                                              name: type
                                            )
                                          op: assign_op.Equal
                                          rhs: {<ibm.risc>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <HP-UX>
                                  pattern: (pat.Words words:[{<HP-UX>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName arch)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <'9000/'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<'9000/'> <Id.Lit_LBracket '['> <78> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<hp.pa>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {<hp.> 
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: <echo>
                                                                more_env: []
                                                                words: [
                                                                  {<echo>}
                                                                  {($ Id.VSub_DollarName arch)}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: 
                                                                  <Id.VSub_DollarName '$SED'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName SED)}
                                                                  {(SQ <'s,/,_,g'>)}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              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 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<hp.> ($ Id.VSub_DollarName arch)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> <Ii> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <Rr> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Ii> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Xx> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <set>
                                      more_env: []
                                      words: [
                                        {<set>}
                                        {<xx>}
                                        {
                                          (CommandSub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (command.Simple
                                                    blame_tok: <hinv>
                                                    more_env: []
                                                    words: [{<hinv>}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                  (command.Simple
                                                    blame_tok: <Id.VSub_DollarName '$SED'>
                                                    more_env: []
                                                    words: [
                                                      {($ Id.VSub_DollarName SED)}
                                                      {<-e>}
                                                      {(SQ <'/^CPU:/!d'>)}
                                                      {<-e>}
                                                      {
                                                        (SQ 
                                                          <
's/CPU:[ \t]*\\([^ \t]*\\)[ \t]*\\([^ \t]*\\).*/\\1 \\2/'
                                                          >
                                                        )
                                                      }
                                                      {<-e>}
                                                      {<q>}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                  (command.Simple
                                                    blame_tok: <Id.VSub_DollarName '$TR'>
                                                    more_env: []
                                                    words: [
                                                      {($ Id.VSub_DollarName TR)}
                                                      {<ABCDEFGHIJKLMNOPQRSTUVWXYZ>}
                                                      {<abcdefghijklmnopqrstuvwxyz>}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                ]
                                                ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'type='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'type='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'type='>
                                              name: type
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number 1)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'n='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'n='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'n='> name:n)
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_Number 2)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_ArrayLhsOpen 'r['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_ArrayLhsOpen 'r['> <0123> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'n='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'n='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'n='>
                                                      name: n
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_ArrayLhsOpen 'r['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_ArrayLhsOpen 'r['> <4> <Id.Lit_RBracket ']'> 
                                                  <Id.Lit_LBracket '['> <0123> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'n='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'n='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'n='>
                                                      name: n
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<2>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_ArrayLhsOpen 'r['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_ArrayLhsOpen 'r['> <4> <Id.Lit_RBracket ']'> 
                                                  <Id.Lit_LBracket '['> <456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                                }
                                                {<Id.Lit_ArrayLhsOpen 'r['> <5> <Id.Lit_RBracket ']'> 
                                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'n='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'n='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'n='>
                                                      name: n
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<3>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_ArrayLhsOpen 'r['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_ArrayLhsOpen 'r['> <6789> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                                }
                                                {<Id.Lit_ArrayLhsOpen 'r['> <123456789> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> 
                                                  <Id.Lit_RBracket ']'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'n='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'n='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'n='>
                                                      name: n
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<4>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName rel)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> <01234> <Id.Lit_RBracket ']'> 
                                                  <.> <Id.Lit_Star '*'>
                                                }
                                                {<5.> <Id.Lit_LBracket '['> <012> <Id.Lit_RBracket ']'>}
                                                {<5.> <Id.Lit_LBracket '['> <012> <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 n)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <1>
                                                  pattern: (pat.Words words:[{<1>}])
                                                  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_VarLike 'n='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'n='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'n='>
                                                              name: n
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<2>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <5.>
                                          pattern: (pat.Words words:[{<5.> <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 n)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <2>
                                                  pattern: (pat.Words words:[{<2>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'n='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'n='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'n='>
                                                              name: n
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<3>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          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.Simple
                                                  blame_tok: <executable>
                                                  more_env: []
                                                  words: [{<executable>} {($ Id.VSub_DollarName cc)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'a='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'a='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'a='>
                                                      name: a
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName cc)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [12803 12810]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'IFS='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'IFS='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'IFS='>
                                                  name: IFS
                                                )
                                              op: assign_op.Equal
                                              rhs: {<Id.Lit_Colon ':'>}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <set>
                                          more_env: []
                                          words: [
                                            {<set>}
                                            {<'/'> ($ Id.VSub_DollarName IFS) 
                                              ($ Id.VSub_DollarName PATH)
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'IFS='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'IFS='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'IFS='>
                                                  name: IFS
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName ifs)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <shift>
                                          more_env: []
                                          words: [{<shift>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ForEach
                                          keyword: <Id.KW_For for>
                                          iter_names: [i]
                                          iterable: (for_iter__Args)
                                          body: 
                                            (command.DoGroup
                                              left: <Id.KW_Do do>
                                              children: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'a='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'a='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'a='>
                                                          name: a
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {($ Id.VSub_DollarName i) <'/'> 
                                                          ($ Id.VSub_DollarName cc)
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.If
                                                  if_kw: <Id.KW_If if>
                                                  arms: [
                                                    (IfArm
                                                      keyword: <Id.KW_If if>
                                                      cond: 
                                                        (condition.Shell
                                                          commands: [
                                                            (command.Simple
                                                              blame_tok: <executable>
                                                              more_env: []
                                                              words: [
                                                                {<executable>}
                                                                {($ Id.VSub_DollarName a)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                        )
                                                      then_kw: <Id.KW_Then then>
                                                      action: [
                                                        (command.ControlFlow
                                                          keyword: <Id.ControlFlow_Break break>
                                                        )
                                                      ]
                                                      spids: [12849 12856]
                                                    )
                                                  ]
                                                  else_action: []
                                                  fi_kw: <Id.KW_Fi fi>
                                                  redirects: []
                                                )
                                              ]
                                              right: <Id.KW_Done done>
                                            )
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'split='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'split='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'split='>
                                              name: split
                                            )
                                          op: assign_op.Equal
                                          rhs: {(SQ <'\n'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'a='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'a='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <strings>
                                                        more_env: []
                                                        words: [{<strings>} {($ Id.VSub_DollarName a)}]
                                                        redirects: [
                                                          (Redir
                                                            op: <Id.Redir_Less '<'>
                                                            loc: (redir_loc.Fd fd:0)
                                                            arg: {<'/dev/null'>}
                                                          )
                                                        ]
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {<-e>}
                                                          {
                                                            (SQ 
                                                              <
's/[^abcdefghijklmnopqrstuvwxyz0123456789]/ /g'
                                                              >
                                                            )
                                                          }
                                                          {<-e>}
                                                          {(SQ <'s/[ \t][ \t]*/\\'>) 
                                                            (DQ ($ Id.VSub_DollarName split)) (SQ <'/g'>)
                                                          }
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {<-e>}
                                                          {
                                                            (DQ <'/^'> (${ Id.VSub_Name type) 
                                                              <'[0123456789]'> <Id.Lit_Dollar '$'> <'/!d'>
                                                            )
                                                          }
                                                          {<-e>}
                                                          {(DQ <'s/^'> (${ Id.VSub_Name type) <'//'>)}
                                                          {<-e>}
                                                          {<q>}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName a)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> <0123456789> 
                                                  <Id.Lit_RBracket ']'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'n='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'n='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'n='>
                                                      name: n
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName a)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName n)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <4>
                                          pattern: (pat.Words words:[{<4>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'a='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'a='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'a='>
                                                      name: a
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <Id.VSub_DollarName '$cc'>
                                                            more_env: []
                                                            words: [
                                                              {($ Id.VSub_DollarName cc)}
                                                              {<-> (${ Id.VSub_Name type) <3>}
                                                            ]
                                                            redirects: [
                                                              (Redir
                                                                op: <Id.Redir_GreatAnd '2>&'>
                                                                loc: (redir_loc.Fd fd:2)
                                                                arg: {<1>}
                                                              )
                                                            ]
                                                            do_fork: T
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName a)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> <unknown> <Id.Lit_Star '*'>}
                                                        {<Id.Lit_Star '*'> <install> <Id.Lit_Star '*'>}
                                                        {<Id.Lit_Star '*'> <conflict> 
                                                          <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_VarLike 'n='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'n='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'n='>
                                                              name: n
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<3>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'a='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'a='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <Id.VSub_DollarName '$cc'>
                                                    more_env: []
                                                    words: [
                                                      {($ Id.VSub_DollarName cc)}
                                                      {<-show>}
                                                      {<F0oB> <Id.Lit_Splice '@r'> <.c>}
                                                    ]
                                                    redirects: [
                                                      (Redir
                                                        op: <Id.Redir_GreatAnd '2>&'>
                                                        loc: (redir_loc.Fd fd:2)
                                                        arg: {<1>}
                                                      )
                                                    ]
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {($ Id.VSub_DollarName n) <Id.Lit_Colon ':'> 
                                              ($ Id.VSub_DollarName a)
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> <Id.KW_Bang '!'> <2> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <mips2> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'n='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'n='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'n='>
                                                      name: n
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<2>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> <Id.KW_Bang '!'> <23> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <mips3> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'n='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'n='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'n='>
                                                      name: n
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<3>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> <Id.KW_Bang '!'> <234> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <mips4> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'n='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'n='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'n='>
                                                      name: n
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<4>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {($ Id.VSub_DollarName n) <Id.Lit_Colon ':'> 
                                              ($ Id.VSub_DollarName a)
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> <Id.KW_Bang '!'> <2> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Oo> <Id.Lit_RBracket ']'> <32> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'abi='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'abi='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'abi='>
                                                      name: abi
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<-o32>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> <Id.KW_Bang '!'> <3> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Nn> <Id.Lit_RBracket ']'> <32> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'abi='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'abi='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'abi='>
                                                      name: abi
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<-n32>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'mach='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'mach='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'mach='>
                                              name: mach
                                            )
                                          op: assign_op.Equal
                                          rhs: {(${ Id.VSub_Name type) ($ Id.VSub_DollarName n)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'type='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'type='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'type='>
                                              name: type
                                            )
                                          op: assign_op.Equal
                                          rhs: {<sgi.> ($ Id.VSub_DollarName mach)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <OSx>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<OSx> <Id.Lit_Star '*'>}
                                        {<SMP> <Id.Lit_Star '*'>}
                                        {<pyramid>}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'type='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'type='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'type='>
                                              name: type
                                            )
                                          op: assign_op.Equal
                                          rhs: {<pyr>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <'OS/390'>
                                  pattern: (pat.Words words:[{<'OS/390'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'type='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'type='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'type='>
                                              name: type
                                            )
                                          op: assign_op.Equal
                                          rhs: {<mvs.390>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> <Ss> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <Cc> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Oo> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'type='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'type='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'type='>
                                              name: type
                                            )
                                          op: assign_op.Equal
                                          rhs: {<sco>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> <Ss> <Id.Lit_RBracket ']'> <ol> 
                                          <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (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: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [{<echo>} {($ Id.VSub_DollarName rel)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {<-e>}
                                                          {(SQ <'s/^[25]\\.//'>)}
                                                          {<-e>}
                                                          {(SQ <'s/\\.[^.]*$//'>)}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName v)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> <6789> <Id.Lit_RBracket ']'>}
                                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                                }
                                              ]
                                            )
                                          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_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: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName arch)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName mach)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'arch='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'arch='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'arch='>
                                                              name: arch
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<sun4>}
                                                        )
                                                      ]
                                                      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 'arch='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'arch='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'arch='>
                                                              name: arch
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName mach)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName arch)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <sparc>
                                          pattern: (pat.Words words:[{<sparc>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'arch='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'arch='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'arch='>
                                                      name: arch
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<sun4>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'type='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'type='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'type='>
                                              name: type
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {<sol> ($ Id.VSub_DollarName v) <.> 
                                              ($ Id.VSub_DollarName arch)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> <Ss> <Id.Lit_RBracket ']'> <un> 
                                          <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'type='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'type='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'type='>
                                              name: type
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [{<echo>} {($ Id.VSub_DollarName arch)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {<-e>}
                                                          {(SQ <'s/\\(sun.\\).*/\\1/'>)}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName type)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <sparc>
                                          pattern: (pat.Words words:[{<sparc>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<sun4>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName rel)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> <01234> <Id.Lit_RBracket ']'> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName os)})
                                              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_LBracket '['> <Ss> <Id.Lit_RBracket ']'>
                                                        }
                                                      ]
                                                    )
                                                  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_VarLike 'type='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'type='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'type='>
                                                              name: type
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<sol.> ($ Id.VSub_DollarName type)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<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 type)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName mach)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <sparc>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<sparc> <Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'type='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'type='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'type='>
                                                                      name: type
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<sun4>}
                                                                )
                                                              ]
                                                              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 'type='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'type='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'type='>
                                                                      name: type
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName mach)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (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: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: <echo>
                                                                more_env: []
                                                                words: [
                                                                  {<echo>}
                                                                  {($ Id.VSub_DollarName rel)}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: 
                                                                  <Id.VSub_DollarName '$SED'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName SED)}
                                                                  {<-e>}
                                                                  {(SQ <'s/^[25]\\.//'>)}
                                                                  {<-e>}
                                                                  {(SQ <'s/\\.[^.]*$//'>)}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName v)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_LBracket '['>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_LBracket '['> <6789> 
                                                          <Id.Lit_RBracket ']'>
                                                        }
                                                        {<Id.Lit_LBracket '['> <1-9> 
                                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                                        }
                                                      ]
                                                    )
                                                  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_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: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {<sol> ($ Id.VSub_DollarName v) <.> 
                                                      ($ Id.VSub_DollarName type)
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName type)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <sun>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<sun> <Id.Lit_Star '*'>}
                                                {<Id.Lit_Star '*'> <.> <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_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<sun.> ($ Id.VSub_DollarName type)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> <Uu> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <Nn> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Ii> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Xx> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_ArrayLhsOpen '_['> <Ss> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Vv> <Id.Lit_RBracket ']'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'type='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'type='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'type='>
                                              name: type
                                            )
                                          op: assign_op.Equal
                                          rhs: {<unixware>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <UTS>
                                  pattern: 
                                    (pat.Words
                                      words: [{<UTS> <Id.Lit_Star '*'>} {<uts> <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-x>}
                                                    {<'/bin/u370'>}
                                                    {<-o>}
                                                    {<-x>}
                                                    {<'/bin/u390'>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<uts.390>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [13680 13695]
                                        )
                                      ]
                                      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 arch)})
                                          arms_start: <Id.KW_In in>
                                          arms: [
                                            (CaseArm
                                              left: <Id.Left_SingleQuote '\''>
                                              pattern: (pat.Words words:[{(SQ )}])
                                              middle: <Id.Right_CasePat _>
                                              action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'arch='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'arch='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'arch='>
                                                          name: arch
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName mach)}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              right: <Id.Op_DSemi _>
                                            )
                                          ]
                                          arms_end: <Id.KW_Esac esac>
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'type='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'type='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'type='>
                                                  name: type
                                                )
                                              op: assign_op.Equal
                                              rhs: {<uts.> ($ Id.VSub_DollarName arch)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.VSub_DollarName '$host'>
                                  pattern: (pat.Words words:[{($ Id.VSub_DollarName host)}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'type='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'type='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'type='>
                                              name: type
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName arch)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName type)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <.> <Id.Lit_Star '*'>}
                                                {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <0123456789> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> <86>
                                                }
                                                {<Id.Lit_Star '*'> <68> <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.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName mach)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                                                          <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> <86>
                                                        }
                                                        {<Id.Lit_Star '*'> <68> <Id.Lit_Star '*'>}
                                                        {<mips>}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'type='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'type='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'type='>
                                                              name: type
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName type) <.> 
                                                              ($ Id.VSub_DollarName mach)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <unknown>
                                  pattern: (pat.Words words:[{<unknown>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName arch)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_QMark '?'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_QMark '?'> <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 arch)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <sun>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<sun> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'mach='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'mach='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'mach='>
                                                              name: mach
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName arch)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName mach)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'type='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'type='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'type='>
                                                              name: type
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName type) <.> 
                                                              ($ Id.VSub_DollarName mach)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<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 ver)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <FTX>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<FTX> <Id.Lit_Star '*'>}
                                                {<ftx> <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 mach)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                                                          <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ> 
                                                          <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'mach='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'mach='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'mach='>
                                                              name: mach
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: <echo>
                                                                        more_env: []
                                                                        words: [
                                                                          {<echo>}
                                                                          {
                                                                            ($ Id.VSub_DollarName 
mach
                                                                            )
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: 
                                                                          <Id.VSub_DollarName '$SED'>
                                                                        more_env: []
                                                                        words: [
                                                                          {
                                                                            ($ Id.VSub_DollarName SED)
                                                                          }
                                                                          {<-e>}
                                                                          {
                                                                            (SQ 
                                                                              <
's/[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]*$//'
                                                                              >
                                                                            )
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<stratus.> ($ Id.VSub_DollarName mach)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<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 arch)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_LBracket '['>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_LBracket '['> <Oo> 
                                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Ss> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <'-/.'> <Id.Lit_RBracket ']'> <2>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'type='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'type='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'type='>
                                                              name: type
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<os2>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'arch='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'arch='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'arch='>
                                                              name: arch
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName rel)}
                                                        )
                                                      ]
                                                      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 'type='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'type='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'type='>
                                                              name: type
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: <echo>
                                                                        more_env: []
                                                                        words: [
                                                                          {<echo>}
                                                                          {($ Id.VSub_DollarName os)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: 
                                                                          <Id.VSub_DollarName '$SED'>
                                                                        more_env: []
                                                                        words: [
                                                                          {
                                                                            ($ Id.VSub_DollarName SED)
                                                                          }
                                                                          {<-e>}
                                                                          {
                                                                            (SQ 
                                                                              <'s/[0123456789].*//'>
                                                                            )
                                                                          }
                                                                          {<-e>}
                                                                          {
                                                                            (SQ 
                                                                              <
's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789.].*//'
                                                                              >
                                                                            )
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName type)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_LBracket '['>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_LBracket '['> <Cc> 
                                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Yy> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Gg> <Id.Lit_RBracket ']'> 
                                                          <Id.Lit_LBracket '['> <Ww> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Ii> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Nn> 
                                                          <Id.Lit_RBracket ']'> <Id.Lit_Underscore _> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'type='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'type='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'type='>
                                                              name: type
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<cygwin>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_LBracket '['>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_LBracket '['> <Uu> 
                                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Ww> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Ii> <Id.Lit_RBracket ']'> 
                                                          <Id.Lit_LBracket '['> <Nn> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                        }
                                                        {<Id.Lit_LBracket '['> <Ww> 
                                                          <Id.Lit_RBracket ']'> <Id.Lit_ArrayLhsOpen 'indows_['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> 
                                                          <Id.Lit_RBracket ']'>
                                                        }
                                                        {<Id.Lit_LBracket '['> <Ww> 
                                                          <Id.Lit_RBracket ']'> <Id.Lit_ArrayLhsOpen 'indows_['> <Nn> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Tt> 
                                                          <Id.Lit_RBracket ']'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'type='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'type='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'type='>
                                                              name: type
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<win32>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'arch='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'arch='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'arch='>
                                                              name: arch
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: <echo>
                                                                        more_env: []
                                                                        words: [
                                                                          {<echo>}
                                                                          {
                                                                            ($ Id.VSub_DollarName 
arch
                                                                            )
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: 
                                                                          <Id.VSub_DollarName '$SED'>
                                                                        more_env: []
                                                                        words: [
                                                                          {
                                                                            ($ Id.VSub_DollarName SED)
                                                                          }
                                                                          {<-e>}
                                                                          {(SQ <'s/_[^_]*$//'>)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName arch)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName mach)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_QMark '?'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'type='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'type='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'type='>
                                                                      name: type
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {($ Id.VSub_DollarName type) <.> 
                                                                      ($ Id.VSub_DollarName mach)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      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 'type='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'type='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'type='>
                                                              name: type
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName type) <.> 
                                                              ($ Id.VSub_DollarName arch)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName type)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> <0123456789> <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 mach)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_QMark '?'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName mach)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName type)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <'/MC'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<ncr.> ($ Id.VSub_DollarName type)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Star '*'> <.> <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 '['> <0123456789> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> <86>
                                        }
                                        {<Id.Lit_Star '*'> <68> <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 rel)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> <34> <Id.Lit_RBracket ']'> <.> 
                                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<att.> ($ Id.VSub_DollarName type)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> <abcdefghijklmnopqrstuvwxyz> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_LBracket '['>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_LBracket '['> <abcdefghijklmnopqrstuvwxyz> 
                                          <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 mach)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.VSub_DollarName '$type'>
                                          pattern: (pat.Words words:[{($ Id.VSub_DollarName type)}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName ver)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Fault>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Fault> <Id.Lit_Star '*'>}
                                                        {<fault> <Id.Lit_Star '*'>}
                                                        {<FAULT> <Id.Lit_Star '*'>}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'type='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'type='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'type='>
                                                              name: type
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<ft.> ($ Id.VSub_DollarName type)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_QMark '?'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_QMark '?'> <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 arch)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'type='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'type='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'type='>
                                                              name: type
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName type) <.> 
                                                              ($ Id.VSub_DollarName mach)
                                                            }
                                                        )
                                                      ]
                                                      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 'type='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'type='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'type='>
                                                              name: type
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName type) <.> 
                                                              ($ Id.VSub_DollarName arch)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName type)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <-_> 
                                          <Id.Lit_RBracket ']'> <32>
                                        }
                                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <-_> 
                                          <Id.Lit_RBracket ']'> <64>
                                        }
                                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <-_> 
                                          <Id.Lit_RBracket ']'> <128>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'bits='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'bits='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'bits='>
                                              name: bits
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [{<echo>} {($ Id.VSub_DollarName type)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {(SQ <'s,.*[-_],,'>)}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'type='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'type='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'type='>
                                              name: type
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [{<echo>} {($ Id.VSub_DollarName type)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {(SQ <'s,[-_][0-9]*$,,'>)}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      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 'bits='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'bits='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'bits='>
                                              name: bits
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'type='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'type='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'type='> name:type)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {($ Id.VSub_DollarName type)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$SED'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName SED)}
                                                  {<-e>}
                                                  {(SQ <'s%[-+/].*%%'>)}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <Id.VSub_DollarName '$TR'>
                                                more_env: []
                                                words: [
                                                  {($ Id.VSub_DollarName TR)}
                                                  {<ABCDEFGHIJKLMNOPQRSTUVWXYZ>}
                                                  {<abcdefghijklmnopqrstuvwxyz>}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName type)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Star '*'> <.> <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'lhs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'lhs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lhs='>
                                              name: lhs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [{<echo>} {($ Id.VSub_DollarName type)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {<-e>}
                                                          {(SQ <'s/\\..*//'>)}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'rhs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'rhs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'rhs='>
                                              name: rhs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [{<echo>} {($ Id.VSub_DollarName type)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$SED'>
                                                        more_env: []
                                                        words: [
                                                          {($ Id.VSub_DollarName SED)}
                                                          {<-e>}
                                                          {(SQ <'s/.*\\.//'>)}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName rhs)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> <x0123456789> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> <86>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'rhs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'rhs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rhs='>
                                                      name: rhs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<i> ($ Id.VSub_DollarName rhs)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <68>
                                          pattern: (pat.Words words:[{<68> <Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'rhs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'rhs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rhs='>
                                                      name: rhs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<m> ($ Id.VSub_DollarName rhs)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName rhs)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_ArrayLhsOpen 'i['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_ArrayLhsOpen 'i['> <x23456789> 
                                                  <Id.Lit_RBracket ']'> <86>
                                                }
                                                {<i> <Id.Lit_QMark '?'> <Id.Lit_LBracket '['> 
                                                  <x23456789> <Id.Lit_RBracket ']'> <86>
                                                }
                                                {<Id.Lit_Star '*'> <86pc>}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'rhs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'rhs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rhs='>
                                                      name: rhs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<i386>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <powerpc>
                                          pattern: (pat.Words words:[{<powerpc>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'rhs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'rhs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rhs='>
                                                      name: rhs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<ppc>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_ArrayLhsOpen 's['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_ArrayLhsOpen 's['> <0123456789> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <x>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'rhs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'rhs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rhs='>
                                                      name: rhs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: <echo>
                                                                more_env: []
                                                                words: [
                                                                  {<echo>}
                                                                  {($ Id.VSub_DollarName rhs)}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: 
                                                                  <Id.VSub_DollarName '$SED'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName SED)}
                                                                  {<-e>}
                                                                  {(SQ <'s/x$/-64/'>)}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName rhs)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_ArrayLhsOpen 'arm['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_ArrayLhsOpen 'arm['> 
                                                  <abcdefghijklmnopqrstuvwxyz_> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'rhs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'rhs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rhs='>
                                                      name: rhs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<arm>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <hppa>
                                          pattern: (pat.Words words:[{<hppa>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'rhs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'rhs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rhs='>
                                                      name: rhs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<pa>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName lhs)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_QMark '?'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_QMark '?'> <Id.Lit_Star '*'> <coff>}
                                                {<Id.Lit_QMark '?'> <Id.Lit_Star '*'> <dwarf>}
                                                {<Id.Lit_QMark '?'> <Id.Lit_Star '*'> <elf>}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName lhs)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_QMark '?'> <Id.Lit_Star '*'> <coff>}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'x='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'x='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'x='>
                                                              name: x
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<coff>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_QMark '?'> <Id.Lit_Star '*'> <dwarf>}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'x='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'x='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'x='>
                                                              name: x
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<coff>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_QMark '?'> <Id.Lit_Star '*'> <elf>}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'x='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'x='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'x='>
                                                              name: x
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<elf>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'lhs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'lhs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lhs='>
                                                      name: lhs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: <echo>
                                                                more_env: []
                                                                words: [
                                                                  {<echo>}
                                                                  {(${ Id.VSub_Name lhs) <XXX>}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: 
                                                                  <Id.VSub_DollarName '$SED'>
                                                                more_env: []
                                                                words: [
                                                                  {($ Id.VSub_DollarName SED)}
                                                                  {<-e>}
                                                                  {
                                                                    (DQ <'s/'> (${ Id.VSub_Name x) 
                                                                      <'XXX//'>
                                                                    )
                                                                  }
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName lhs)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <bsdi>
                                          pattern: (pat.Words words:[{<bsdi>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'lhs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'lhs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lhs='>
                                                      name: lhs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<bsd>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <darwin>
                                          pattern: (pat.Words words:[{<darwin>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName rel)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_LBracket '['>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_LBracket '['> <01234567> 
                                                          <Id.Lit_RBracket ']'> <.> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'lhs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'lhs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'lhs='>
                                                              name: lhs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(${ Id.VSub_Name lhs) <7>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <freebsd>
                                          pattern: (pat.Words words:[{<freebsd>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName rel)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_LBracket '['>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_LBracket '['> <01234> 
                                                          <Id.Lit_RBracket ']'> <.> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'lhs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'lhs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'lhs='>
                                                              name: lhs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(${ Id.VSub_Name lhs) <4>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_LBracket '['>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_LBracket '['> <123456789> 
                                                          <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> <.> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'lhs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'lhs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'lhs='>
                                                              name: lhs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {(${ Id.VSub_Name lhs) 
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: <echo>
                                                                        more_env: []
                                                                        words: [
                                                                          {<echo>}
                                                                          {
                                                                            ($ Id.VSub_DollarName rel)
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: 
                                                                          <Id.VSub_DollarName '$SED'>
                                                                        more_env: []
                                                                        words: [
                                                                          {
                                                                            ($ Id.VSub_DollarName SED)
                                                                          }
                                                                          {<-e>}
                                                                          {(SQ <'s/\\..*//'>)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <hpux>
                                          pattern: (pat.Words words:[{<hpux>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'lhs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'lhs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lhs='>
                                                      name: lhs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<hp>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <mvs>
                                          pattern: (pat.Words words:[{<mvs>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'rhs='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'rhs='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rhs='>
                                                      name: rhs
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<390>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName lhs)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName rhs)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.VSub_DollarName '$rhs'>
                                          pattern: (pat.Words words:[{($ Id.VSub_DollarName rhs)}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName lhs)}
                                                )
                                              ]
                                              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 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName lhs) <.> 
                                                      ($ Id.VSub_DollarName rhs)
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName type)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <sgi.mips>
                                  pattern: (pat.Words words:[{<sgi.mips> <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 mach)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <mips2>
                                          pattern: (pat.Words words:[{<mips2>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<sgi.> ($ Id.VSub_DollarName mach)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'abi='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'abi='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'abi='>
                                                      name: abi
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<-o32>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <mips3>
                                          pattern: (pat.Words words:[{<mips3>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<sgi.> ($ Id.VSub_DollarName mach)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'abi='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'abi='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'abi='>
                                                      name: abi
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<-n32>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_ArrayLhsOpen 'mips['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_ArrayLhsOpen 'mips['> <456789> 
                                                  <Id.Lit_RBracket ']'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<sgi.> ($ Id.VSub_DollarName mach)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName abi)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_Star '*'> <-n32>}]
                                                    )
                                                  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_VarLike 'abi='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'abi='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'abi='>
                                                              name: abi
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<-64>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              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 'pwd='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'pwd='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'pwd='>
                                                      name: pwd
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <pwd>
                                                            more_env: []
                                                            words: [{<pwd>}]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <cd>
                                              more_env: []
                                              words: [
                                                {<cd>}
                                                {
                                                  (BracedVarSub
                                                    left: <Id.Left_DollarBrace '${'>
                                                    token: <Id.VSub_Name TMPDIR>
                                                    var_name: TMPDIR
                                                    suffix_op: 
                                                      (suffix_op.Unary
                                                        op: <Id.VTest_ColonHyphen _>
                                                        arg_word: {<Id.Lit_Slash '/'> <tmp>}
                                                      )
                                                    right: <Id.Right_DollarBrace '}'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (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: {<hi> ($ Id.VSub_Dollar '$')}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <trap>
                                              more_env: []
                                              words: [{<trap>} {(SQ <'rm -f $tmp.*'>)} {<0>} {<1>} {<2>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <cat>
                                              more_env: []
                                              words: [{<cat>}]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName tmp) <.a.c>}
                                                )
                                                (Redir
                                                  op: <Id.Redir_DLess '<<'>
                                                  loc: (redir_loc.Fd fd:0)
                                                  arg: 
                                                    (redir_param.HereDoc
                                                      here_begin: {<Id.KW_Bang '!'>}
                                                      here_end_tok: <Id.Undefined_Tok ''>
                                                      stdin_parts: [
                                                        <'extern int b();\n'>
                                                        <'int main() { return b(); }\n'>
                                                      ]
                                                    )
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <cat>
                                              more_env: []
                                              words: [{<cat>}]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName tmp) <.b.c>}
                                                )
                                                (Redir
                                                  op: <Id.Redir_DLess '<<'>
                                                  loc: (redir_loc.Fd fd:0)
                                                  arg: 
                                                    (redir_param.HereDoc
                                                      here_begin: {<Id.KW_Bang '!'>}
                                                      here_end_tok: <Id.Undefined_Tok ''>
                                                      stdin_parts: [<'int b() { return 0; }\n'>]
                                                    )
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'abi='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'abi='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'abi='>
                                                      name: abi
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <Id.VSub_DollarName '$cc'>
                                                          more_env: []
                                                          words: [
                                                            {($ Id.VSub_DollarName cc)}
                                                            {<-c>}
                                                            {($ Id.VSub_DollarName tmp) <.a.c>}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ForEach
                                                      keyword: <Id.KW_For for>
                                                      iter_names: [i]
                                                      iterable: 
                                                        (for_iter.Words
                                                          words: [{<-n32>} {<-o32>} {<-64>}]
                                                        )
                                                      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.AndOr
                                                                          children: [
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <Id.VSub_DollarName 
'$cc'
                                                                                >
                                                                              more_env: []
                                                                              words: [
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName cc
                                                                                  )
                                                                                }
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName i
                                                                                  )
                                                                                }
                                                                                {<-c>}
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName tmp
                                                                                  ) <.b.c>
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <Id.VSub_DollarName 
'$cc'
                                                                                >
                                                                              more_env: []
                                                                              words: [
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName cc
                                                                                  )
                                                                                }
                                                                                {<-o>}
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName tmp
                                                                                  ) <.exe>
                                                                                }
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName tmp
                                                                                  ) <.a.o>
                                                                                }
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName tmp
                                                                                  ) <.b.o>
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          ops: [<Id.Op_DAmp _>]
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'abi='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'abi='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'abi='
                                                                                >
                                                                              name: abi
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              ($ Id.VSub_DollarName i)
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                    (command.ForEach
                                                                      keyword: <Id.KW_For for>
                                                                      iter_names: [i]
                                                                      iterable: 
                                                                        (for_iter.Words
                                                                          words: [
                                                                            {<2>}
                                                                            {<3>}
                                                                            {<4>}
                                                                            {<5>}
                                                                            {<6>}
                                                                            {<7>}
                                                                            {<8>}
                                                                            {<9>}
                                                                          ]
                                                                        )
                                                                      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 i
                                                                                      ) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName abi)
                                                                                    }
                                                                                )
                                                                              arms_start: 
                                                                                <Id.KW_In in>
                                                                              arms: [
                                                                                (CaseArm
                                                                                  left: <2>
                                                                                  pattern: 
                                                                                    (pat.Words
                                                                                      words: [
                                                                                        {<2> 
                                                                                          <
Id.Lit_Colon ':'
                                                                                          > <-n32>
                                                                                        }
                                                                                        {<2> 
                                                                                          <
Id.Lit_Colon ':'
                                                                                          > <-64>
                                                                                        }
                                                                                        {<3> 
                                                                                          <
Id.Lit_Colon ':'
                                                                                          > <-64>
                                                                                        }
                                                                                      ]
                                                                                    )
                                                                                  middle: 
                                                                                    <
Id.Right_CasePat _
                                                                                    >
                                                                                  action: [
                                                                                    (command.ControlFlow
                                                                                      keyword: 
                                                                                        <
Id.ControlFlow_Continue continue
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                  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.AndOr
                                                                                          children: [
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
Id.VSub_DollarName '$cc'
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName cc
                                                                                                  )
                                                                                                }
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName abi
                                                                                                  )
                                                                                                }
                                                                                                {
                                                                                                  <
-mips
                                                                                                  > ($ Id.VSub_DollarName i)
                                                                                                }
                                                                                                {
                                                                                                  <
-c
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName tmp
                                                                                                  ) <.b.c>
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                            (command.Simple
                                                                                              blame_tok: 
                                                                                                <
Id.VSub_DollarName '$cc'
                                                                                                >
                                                                                              more_env: []
                                                                                              words: [
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName cc
                                                                                                  )
                                                                                                }
                                                                                                {
                                                                                                  <
-o
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName tmp
                                                                                                  ) <.exe>
                                                                                                }
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName tmp
                                                                                                  ) <.a.o>
                                                                                                }
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName tmp
                                                                                                  ) <.b.o>
                                                                                                }
                                                                                              ]
                                                                                              redirects: []
                                                                                              do_fork: 
T
                                                                                            )
                                                                                          ]
                                                                                          ops: [
                                                                                            <
Id.Op_DAmp _
                                                                                            >
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  then_kw: 
                                                                                    <Id.KW_Then then>
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'type='
                                                                                        >
                                                                                      pairs: [
                                                                                        (AssignPair
                                                                                          left: 
                                                                                            <
Id.Lit_VarLike 'type='
                                                                                            >
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              left: 
                                                                                                <
Id.Lit_VarLike 'type='
                                                                                                >
                                                                                              name: 
type
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (CommandSub
                                                                                                left_token: 
                                                                                                  <
Id.Left_Backtick '`'
                                                                                                  >
                                                                                                child: 
                                                                                                  (command.Pipeline
                                                                                                    children: [
                                                                                                      (command.Simple
                                                                                                        blame_tok: 
                                                                                                          <
echo
                                                                                                          >
                                                                                                        more_env: []
                                                                                                        words: [
                                                                                                          {
                                                                                                            <
echo
                                                                                                            >
                                                                                                          }
                                                                                                          {
                                                                                                            ($ 
Id.VSub_DollarName type
                                                                                                            )
                                                                                                          }
                                                                                                        ]
                                                                                                        redirects: []
                                                                                                        do_fork: 
T
                                                                                                      )
                                                                                                      (command.Simple
                                                                                                        blame_tok: 
                                                                                                          <
Id.VSub_DollarName '$SED'
                                                                                                          >
                                                                                                        more_env: []
                                                                                                        words: [
                                                                                                          {
                                                                                                            ($ 
Id.VSub_DollarName SED
                                                                                                            )
                                                                                                          }
                                                                                                          {
                                                                                                            <
-e
                                                                                                            >
                                                                                                          }
                                                                                                          {
                                                                                                            (SQ 
                                                                                                              <
's/.$//'
                                                                                                              >
                                                                                                            )
                                                                                                          }
                                                                                                        ]
                                                                                                        redirects: []
                                                                                                        do_fork: 
T
                                                                                                      )
                                                                                                    ]
                                                                                                    ops: [
                                                                                                      <
Id.Op_Pipe _
                                                                                                      >
                                                                                                    ]
                                                                                                  )
                                                                                                right: 
                                                                                                  <
Id.Backtick_Right '`'
                                                                                                  >
                                                                                              ) ($ Id.VSub_DollarName i)
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      redirects: []
                                                                                    )
                                                                                    (command.ControlFlow
                                                                                      keyword: 
                                                                                        <
Id.ControlFlow_Break break
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                  spids: [15268 15299]
                                                                                )
                                                                              ]
                                                                              else_action: []
                                                                              fi_kw: <Id.KW_Fi fi>
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.KW_Done done>
                                                                        )
                                                                      redirects: []
                                                                    )
                                                                    (command.ControlFlow
                                                                      keyword: 
                                                                        <Id.ControlFlow_Break break>
                                                                    )
                                                                  ]
                                                                  spids: [15177 15205]
                                                                )
                                                              ]
                                                              else_action: []
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.KW_Done done>
                                                        )
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [15150 15160]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Less '<'>
                                                  loc: (redir_loc.Fd fd:0)
                                                  arg: {<'/dev/null'>}
                                                )
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<'/dev/null'>}
                                                )
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '2>&'>
                                                  loc: (redir_loc.Fd fd:2)
                                                  arg: {<1>}
                                                )
                                              ]
                                            )
                                            (command.Simple
                                              blame_tok: <rm>
                                              more_env: []
                                              words: [
                                                {<rm>}
                                                {<-f>}
                                                {($ Id.VSub_DollarName tmp) <.> <Id.Lit_Star '*'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <trap>
                                              more_env: []
                                              words: [{<trap>} {<->} {<0>} {<1>} {<2>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <cd>
                                              more_env: []
                                              words: [{<cd>} {($ Id.VSub_DollarName pwd)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {($ Id.VSub_DollarName type) ($ Id.VSub_DollarName abi)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <sgi.mips2-o32>
                                          pattern: (pat.Words words:[{<sgi.mips2-o32>}])
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <sgi.mips3>
                                          pattern: (pat.Words words:[{<sgi.mips3>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName type) <-o32>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <sgi.mips3-n32>
                                          pattern: (pat.Words words:[{<sgi.mips3-n32>}])
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <sgi.mips4>
                                          pattern: (pat.Words words:[{<sgi.mips4>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName type) <-o32>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <sgi.mips>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<sgi.mips> <Id.Lit_LBracket '['> <456789> 
                                                  <Id.Lit_RBracket ']'> <-64>
                                                }
                                              ]
                                            )
                                          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_VarLike 'type='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'type='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'type='>
                                                      name: type
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName type) 
                                                      ($ Id.VSub_DollarName abi)
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<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 bits)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <file>
                                                            more_env: []
                                                            words: [{<file>} {<'/bin/sh'>}]
                                                            redirects: [
                                                              (Redir
                                                                op: <Id.Redir_Great '2>'>
                                                                loc: (redir_loc.Fd fd:2)
                                                                arg: {<'/dev/null'>}
                                                              )
                                                            ]
                                                            do_fork: T
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> <universal> 
                                                          <Id.Lit_Star '*'> <64> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'pwd='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'pwd='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'pwd='>
                                                              name: pwd
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Simple
                                                                    blame_tok: <pwd>
                                                                    more_env: []
                                                                    words: [{<pwd>}]
                                                                    redirects: []
                                                                    do_fork: T
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <cd>
                                                      more_env: []
                                                      words: [
                                                        {<cd>}
                                                        {
                                                          (BracedVarSub
                                                            left: <Id.Left_DollarBrace '${'>
                                                            token: <Id.VSub_Name TMPDIR>
                                                            var_name: TMPDIR
                                                            suffix_op: 
                                                              (suffix_op.Unary
                                                                op: <Id.VTest_ColonHyphen _>
                                                                arg_word: {<Id.Lit_Slash '/'> <tmp>}
                                                              )
                                                            right: <Id.Right_DollarBrace '}'>
                                                          )
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (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: {<hi> ($ Id.VSub_Dollar '$')}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <trap>
                                                      more_env: []
                                                      words: [
                                                        {<trap>}
                                                        {(SQ <'rm -f $tmp.*'>)}
                                                        {<0>}
                                                        {<1>}
                                                        {<2>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <cat>
                                                      more_env: []
                                                      words: [{<cat>}]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {($ Id.VSub_DollarName tmp) <.a.c>}
                                                        )
                                                        (Redir
                                                          op: <Id.Redir_DLess '<<'>
                                                          loc: (redir_loc.Fd fd:0)
                                                          arg: 
                                                            (redir_param.HereDoc
                                                              here_begin: {<Id.KW_Bang '!'>}
                                                              here_end_tok: <Id.Undefined_Tok ''>
                                                              stdin_parts: [
                                                                <'int main() { return 0; }\n'>
                                                              ]
                                                            )
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Simple
                                                                  blame_tok: 
                                                                    <Id.VSub_DollarName '$cc'>
                                                                  more_env: []
                                                                  words: [
                                                                    {($ Id.VSub_DollarName cc)}
                                                                    {<-o>}
                                                                    {($ Id.VSub_DollarName tmp) 
                                                                      <.a.exe>
                                                                    }
                                                                    {($ Id.VSub_DollarName tmp) 
                                                                      <.a.c>
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Simple
                                                                            blame_tok: <file>
                                                                            more_env: []
                                                                            words: [
                                                                              {<file>}
                                                                              {
                                                                                ($ 
Id.VSub_DollarName tmp
                                                                                ) <.a.exe>
                                                                              }
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> <64> 
                                                                          <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: <Id.Lit_VarLike 'bits='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 'bits='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'bits='
                                                                                >
                                                                              name: bits
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<64>}
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [15545 15558]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Less '<'>
                                                          loc: (redir_loc.Fd fd:0)
                                                          arg: {<'/dev/null'>}
                                                        )
                                                        (Redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {<'/dev/null'>}
                                                        )
                                                        (Redir
                                                          op: <Id.Redir_GreatAnd '2>&'>
                                                          loc: (redir_loc.Fd fd:2)
                                                          arg: {<1>}
                                                        )
                                                      ]
                                                    )
                                                    (command.Simple
                                                      blame_tok: <rm>
                                                      more_env: []
                                                      words: [
                                                        {<rm>}
                                                        {<-f>}
                                                        {($ Id.VSub_DollarName tmp) <.> 
                                                          <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <trap>
                                                      more_env: []
                                                      words: [{<trap>} {<->} {<0>} {<1>} {<2>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <cd>
                                                      more_env: []
                                                      words: [{<cd>} {($ Id.VSub_DollarName pwd)}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName bits)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <32>
                                  pattern: (pat.Words words:[{<32>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName type)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.i386>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'bits='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'bits='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'bits='>
                                                      name: bits
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName bits)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_QMark '?'>
                                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'type='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'type='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'type='>
                                              name: type
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName type) <-> 
                                              ($ Id.VSub_DollarName bits)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [{<set>} {(DQ )} {(DQ )} {($ Id.VSub_DollarName map)}]
                              redirects: []
                              do_fork: T
                            )
                            (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: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> <012> <Id.Lit_RBracket ']'>}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <shift>
                                          more_env: []
                                          words: [{<shift>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {
                                          (DQ <'\tcase '> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\$'>
                                              ch: '$'
                                            ) <'type in\n'> <'\t\t\t\t'> ($ Id.VSub_Number 1) <')\ttype='> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\$'>
                                              ch: '$'
                                            ) <'2; break ;;\n'> <'\t\t\t\tesac'>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_hostinfo_='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_hostinfo_='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_hostinfo_='>
                                      name: _hostinfo_
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName _hostinfo_) <' '> 
                                        ($ Id.VSub_DollarName type)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName _hostinfo_)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_hostinfo_='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_hostinfo_='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_hostinfo_='> name:_hostinfo_)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Star '*')}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'PATH='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'PATH='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName path)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName DEBUG)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <exec>
                      more_env: []
                      words: [{<exec>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '2>&'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<9>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <exec>
                      more_env: []
                      words: [{<exec>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '9>&'>
                          loc: (redir_loc.Fd fd:9)
                          arg: {<->}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <note>
      name: note
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                {(DQ ($ Id.VSub_At '@'))}
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <checkcc>
      name: checkcc
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'cc='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'cc='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cc='> name:cc)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <onpath>
                          more_env: []
                          words: [{<onpath>} {($ Id.VSub_DollarName CC)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cc='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cc='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cc='> name:cc)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName _onpath_)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [15892 15899]
                )
              ]
              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 CC)})
                  arms_start: <Id.KW_In in>
                  arms: [
                    (CaseArm
                      left: <cc>
                      pattern: (pat.Words words:[{<cc>}])
                      middle: <Id.Right_CasePat _>
                      action: [
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Simple
                                      blame_tok: <onpath>
                                      more_env: []
                                      words: [{<onpath>} {<gcc>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'CC='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'CC='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                                      op: assign_op.Equal
                                      rhs: {<gcc>}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'cc='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'cc='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cc='> name:cc)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName _onpath_)}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [15917 15924]
                            )
                          ]
                          else_action: []
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                      ]
                      right: <Id.Op_DSemi _>
                    )
                  ]
                  arms_end: <Id.KW_Esac esac>
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName cc)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <make>
                          pattern: (pat.Words words:[{<make>} {<test>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  blame_tok: <note>
                                  more_env: []
                                  words: [{<note>} {(DQ ($ Id.VSub_DollarName CC) <': not found'>)}]
                                  redirects: []
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          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: <note>
                              more_env: []
                              words: [
                                {<note>}
                                {(DQ <'warning: '> ($ Id.VSub_DollarName CC) <': not found'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <host>
          pattern: (pat.Words words:[{<host>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [{<eval>} {<Id.Lit_VarLike 'u='> ($ Id.VSub_DollarName package_use)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName u)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.VSub_DollarName '$PACKAGE_USE'>
                  pattern: (pat.Words words:[{($ Id.VSub_DollarName PACKAGE_USE)}])
                  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.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <onpath>
                                  more_env: []
                                  words: [{<onpath>} {($ Id.VSub_Number 0)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName _onpath_)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <'/arch/'> ($ Id.VSub_DollarName HOSTTYPE) 
                                          <'/bin/package'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
                                              name: KEEP_HOSTTYPE
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      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 'KEEP_HOSTTYPE='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
                                              name: KEEP_HOSTTYPE
                                            )
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          spids: [16045 16052]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
                                  name: KEEP_HOSTTYPE
                                )
                              op: assign_op.Equal
                              rhs: {<0>}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <hostinfo>
              more_env: []
              words: [{<hostinfo>} {($ Id.VSub_DollarName args)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {($ Id.VSub_DollarName _hostinfo_)}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>})
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <export>
          pattern: (pat.Words words:[{<export>} {<setup>} {<use>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'x='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'x='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              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 'x='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'x='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [{<eval>} {<Id.Lit_VarLike 'u='> ($ Id.VSub_DollarName package_use)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName u)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.VSub_DollarName '$PACKAGE_USE'>
                  pattern: (pat.Words words:[{($ Id.VSub_DollarName PACKAGE_USE)}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName PATH) <Id.Lit_Colon ':'>}
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                                  ($ Id.VSub_DollarName INSTALLROOT) <'/bin'> <Id.Lit_Colon ':'> <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 LIBPATH) <Id.Lit_Colon ':'>}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.VSub_DollarName '$INSTALLROOT'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {($ Id.VSub_DollarName INSTALLROOT) <'/bin'> 
                                          <Id.Lit_Colon ':'> ($ Id.VSub_DollarName INSTALLROOT) <'/lib'> <Id.Lit_Colon ':'> <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 SHLIB_PATH) <Id.Lit_Colon ':'>}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.VSub_DollarName '$INSTALLROOT'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {($ Id.VSub_DollarName INSTALLROOT) <'/lib'> 
                                                  <Id.Lit_Colon ':'> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'x='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'x='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'x='>
                                                      name: x
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'run='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'run='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'run='> name:run)
          op: assign_op.Equal
          rhs: {<->}
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <1>
          pattern: (pat.Words words:[{<1>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {<accept>}
                {<the>}
                {<current>}
                {<package>}
                {<use>}
                {<environment>}
              ]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'OK='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'OK='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OK='> name:OK)
                  op: assign_op.Equal
                  rhs: {<ok>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'KSH='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'KSH='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KSH='> name:KSH)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName EXECROOT) <'/bin/ksh'>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MAKE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MAKE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAKE='> name:MAKE)
                  op: assign_op.Equal
                  rhs: {<nmake>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'NMAKE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'NMAKE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NMAKE='> name:NMAKE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName EXECROOT) <'/bin/'> ($ Id.VSub_DollarName MAKE)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SUM='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SUM='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUM='> name:SUM)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName EXECROOT) <'/bin/sum'>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TEE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TEE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEE='> name:TEE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName EXECROOT) <'/bin/tee'>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'INITROOT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'INITROOT='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INITROOT='> name:INITROOT)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName PACKAGEROOT) <'/src/cmd/INIT'>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <checkcc>
              more_env: []
              words: [{<checkcc>}]
              redirects: []
              do_fork: T
            )
          ]
          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 'hosttype='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'hosttype='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hosttype='> name:hosttype)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName KEEP_PACKAGEROOT)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <use>
                          pattern: (pat.Words words:[{<use>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'PACKAGEROOT='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'PACKAGEROOT='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'PACKAGEROOT='>
                                      name: PACKAGEROOT
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName show)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <echo>
                                  pattern: (pat.Words words:[{<echo>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'exec='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'exec='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'exec='>
                                              name: exec
                                            )
                                          op: assign_op.Equal
                                          rhs: {<echo>}
                                        )
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'make='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'make='>
                                              name: make
                                            )
                                          op: assign_op.Equal
                                          rhs: {<echo>}
                                        )
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'show='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'show='>
                                              name: show
                                            )
                                          op: assign_op.Equal
                                          rhs: {<echo>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName args)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (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: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <->
                                          pattern: (pat.Words words:[{<->} {<.>}])
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <'/'>
                                          pattern: (pat.Words words:[{<'/'> <Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'PACKAGEROOT='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'PACKAGEROOT='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'PACKAGEROOT='>
                                                      name: PACKAGEROOT
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Number 1)}
                                                )
                                              ]
                                              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 'i='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'i='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'i='>
                                                      name: i
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <echo>
                                                            more_env: []
                                                            words: [
                                                              {<echo>}
                                                              {<Id.Lit_TildeLike '~'> 
                                                                ($ Id.VSub_Number 1)
                                                              }
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <packageroot>
                                                          more_env: []
                                                          words: [
                                                            {<packageroot>}
                                                            {($ Id.VSub_DollarName i)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'PACKAGEROOT='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'PACKAGEROOT='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'PACKAGEROOT='>
                                                              name: PACKAGEROOT
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName i)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [16427 16434]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ForEach
                                                  keyword: <Id.KW_For for>
                                                  iter_names: [i]
                                                  iterable: 
                                                    (for_iter.Words
                                                      words: [
                                                        {
                                                          (CommandSub
                                                            left_token: <Id.Left_Backtick '`'>
                                                            child: 
                                                              (command.Pipeline
                                                                children: [
                                                                  (command.Simple
                                                                    blame_tok: <echo>
                                                                    more_env: []
                                                                    words: [
                                                                      {<echo>}
                                                                      {($ Id.VSub_DollarName HOME)}
                                                                    ]
                                                                    redirects: []
                                                                    do_fork: T
                                                                  )
                                                                  (command.Simple
                                                                    blame_tok: <sed>
                                                                    more_env: []
                                                                    words: [
                                                                      {<sed>}
                                                                      {<-e>}
                                                                      {(SQ <'s,/[^/]*$,,'>)}
                                                                    ]
                                                                    redirects: []
                                                                    do_fork: T
                                                                  )
                                                                ]
                                                                ops: [<Id.Op_Pipe _>]
                                                              )
                                                            right: <Id.Backtick_Right '`'>
                                                          )
                                                        }
                                                        {($ Id.VSub_DollarName usr)}
                                                        {($ Id.VSub_DollarName use)}
                                                      ]
                                                    )
                                                  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.Simple
                                                                      blame_tok: <packageroot>
                                                                      more_env: []
                                                                      words: [
                                                                        {<packageroot>}
                                                                        {($ Id.VSub_DollarName i) 
                                                                          <'/'> ($ Id.VSub_Number 1)
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                )
                                                              then_kw: <Id.KW_Then then>
                                                              action: [
                                                                (command.ShAssignment
                                                                  left: 
                                                                    <Id.Lit_VarLike 'PACKAGEROOT='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'PACKAGEROOT='
                                                                        >
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'PACKAGEROOT='
                                                                            >
                                                                          name: PACKAGEROOT
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {($ Id.VSub_DollarName i) 
                                                                          <'/'> ($ Id.VSub_Number 1)
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.ControlFlow
                                                                  keyword: 
                                                                    <Id.ControlFlow_Break break>
                                                                )
                                                              ]
                                                              spids: [16473 16482]
                                                            )
                                                          ]
                                                          else_action: []
                                                          fi_kw: <Id.KW_Fi fi>
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.KW_Done done>
                                                    )
                                                  redirects: []
                                                )
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: {($ Id.VSub_DollarName PACKAGEROOT)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Left_SingleQuote '\''>
                                                      pattern: (pat.Words words:[{(SQ )}])
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'hosttype='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'hosttype='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'hosttype='>
                                                                  name: hosttype
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {($ Id.VSub_Number 1)}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              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.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'run='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'run='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'run='> name:run)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_At '@'))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName PACKAGEROOT)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'PACKAGEROOT='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'PACKAGEROOT='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'PACKAGEROOT='>
                                      name: PACKAGEROOT
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name PWD>
                                        var_name: PWD
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VTest_ColonHyphen _>
                                            arg_word: 
                                              {
                                                (CommandSub
                                                  left_token: <Id.Left_Backtick '`'>
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <pwd>
                                                      more_env: []
                                                      words: [{<pwd>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  right: <Id.Backtick_Right '`'>
                                                )
                                              }
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'i='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'i='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                          op: assign_op.Equal
                          rhs: {<X> ($ Id.VSub_DollarName PACKAGEROOT)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {<'/'>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {($ Id.VSub_DollarName i)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName ifs)}
                        )
                      ]
                      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.ShAssignment
                              left: <Id.Lit_VarLike 'i='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'i='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName i)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <X>
                                  pattern: (pat.Words words:[{<X>}])
                                  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: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName PACKAGEROOT)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <'//'>
                          pattern: (pat.Words words:[{<'//'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'd='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'd='> name:d)
                                  op: assign_op.Equal
                                  rhs: {<'/'>}
                                )
                              ]
                              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 'd='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'd='> name:d)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <home>
                          pattern: (pat.Words words:[{<home>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'k='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'k='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              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 'k='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'k='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: (for_iter__Args)
                      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 i)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  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 'd='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'd='> name:d)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName d) <'/'> ($ Id.VSub_DollarName i)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName k)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <2>
                                  pattern: (pat.Words words:[{<2>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'k='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'k='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <1>
                                  pattern: (pat.Words words:[{<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'k='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'k='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <0>
                                  pattern: (pat.Words words:[{<0>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName i)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <arch>
                                          pattern: (pat.Words words:[{<arch>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'k='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'k='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'k='>
                                                      name: k
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<2>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <packageroot>
                                                          more_env: []
                                                          words: [
                                                            {<packageroot>}
                                                            {($ Id.VSub_DollarName d)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'PACKAGEROOT='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'PACKAGEROOT='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'PACKAGEROOT='>
                                                              name: PACKAGEROOT
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName d)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [16774 16781]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  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.ShAssignment
              left: <Id.Lit_VarLike 'INITROOT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'INITROOT='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INITROOT='> name:INITROOT)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName PACKAGEROOT) <'/src/cmd/INIT'>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$show'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName show)}
                {<Id.Lit_VarLike 'PACKAGEROOT='> ($ Id.VSub_DollarName PACKAGEROOT)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$show'>
              more_env: []
              words: [{($ Id.VSub_DollarName show)} {<export>} {<PACKAGEROOT>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<PACKAGEROOT>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName KEEP_HOSTTYPE)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <hostinfo>
                      more_env: []
                      words: [{<hostinfo>} {<type>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'HOSTTYPE='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'HOSTTYPE='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOSTTYPE='> name:HOSTTYPE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName _hostinfo_)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <1>
                  pattern: (pat.Words words:[{<1>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_PACKAGE_HOSTTYPE_='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_PACKAGE_HOSTTYPE_='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike '_PACKAGE_HOSTTYPE_='>
                              name: _PACKAGE_HOSTTYPE_
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName HOSTTYPE)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <export>
                      more_env: []
                      words: [{<export>} {<_PACKAGE_HOSTTYPE_>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$show'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName show)}
                {<Id.Lit_VarLike 'HOSTTYPE='> ($ Id.VSub_DollarName HOSTTYPE)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$show'>
              more_env: []
              words: [{($ Id.VSub_DollarName show)} {<export>} {<HOSTTYPE>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<HOSTTYPE>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'INSTALLROOT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'INSTALLROOT='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INSTALLROOT='> name:INSTALLROOT)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName PACKAGEROOT) <'/arch/'> ($ Id.VSub_DollarName HOSTTYPE)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <admin>
                  pattern: 
                    (pat.Words
                      words: [
                        {<admin>}
                        {<install>}
                        {<make>}
                        {<read>}
                        {<remove>}
                        {<test>}
                        {<verify>}
                        {<view>}
                        {<write>}
                      ]
                    )
                  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.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<Id.KW_Bang '!'>}
                                    {<-d>}
                                    {($ Id.VSub_DollarName INSTALLROOT)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'INSTALLROOT='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'INSTALLROOT='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'INSTALLROOT='>
                                      name: INSTALLROOT
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName PACKAGEROOT)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [16937 16948]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$show'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName show)}
                {<Id.Lit_VarLike 'INSTALLROOT='> ($ Id.VSub_DollarName INSTALLROOT)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$show'>
              more_env: []
              words: [{($ Id.VSub_DollarName show)} {<export>} {<INSTALLROOT>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<INSTALLROOT>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <export>
                  pattern: (pat.Words words:[{<export>} {<use>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <packageroot>
                          more_env: []
                          words: [{<packageroot>} {($ Id.VSub_DollarName PACKAGEROOT)}]
                          redirects: []
                          do_fork: T
                        )
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ ($ Id.VSub_DollarName command) <': '> 
                                    ($ Id.VSub_DollarName PACKAGEROOT) <': invalid package root directory'>
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: 
                            {($ Id.VSub_DollarName KEEP_HOSTTYPE) <Id.Lit_Colon ':'> 
                              ($ Id.VSub_DollarName hosttype)
                            }
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: 
                            (pat.Words
                              words: [{<0> <Id.Lit_Colon ':'> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-d>}
                                            {
                                              (BracedVarSub
                                                left: <Id.Left_DollarBrace '${'>
                                                token: <Id.VSub_Name PACKAGEROOT>
                                                var_name: PACKAGEROOT
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op: <Id.VTest_ColonHyphen _>
                                                    arg_word: {<.>}
                                                  )
                                                right: <Id.Right_DollarBrace '}'>
                                              ) <'/arch/'> ($ Id.VSub_DollarName hosttype)
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'KEEP_HOSTTYPE='>
                                              name: KEEP_HOSTTYPE
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'HOSTTYPE='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'HOSTTYPE='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'HOSTTYPE='>
                                              name: HOSTTYPE
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName hosttype)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [17045 17060]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {
                                      (DQ ($ Id.VSub_DollarName command) <': '> 
                                        ($ Id.VSub_DollarName hosttype) <': package root not found'>
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Exit exit>
                                  arg_word: {<1>}
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <packageroot>
                          more_env: []
                          words: [{<packageroot>} {($ Id.VSub_DollarName PACKAGEROOT)}]
                          redirects: []
                          do_fork: T
                        )
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName KEEP_PACKAGEROOT)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <1>
                                  pattern: (pat.Words words:[{<1>}])
                                  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.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                            ($ Id.VSub_DollarName PACKAGEROOT) <': must be in the package root directory tree'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <admin>
                          pattern: (pat.Words words:[{<admin>}])
                          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.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [i]
                              iterable: 
                                (for_iter.Words
                                  words: [{<arch>} {<'arch/'> ($ Id.VSub_DollarName HOSTTYPE)}]
                                )
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-d>}
                                            {($ Id.VSub_DollarName PACKAGEROOT) <'/'> 
                                              ($ Id.VSub_DollarName i)
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$exec'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName exec)}
                                            {<mkdir>}
                                            {($ Id.VSub_DollarName PACKAGEROOT) <'/'> 
                                              ($ Id.VSub_DollarName i)
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Exit exit>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [i]
                              iterable: (for_iter.Words words:[{<lib>}])
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-d>}
                                            {($ Id.VSub_DollarName INSTALLROOT) <'/'> 
                                              ($ Id.VSub_DollarName i)
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$exec'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName exec)}
                                            {<mkdir>}
                                            {($ Id.VSub_DollarName INSTALLROOT) <'/'> 
                                              ($ Id.VSub_DollarName i)
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Exit exit>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          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.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-d>} {($ Id.VSub_DollarName INITROOT)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [i]
                              iterable: 
                                (for_iter.Words
                                  words: [{<execrate>} {<ignore>} {<mamprobe>} {<silent>}]
                                )
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-h>}
                                            {($ Id.VSub_DollarName PACKAGEROOT) <'/bin/'> 
                                              ($ Id.VSub_DollarName i)
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '2>'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          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.Simple
                                                        blame_tok: <ls>
                                                        more_env: []
                                                        words: [
                                                          {<ls>}
                                                          {<-t>}
                                                          {($ Id.VSub_DollarName INITROOT) <'/'> 
                                                            ($ Id.VSub_DollarName i) <.sh>
                                                          }
                                                          {($ Id.VSub_DollarName PACKAGEROOT) 
                                                            <'/bin/'> ($ Id.VSub_DollarName i)
                                                          }
                                                        ]
                                                        redirects: [
                                                          (Redir
                                                            op: <Id.Redir_Great '2>'>
                                                            loc: (redir_loc.Fd fd:2)
                                                            arg: {<'/dev/null'>}
                                                          )
                                                        ]
                                                        do_fork: T
                                                      )
                                                    right: <Id.Backtick_Right '`'>
                                                  )
                                                }
                                            )
                                          arms_start: <Id.KW_In in>
                                          arms: [
                                            (CaseArm
                                              left: <Id.Left_DoubleQuote '"'>
                                              pattern: 
                                                (pat.Words
                                                  words: [
                                                    {
                                                      (DQ ($ Id.VSub_DollarName INITROOT) <'/'> 
                                                        ($ Id.VSub_DollarName i) <.sh>
                                                      ) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                )
                                              middle: <Id.Right_CasePat _>
                                              action: [
                                                (command.Simple
                                                  blame_tok: <note>
                                                  more_env: []
                                                  words: [
                                                    {<note>}
                                                    {<update>}
                                                    {($ Id.VSub_DollarName PACKAGEROOT) <'/bin/'> 
                                                      ($ Id.VSub_DollarName i)
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <shellmagic>
                                                  more_env: []
                                                  words: [{<shellmagic>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: {($ Id.VSub_DollarName SHELLMAGIC)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Left_SingleQuote '\''>
                                                      pattern: (pat.Words words:[{(SQ )}])
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.AndOr
                                                          children: [
                                                            (command.Simple
                                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName exec)}
                                                                {<cp>}
                                                                {($ Id.VSub_DollarName INITROOT) 
                                                                  <'/'> ($ Id.VSub_DollarName i) <.sh>
                                                                }
                                                                {($ Id.VSub_DollarName PACKAGEROOT) 
                                                                  <'/bin/'> ($ Id.VSub_DollarName i)
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ControlFlow
                                                              keyword: <Id.ControlFlow_Exit exit>
                                                            )
                                                          ]
                                                          ops: [<Id.Op_DPipe _>]
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                    (CaseArm
                                                      left: <Id.Lit_Star '*'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [{<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 exec)}
                                                            )
                                                          arms_start: <Id.KW_In in>
                                                          arms: [
                                                            (CaseArm
                                                              left: <Id.Left_SingleQuote '\''>
                                                              pattern: (pat.Words words:[{(SQ )}])
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.AndOr
                                                                  children: [
                                                                    (BraceGroup
                                                                      left: <Id.Lit_LBrace '{'>
                                                                      children: [
                                                                        (command.Simple
                                                                          blame_tok: <echo>
                                                                          more_env: []
                                                                          words: [
                                                                            {<echo>}
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName SHELLMAGIC
                                                                                )
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: <cat>
                                                                          more_env: []
                                                                          words: [
                                                                            {<cat>}
                                                                            {
                                                                              ($ Id.VSub_DollarName 
INITROOT
                                                                              ) <'/'> ($ Id.VSub_DollarName i) <.sh>
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                      redirects: [
                                                                        (Redir
                                                                          op: <Id.Redir_Great '>'>
                                                                          loc: (redir_loc.Fd fd:1)
                                                                          arg: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
PACKAGEROOT
                                                                              ) <'/bin/'> ($ Id.VSub_DollarName i)
                                                                            }
                                                                        )
                                                                      ]
                                                                      right: <Id.Lit_RBrace '}'>
                                                                    )
                                                                    (command.ControlFlow
                                                                      keyword: 
                                                                        <Id.ControlFlow_Exit exit>
                                                                    )
                                                                  ]
                                                                  ops: [<Id.Op_DPipe _>]
                                                                )
                                                              ]
                                                              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: <echo>
                                                                  more_env: []
                                                                  words: [
                                                                    {<echo>}
                                                                    {
                                                                      (DQ <'{\n'> <'echo '> 
                                                                        (word_part.EscapedLiteral
                                                                          token: 
                                                                            <Id.Lit_EscapedChar 
'\\"'
                                                                            >
                                                                          ch: '"'
                                                                        ) ($ Id.VSub_DollarName SHELLMAGIC) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                                                                        <'\n'> <'cat '> ($ Id.VSub_DollarName INITROOT) <'/'> ($ Id.VSub_DollarName i) <'.sh\n'> <'} > '> 
                                                                        ($ Id.VSub_DollarName 
PACKAGEROOT
                                                                        ) <'/bin/'> ($ Id.VSub_DollarName i)
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                          ]
                                                          arms_end: <Id.KW_Esac esac>
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                                (command.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <Id.VSub_DollarName '$exec'>
                                                      more_env: []
                                                      words: [
                                                        {($ Id.VSub_DollarName exec)}
                                                        {<chmod>}
                                                        {<Id.Lit_Other '+'> <x>}
                                                        {($ Id.VSub_DollarName PACKAGEROOT) <'/bin/'> 
                                                          ($ Id.VSub_DollarName i)
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Exit exit>
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DPipe _>]
                                                )
                                              ]
                                              right: <Id.Op_DSemi _>
                                            )
                                          ]
                                          arms_end: <Id.KW_Esac esac>
                                          redirects: []
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          spids: [17263 17272]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'path='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'path='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'path='> name:path)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName PATH)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'PATH='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'PATH='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                  op: assign_op.Equal
                  rhs: 
                    {($ Id.VSub_DollarName INSTALLROOT) <'/bin'> <Id.Lit_Colon ':'> 
                      ($ Id.VSub_DollarName PACKAGEROOT) <'/bin'> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName PATH)
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <checkcc>
              more_env: []
              words: [{<checkcc>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'PATH='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'PATH='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName path)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName cc)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-f>} {($ Id.VSub_DollarName INITROOT) <'/hello.c'>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Subshell
                              left: <Id.Op_LParen _>
                              child: 
                                (command.CommandList
                                  children: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <cd>
                                          more_env: []
                                          words: [{<cd>} {<'/tmp'>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Exit exit>
                                          arg_word: {<3>}
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <cp>
                                          more_env: []
                                          words: [
                                            {<cp>}
                                            {($ Id.VSub_DollarName INITROOT) <'/hello.c'>}
                                            {<pkg> ($ Id.VSub_Dollar '$') <.c>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Exit exit>
                                          arg_word: {<3>}
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$cc'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName cc)}
                                            {<-o>}
                                            {<pkg> ($ Id.VSub_Dollar '$') <.exe>}
                                            {<pkg> ($ Id.VSub_Dollar '$') <.c>}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<pkg> ($ Id.VSub_Dollar '$') <.e>}
                                            )
                                            (Redir
                                              op: <Id.Redir_GreatAnd '2>&'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<1>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <Id.VSub_DollarName '$cc'>
                                                          more_env: []
                                                          words: [
                                                            {($ Id.VSub_DollarName cc)}
                                                            {<-Dnew> <Id.Lit_Equals '='> <old>}
                                                            {<-o>}
                                                            {<pkg> ($ Id.VSub_Dollar '$') <.exe>}
                                                            {<pkg> ($ Id.VSub_Dollar '$') <.c>}
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_Great '>'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: {<'/dev/null'>}
                                                            )
                                                            (Redir
                                                              op: <Id.Redir_GreatAnd '2>&'>
                                                              loc: (redir_loc.Fd fd:2)
                                                              arg: {<1>}
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                                            (${ Id.VSub_Name warn) ($ Id.VSub_DollarName CC) <': must be a C compiler (not C++)'>
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_GreatAnd '>&'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {<2>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [17614 17640]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.Simple
                                                  blame_tok: <cat>
                                                  more_env: []
                                                  words: [{<cat>} {<pkg> ($ Id.VSub_Dollar '$') <.e>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [
                                                    {<echo>}
                                                    {
                                                      (DQ ($ Id.VSub_DollarName command) <': '> 
                                                        (${ Id.VSub_Name warn) ($ Id.VSub_DollarName CC) <': failed to compile and link '> ($ Id.VSub_DollarName INITROOT) 
                                                        <'/hello.c -- is it a C compiler?'>
                                                      )
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_GreatAnd '>&'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {<2>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Exit exit>
                                              arg_word: {<2>}
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <'./pkg'>
                                                  more_env: []
                                                  words: [{<'./pkg'> ($ Id.VSub_Dollar '$') <.exe>}]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {<'/dev/null'>}
                                                    )
                                                    (Redir
                                                      op: <Id.Redir_GreatAnd '2>&'>
                                                      loc: (redir_loc.Fd fd:2)
                                                      arg: {<1>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (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: {<0>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [17696 17709]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (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: []
                                    )
                                    (command.Simple
                                      blame_tok: <rm>
                                      more_env: []
                                      words: [
                                        {<rm>}
                                        {<-f>}
                                        {<pkg> ($ Id.VSub_Dollar '$') <.> <Id.Lit_Star '*'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {($ Id.VSub_DollarName code)}
                                    )
                                  ]
                                )
                              right: <Id.Right_Subshell _>
                              redirects: []
                            )
                            (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: {($ Id.VSub_QMark '?')}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName code)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <1>
                                  pattern: (pat.Words words:[{<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'CROSS='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'CROSS='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'CROSS='>
                                              name: CROSS
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          spids: [17540 17550]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'EXECTYPE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'EXECTYPE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXECTYPE='> name:EXECTYPE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName HOSTTYPE)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'EXECROOT='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'EXECROOT='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXECROOT='> name:EXECROOT)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName INSTALLROOT)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName CROSS)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'abi='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'abi='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'abi='> name:abi)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName HOSTTYPE)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <sgi.mips>
                          pattern: 
                            (pat.Words
                              words: [
                                {<sgi.mips> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'x='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'x='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                                  op: assign_op.Equal
                                  rhs: {<rld>}
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.AndOr
                                          children: [
                                            (command.Simple
                                              blame_tok: <executable>
                                              more_env: []
                                              words: [
                                                {<executable>}
                                                {<'/lib32/'> ($ Id.VSub_DollarName x)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <executable>
                                              more_env: []
                                              words: [
                                                {<executable>}
                                                {<'/lib64/'> ($ Id.VSub_DollarName x)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          ops: [<Id.Op_DPipe _>]
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName INSTALLROOT)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <'/sgi.mips'> <Id.Lit_LBracket '['> 
                                                  <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'u='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'u='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'u='>
                                                      name: u
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: <echo>
                                                                more_env: []
                                                                words: [
                                                                  {<echo>}
                                                                  {
                                                                    ($ Id.VSub_DollarName INSTALLROOT)
                                                                  }
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: <sed>
                                                                more_env: []
                                                                words: [
                                                                  {<sed>}
                                                                  {<-e>}
                                                                  {(SQ <'s,-[^-/]*$,,'>)}
                                                                  {<-e>}
                                                                  {(SQ <'s,.$,,'>)}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              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 'u='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'u='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'u='>
                                                      name: u
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [a]
                                      iterable: 
                                        (for_iter.Words
                                          words: [
                                            {(DQ <'n=2 v= l='>)}
                                            {(DQ <'n=3 v=N32 l=lib32'>)}
                                            {(DQ <'n=4-n32 v=N32 l=lib32'>)}
                                            {(DQ <'n=4 v=64 l=lib64'>)}
                                          ]
                                        )
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [{<eval>} {($ Id.VSub_DollarName a)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName v)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <N32>
                                                  pattern: (pat.Words words:[{<N32>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {($ Id.VSub_DollarName n) 
                                                              <Id.Lit_Colon ':'> ($ Id.VSub_DollarName HOSTTYPE)
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> <-n32> 
                                                                  <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <-n32>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: []
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> <-n32> 
                                                                  <Id.Lit_Colon ':'> <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.Lit_Colon ':'> 
                                                                  <Id.Lit_Star '*'> <-n32>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ControlFlow
                                                              keyword: 
                                                                <Id.ControlFlow_Continue continue>
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName l)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Simple
                                                                  blame_tok: <executable>
                                                                  more_env: []
                                                                  words: [
                                                                    {<executable>}
                                                                    {<Id.KW_Bang '!'>}
                                                                    {<'/'> ($ Id.VSub_DollarName l) 
                                                                      <'/'> ($ Id.VSub_DollarName x)
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ControlFlow
                                                              keyword: 
                                                                <Id.ControlFlow_Continue continue>
                                                            )
                                                          ]
                                                          spids: [17994 18006]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName u)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName HOSTTYPE)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <sgi.mips>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<sgi.mips> ($ Id.VSub_DollarName n)}
                                                                {<sgi.mips> ($ Id.VSub_DollarName n) 
                                                                  <-> <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'abi='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'abi='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'abi='>
                                                                      name: abi
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName abi) 
                                                                        <' \'d='> ($ Id.VSub_DollarName INSTALLROOT) <' v='> ($ Id.VSub_DollarName v) <'\''>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              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: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<-d>}
                                                                    {($ Id.VSub_DollarName u) 
                                                                      ($ Id.VSub_DollarName n)
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'abi='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'abi='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'abi='>
                                                                      name: abi
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName abi) 
                                                                        <' \'d='> ($ Id.VSub_DollarName u) ($ Id.VSub_DollarName n) <' v='> ($ Id.VSub_DollarName v) <'\''>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [18080 18090]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  spids: [17819 17834]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName abi)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'abi='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'abi='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'abi='> name:abi)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'\'d='> ($ Id.VSub_DollarName INSTALLROOT) <' v=\''>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {
                          (DQ <'\n'> <'\t\t\tfor a in '> ($ Id.VSub_DollarName abi) <'\n'> 
                            <'\t\t\tdo\teval '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'a\n'> <'\t\t\t\teval '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\"'>
                              ch: '"'
                            ) <'\n'> <'\t\t\t\t\tcase '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <LD_LIBRARY> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{v}_PATH: in\n'> 
                            <'\t\t\t\t\t'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'d/lib:*)\n'> <'\t\t\t\t\t\t;;\n'> <'\t\t\t\t\t*)\tx='> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\\\'>
                              ch: '\\'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <LD_LIBRARY> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'{v}_PATH\n'> <'\t\t\t\t\t\tcase '> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\\\'>
                              ch: '\\'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'x in\n'> 
                            <'\t\t\t\t\t\t\'\'|:*)\t;;\n'> <'\t\t\t\t\t\t*)\tx=:'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'x ;;\n'> <'\t\t\t\t\t\tesac\n'> <'\t\t\t\t\t\tLD_LIBRARY'> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                              ch: '$'
                            ) <'{v}_PATH='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'d/lib'> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\\\'>
                              ch: '\\'
                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'x\n'> 
                            <'\t\t\t\t\t\texport LD_LIBRARY'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'{v}_PATH\n'> <'\t\t\t\t\t\tp=1\n'> 
                            <'\t\t\t\t\t\t;;\n'> <'\t\t\t\t\tesac\n'> <'\t\t\t\t'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                            <'\n'> <'\t\t\tdone\n'> <'\t\t'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName LD_LIBRARY_PATH)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          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.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [d]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName lib)}])
                              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 HOSTTYPE)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <64>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-d>}
                                                            {(${ Id.VSub_Name d) <64>}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'd='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'd='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'd='>
                                                              name: d
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(${ Id.VSub_Name d) <64>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [18254 18266]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {<Id.Lit_Colon ':'> 
                                              ($ Id.VSub_DollarName LD_LIBRARY_PATH) <Id.Lit_Colon ':'>
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                                                  ($ Id.VSub_DollarName d) <Id.Lit_Colon ':'> <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.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-d>}
                                                            {($ Id.VSub_DollarName d)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'LD_LIBRARY_PATH='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'LD_LIBRARY_PATH='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'LD_LIBRARY_PATH='>
                                                              name: LD_LIBRARY_PATH
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName LD_LIBRARY_PATH) 
                                                              <Id.Lit_Colon ':'> ($ Id.VSub_DollarName d)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'p='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'p='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'p='>
                                                              name: p
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<1>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [18306 18315]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          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.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName p)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$show'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName show)}
                                {<Id.Lit_VarLike 'LD_LIBRARY_PATH='> 
                                  ($ Id.VSub_DollarName LD_LIBRARY_PATH)
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$show'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName show)} {<export>} {<LD_LIBRARY_PATH>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <export>
                              more_env: []
                              words: [{<export>} {<LD_LIBRARY_PATH>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName LIBPATH) <Id.Lit_Colon ':'>})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.VSub_DollarName '$INSTALLROOT'>
                          pattern: 
                            (pat.Words
                              words: [
                                {($ Id.VSub_DollarName INSTALLROOT) <'/bin'> <Id.Lit_Colon ':'> 
                                  ($ Id.VSub_DollarName INSTALLROOT) <'/lib'> <Id.Lit_Colon ':'> <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.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName LIBPATH)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'LIBPATH='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'LIBPATH='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'LIBPATH='>
                                              name: LIBPATH
                                            )
                                          op: assign_op.Equal
                                          rhs: {<'/usr/lib'> <Id.Lit_Colon ':'> <'/lib'>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'LIBPATH='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'LIBPATH='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'LIBPATH='>
                                      name: LIBPATH
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/bin'> <Id.Lit_Colon ':'> 
                                      ($ Id.VSub_DollarName INSTALLROOT) <'/lib'> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName LIBPATH)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$show'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName show)}
                                {<Id.Lit_VarLike 'LIBPATH='> ($ Id.VSub_DollarName LIBPATH)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$show'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName show)} {<export>} {<LIBPATH>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <export>
                              more_env: []
                              words: [{<export>} {<LIBPATH>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: {($ Id.VSub_DollarName SHLIB_PATH) <Id.Lit_Colon ':'>}
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.VSub_DollarName '$INSTALLROOT'>
                          pattern: 
                            (pat.Words
                              words: [
                                {($ Id.VSub_DollarName INSTALLROOT) <'/lib'> <Id.Lit_Colon ':'> 
                                  <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_VarLike 'SHLIB_PATH='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'SHLIB_PATH='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'SHLIB_PATH='>
                                      name: SHLIB_PATH
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/lib'> 
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name SHLIB_PATH>
                                        var_name: SHLIB_PATH
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VTest_ColonPlus _>
                                            arg_word: {<':'> ($ Id.VSub_DollarName SHLIB_PATH)}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$show'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName show)}
                                {<Id.Lit_VarLike 'SHLIB_PATH='> ($ Id.VSub_DollarName SHLIB_PATH)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$show'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName show)} {<export>} {<SHLIB_PATH>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <export>
                              more_env: []
                              words: [{<export>} {<SHLIB_PATH>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: {($ Id.VSub_DollarName DYLD_LIBRARY_PATH) <Id.Lit_Colon ':'>}
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.VSub_DollarName '$INSTALLROOT'>
                          pattern: 
                            (pat.Words
                              words: [
                                {($ Id.VSub_DollarName INSTALLROOT) <'/lib'> <Id.Lit_Colon ':'> 
                                  <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_VarLike 'DYLD_LIBRARY_PATH='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'DYLD_LIBRARY_PATH='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'DYLD_LIBRARY_PATH='>
                                      name: DYLD_LIBRARY_PATH
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/lib'> 
                                      (BracedVarSub
                                        left: <Id.Left_DollarBrace '${'>
                                        token: <Id.VSub_Name DYLD_LIBRARY_PATH>
                                        var_name: DYLD_LIBRARY_PATH
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op: <Id.VTest_ColonPlus _>
                                            arg_word: {<':'> ($ Id.VSub_DollarName DYLD_LIBRARY_PATH)}
                                          )
                                        right: <Id.Right_DollarBrace '}'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$show'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName show)}
                                {<Id.Lit_VarLike 'DYLD_LIBRARY_PATH='> 
                                  ($ Id.VSub_DollarName DYLD_LIBRARY_PATH)
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$show'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName show)} {<export>} {<DYLD_LIBRARY_PATH>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <export>
                              more_env: []
                              words: [{<export>} {<DYLD_LIBRARY_PATH>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName _RLD_ROOT)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.VSub_DollarName '$INSTALLROOT'>
                          pattern: 
                            (pat.Words
                              words: [{($ Id.VSub_DollarName INSTALLROOT) <'/arch'> <Id.Lit_Star '*'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ <':'>)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_RLD_ROOT='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_RLD_ROOT='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_RLD_ROOT='>
                                      name: _RLD_ROOT
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/arch'> <Id.Lit_Colon ':'> 
                                      <'/'>
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <'/'>
                          pattern: 
                            (pat.Words
                              words: [{<'/'>} {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <'/'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_RLD_ROOT='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_RLD_ROOT='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_RLD_ROOT='>
                                      name: _RLD_ROOT
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/arch'> <Id.Lit_Colon ':'> 
                                      ($ Id.VSub_DollarName _RLD_ROOT)
                                    }
                                )
                              ]
                              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 '_RLD_ROOT='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_RLD_ROOT='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_RLD_ROOT='>
                                      name: _RLD_ROOT
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/arch'> <Id.Lit_Colon ':'> 
                                      ($ Id.VSub_DollarName _RLD_ROOT) <Id.Lit_Colon ':'> <'/'>
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$show'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName show)}
                        {<Id.Lit_VarLike '_RLD_ROOT='> ($ Id.VSub_DollarName _RLD_ROOT)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$show'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName show)} {<export>} {<_RLD_ROOT>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <export>
                      more_env: []
                      words: [{<export>} {<_RLD_ROOT>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName PATH) <Id.Lit_Colon ':'>})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.VSub_DollarName '$PACKAGEROOT'>
                          pattern: 
                            (pat.Words
                              words: [
                                {($ Id.VSub_DollarName PACKAGEROOT) <'/bin'> <Id.Lit_Colon ':'> 
                                  <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_VarLike 'PATH='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'PATH='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName PACKAGEROOT) <'/bin'> <Id.Lit_Colon ':'> 
                                      ($ Id.VSub_DollarName PATH)
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName PATH) <Id.Lit_Colon ':'>})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.VSub_DollarName '$INSTALLROOT'>
                          pattern: 
                            (pat.Words
                              words: [
                                {($ Id.VSub_DollarName INSTALLROOT) <'/bin'> <Id.Lit_Colon ':'> 
                                  <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_VarLike 'PATH='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'PATH='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/bin'> <Id.Lit_Colon ':'> 
                                      ($ Id.VSub_DollarName PATH)
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$show'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName show)}
                        {<Id.Lit_VarLike 'PATH='> ($ Id.VSub_DollarName PATH)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$show'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName show)} {<export>} {<PATH>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <export>
                      more_env: []
                      words: [{<export>} {<PATH>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: (for_iter.Words words:[{<package>} {<proto>} {<nmake>}])
                      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.Simple
                                          blame_tok: <onpath>
                                          more_env: []
                                          words: [{<onpath>} {($ Id.VSub_DollarName i)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'EXECROOT='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'EXECROOT='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'EXECROOT='>
                                              name: EXECROOT
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [
                                                          {<echo>}
                                                          {($ Id.VSub_DollarName _onpath_)}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <sed>
                                                        more_env: []
                                                        words: [
                                                          {<sed>}
                                                          {<-e>}
                                                          {(SQ <'s,//*[^/]*//*[^/]*$,,'>)}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'EXECTYPE='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'EXECTYPE='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'EXECTYPE='>
                                              name: EXECTYPE
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [
                                                          {<echo>}
                                                          {($ Id.VSub_DollarName EXECROOT)}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <sed>
                                                        more_env: []
                                                        words: [{<sed>} {<-e>} {(SQ <'s,.*/,,'>)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [18772 18779]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName HOSTTYPE)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.VSub_DollarName '$EXECTYPE'>
                          pattern: (pat.Words words:[{($ Id.VSub_DollarName EXECTYPE)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'OCC='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'OCC='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OCC='> name:OCC)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName CC)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'CC='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'CC='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                                  op: assign_op.Equal
                                  rhs: {<cc>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <hostinfo>
                              more_env: []
                              words: [{<hostinfo>} {<type>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'EXECTYPE='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'EXECTYPE='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'EXECTYPE='>
                                      name: EXECTYPE
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName _hostinfo_)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName HOSTTYPE)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.VSub_DollarName '$EXECTYPE'>
                                  pattern: (pat.Words words:[{($ Id.VSub_DollarName EXECTYPE)}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                            ($ Id.VSub_DollarName CC) <': seems to be a cross-compiler'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) 
                                            <': set HOSTTYPE to something other than the native '> ($ Id.VSub_DollarName EXECTYPE)
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$show'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName show)}
                        {<Id.Lit_VarLike 'EXECTYPE='> ($ Id.VSub_DollarName EXECTYPE)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$show'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName show)} {<export>} {<EXECTYPE>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <export>
                      more_env: []
                      words: [{<export>} {<EXECTYPE>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$show'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName show)}
                {<Id.Lit_VarLike 'EXECROOT='> ($ Id.VSub_DollarName EXECROOT)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$show'>
              more_env: []
              words: [{($ Id.VSub_DollarName show)} {<export>} {<EXECROOT>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<EXECROOT>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'OK='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'OK='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OK='> name:OK)
                  op: assign_op.Equal
                  rhs: {<ok>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'KSH='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'KSH='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KSH='> name:KSH)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName EXECROOT) <'/bin/ksh'>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MAKE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MAKE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAKE='> name:MAKE)
                  op: assign_op.Equal
                  rhs: {<nmake>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'NMAKE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'NMAKE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NMAKE='> name:NMAKE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName EXECROOT) <'/bin/'> ($ Id.VSub_DollarName MAKE)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SUM='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SUM='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUM='> name:SUM)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName EXECROOT) <'/bin/sum'>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'TEE='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'TEE='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEE='> name:TEE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName EXECROOT) <'/bin/tee'>}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName KEEP_SHELL)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <executable>
                          more_env: []
                          words: [{<executable>} {(DQ ($ Id.VSub_DollarName SHELL))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'SHELL='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'SHELL='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SHELL='> name:SHELL)
                              op: assign_op.Equal
                              rhs: (rhs_word__Empty)
                            )
                          ]
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName SHELL)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <checksh>
                                  more_env: []
                                  words: [{<checksh>} {($ Id.VSub_DollarName SHELL)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'SHELL='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'SHELL='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'SHELL='>
                                          name: SHELL
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName SHELL)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: 
                            (pat.Words
                              words: [
                                {(SQ )}
                                {<'/bin/'> <Id.Lit_Star '*'>}
                                {<'/usr/bin/'> <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 SHELL)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'SHELL='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'SHELL='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'SHELL='>
                                              name: SHELL
                                            )
                                          op: assign_op.Equal
                                          rhs: {<'/bin/sh'>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [i]
                              iterable: (for_iter.Words words:[{<ksh>} {<sh>} {<bash>}])
                              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.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <onpath>
                                                      more_env: []
                                                      words: [{<onpath>} {($ Id.VSub_DollarName i)}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <checksh>
                                                      more_env: []
                                                      words: [
                                                        {<checksh>}
                                                        {($ Id.VSub_DollarName _onpath_)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DAmp _>]
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'SHELL='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'SHELL='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'SHELL='>
                                                      name: SHELL
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName _onpath_)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          spids: [19093 19106]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [{<Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'> <ksh>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <executable>
                                          more_env: []
                                          words: [{<executable>} {($ Id.VSub_DollarName KSH)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'SHELL='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'SHELL='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'SHELL='>
                                              name: SHELL
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName KSH)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [19130 19137]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName SHELL)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <'/bin/sh'>
                  pattern: (pat.Words words:[{<'/bin/sh'>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'SHELL='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'SHELL='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SHELL='> name:SHELL)
                          op: assign_op.Equal
                          rhs: {<'/bin/sh'>}
                        )
                      ]
                      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: <Id.VSub_DollarName '$SHELL'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName SHELL)} {<-c>} {(SQ <'trap "exit 0" 0; exit 1'>)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '2>'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_QMark '?')})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'SHELL='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'SHELL='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SHELL='> name:SHELL)
                                  op: assign_op.Equal
                                  rhs: {<'/bin/sh'>}
                                )
                              ]
                              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: <Id.VSub_DollarName '$SHELL'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName SHELL)}
                                {<-c>}
                                {(DQ <'date | '> ($ Id.VSub_DollarName SHELL) <' -c \'read x\''>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_QMark '?')})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <0>
                                  pattern: (pat.Words words:[{<0>}])
                                  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_VarLike 'SHELL='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'SHELL='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'SHELL='>
                                              name: SHELL
                                            )
                                          op: assign_op.Equal
                                          rhs: {<'/bin/sh'>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<SHELL>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$show'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName show)}
                {<Id.Lit_VarLike 'SHELL='> ($ Id.VSub_DollarName SHELL)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$show'>
              more_env: []
              words: [{($ Id.VSub_DollarName show)} {<export>} {<SHELL>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'COSHELL='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'COSHELL='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COSHELL='> name:COSHELL)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName SHELL)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<COSHELL>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$show'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName show)}
                {<Id.Lit_VarLike 'COSHELL='> ($ Id.VSub_DollarName COSHELL)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$show'>
              more_env: []
              words: [{($ Id.VSub_DollarName show)} {<export>} {<COSHELL>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <use>
                  pattern: (pat.Words words:[{<use>}])
                  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_VarLike 'ENV='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ENV='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ENV='> name:ENV)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ERROR_OPTIONS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ERROR_OPTIONS='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'ERROR_OPTIONS='>
                              name: ERROR_OPTIONS
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <export>
                      more_env: []
                      words: [{<export>} {<ENV>} {<ERROR_OPTIONS>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName USER_VPATH)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName VPATH)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'IFS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(SQ <':'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName VPATH)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'IFS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName ifs)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'USER_VPATH='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'USER_VPATH='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'USER_VPATH='>
                                      name: USER_VPATH
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [i]
                              iterable: (for_iter__Args)
                              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 i)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <'/arch/'> 
                                                  ($ Id.VSub_DollarName HOSTTYPE)
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <'/arch/'> <Id.Lit_Star '*'> <'/'> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_Star '*'> <'/arch/'> <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.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <packageroot>
                                                  more_env: []
                                                  words: [{<packageroot>} {($ Id.VSub_DollarName i)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName USER_VPATH)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'USER_VPATH='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'USER_VPATH='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'USER_VPATH='>
                                                              name: USER_VPATH
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName i)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'USER_VPATH='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'USER_VPATH='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'USER_VPATH='>
                                                              name: USER_VPATH
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName USER_VPATH) 
                                                              <Id.Lit_Colon ':'> ($ Id.VSub_DollarName i)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          spids: [19452 19459]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName USER_VPATH)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {(SQ <':'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {(SQ )} {($ Id.VSub_DollarName USER_VPATH)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'IFS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'IFS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName ifs)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'USER_VPATH='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'USER_VPATH='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USER_VPATH='> name:USER_VPATH)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'USER_VPATH_CHAIN='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'USER_VPATH_CHAIN='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'USER_VPATH_CHAIN='>
                              name: USER_VPATH_CHAIN
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName PACKAGEROOT)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: (for_iter__Args)
                      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 i)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {(SQ )}
                                        {($ Id.VSub_DollarName PACKAGEROOT)}
                                        {($ Id.VSub_DollarName INSTALLROOT)}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_QMark '?'>
                                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'USER_VPATH='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'USER_VPATH='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'USER_VPATH='>
                                              name: USER_VPATH
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName USER_VPATH) <Id.Lit_Colon ':'> 
                                              ($ Id.VSub_DollarName i)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'USER_VPATH_CHAIN='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'USER_VPATH_CHAIN='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'USER_VPATH_CHAIN='>
                                              name: USER_VPATH_CHAIN
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName USER_VPATH_CHAIN) <' '> 
                                                ($ Id.VSub_DollarName p) <' '> ($ Id.VSub_DollarName i)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName i)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName PROTOROOT)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <->
                                          pattern: (pat.Words words:[{<->}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <executable>
                                                  more_env: []
                                                  words: [
                                                    {<executable>}
                                                    {($ Id.VSub_DollarName i) <'/bin/mamake'>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'PROTOROOT='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'PROTOROOT='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'PROTOROOT='>
                                                          name: PROTOROOT
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: (rhs_word__Empty)
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  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: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'PACKAGESRC='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'PACKAGESRC='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PACKAGESRC='> name:PACKAGESRC)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName PACKAGEROOT) <'/lib/package'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'PACKAGEBIN='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'PACKAGEBIN='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PACKAGEBIN='> name:PACKAGEBIN)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName INSTALLROOT) <'/lib/package'>}
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: 
        (case_arg.Word
          w: {($ Id.VSub_DollarName action) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName run)}
        )
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <use>
          pattern: (pat.Words words:[{<use> <Id.Lit_Colon ':'> <->}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName args)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (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: []
                  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: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'run='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'run='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'run='> name:run)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_At '@'))}
                )
              ]
              redirects: []
            )
          ]
          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.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-r>} {($ Id.VSub_DollarName INSTALLROOT) <'/lib/package/profile'>}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <.>
              more_env: []
              words: [{<.>} {($ Id.VSub_DollarName INSTALLROOT) <'/lib/package/profile'>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [19716 19725]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName HOSTTYPE)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <cygwin.>
          pattern: (pat.Words words:[{<cygwin.> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'lose='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'lose='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lose='> name:lose)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName CYGWIN)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <nontsec> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'lose='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'lose='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lose='> name:lose)
                          op: assign_op.Equal
                          rhs: {<ntsec>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <ntsec> <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_VarLike 'exe='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'exe='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exe='> name:exe)
                          op: assign_op.Equal
                          rhs: {<'/tmp/pkg'> ($ Id.VSub_Dollar '$') <.exe>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <rm>
                      more_env: []
                      words: [{<rm>} {<-f>} {($ Id.VSub_DollarName exe)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [{<Id.Lit_Colon ':'>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName exe)}
                        )
                      ]
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-x>} {($ Id.VSub_DollarName exe)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'lose='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'lose='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lose='> name:lose)
                                  op: assign_op.Equal
                                  rhs: {<ntsec>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [19803 19812]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName CYGWIN)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <nobinmode> <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 lose)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'lose='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'lose='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lose='> name:lose)
                                  op: assign_op.Equal
                                  rhs: {<binmode>}
                                )
                              ]
                              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 'lose='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'lose='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lose='> name:lose)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName lose) <' binmode'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName lose)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName HOSTTYPE) 
                            <': export \''> ($ Id.VSub_DollarName lose) <'\' in CYGWIN or languish in windows'>
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'VIEW_bin='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'VIEW_bin='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VIEW_bin='> name:VIEW_bin)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName INSTALLROOT)}
        )
        (AssignPair
          left: <Id.Lit_VarLike 'VIEW_src='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VIEW_src='> name:VIEW_src)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName PACKAGEROOT)}
        )
        (AssignPair
          left: <Id.Lit_VarLike 'VIEW_all='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VIEW_all='> name:VIEW_all)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName INSTALLROOT) <' '> ($ Id.VSub_DollarName PACKAGEROOT))}
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.AndOr
                  children: [
                    (command.Subshell
                      left: <Id.Op_LParen _>
                      child: 
                        (command.Simple
                          blame_tok: <vpath>
                          more_env: []
                          words: [
                            {<vpath>}
                            {($ Id.VSub_DollarName INSTALLROOT)}
                            {($ Id.VSub_DollarName PACKAGEROOT)}
                            {($ Id.VSub_DollarName USER_VPATH_CHAIN)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      right: <Id.Right_Subshell _>
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                        (Redir
                          op: <Id.Redir_GreatAnd '2>&'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<1>}
                        )
                      ]
                    )
                    (command.Simple
                      blame_tok: <vpath>
                      more_env: []
                      words: [
                        {<vpath>}
                        {($ Id.VSub_DollarName INSTALLROOT)}
                        {($ Id.VSub_DollarName PACKAGEROOT)}
                        {($ Id.VSub_DollarName USER_VPATH_CHAIN)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_DAmp _>]
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$show'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName show)}
                {<vpath>}
                {($ Id.VSub_DollarName INSTALLROOT)}
                {($ Id.VSub_DollarName PACKAGEROOT)}
                {($ Id.VSub_DollarName USER_VPATH_CHAIN)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          spids: [19937 19966]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShAssignment
          left: <Id.Lit_VarLike 'VPATH='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'VPATH='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VPATH='> name:VPATH)
              op: assign_op.Equal
              rhs: 
                {($ Id.VSub_DollarName INSTALLROOT) <Id.Lit_Colon ':'> 
                  ($ Id.VSub_DollarName PACKAGEROOT) ($ Id.VSub_DollarName USER_VPATH)
                }
            )
          ]
          redirects: []
        )
        (command.Simple
          blame_tok: <Id.VSub_DollarName '$show'>
          more_env: []
          words: [
            {($ Id.VSub_DollarName show)}
            {<Id.Lit_VarLike 'VPATH='> ($ Id.VSub_DollarName VPATH)}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <Id.VSub_DollarName '$show'>
          more_env: []
          words: [{($ Id.VSub_DollarName show)} {<export>} {<VPATH>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <export>
          more_env: []
          words: [{<export>} {<VPATH>}]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'IFS='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'IFS='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
              op: assign_op.Equal
              rhs: {(SQ <':'>)}
            )
          ]
          redirects: []
        )
        (command.Simple
          blame_tok: <set>
          more_env: []
          words: [{<set>} {(SQ )} {($ Id.VSub_DollarName VPATH)}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <shift>
          more_env: []
          words: [{<shift>}]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'IFS='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'IFS='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
              op: assign_op.Equal
              rhs: {($ Id.VSub_DollarName ifs)}
            )
          ]
          redirects: []
        )
        (command.ForEach
          keyword: <Id.KW_For for>
          iter_names: [i]
          iterable: (for_iter__Args)
          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 i)})
                  arms_start: <Id.KW_In in>
                  arms: [
                    (CaseArm
                      left: <Id.Lit_Star '*'>
                      pattern: 
                        (pat.Words
                          words: [
                            {<Id.Lit_Star '*'> <'/arch/'> <Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'>}
                          ]
                        )
                      middle: <Id.Right_CasePat _>
                      action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'VIEW_src='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'VIEW_src='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VIEW_src='> name:VIEW_src)
                              op: assign_op.Equal
                              rhs: 
                                {(DQ ($ Id.VSub_DollarName VIEW_src) <' '> ($ Id.VSub_DollarName i))}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      right: <Id.Op_DSemi _>
                    )
                    (CaseArm
                      left: <Id.Lit_Star '*'>
                      pattern: (pat.Words words:[{<Id.Lit_Star '*'> <'/arch/'> <Id.Lit_Star '*'>}])
                      middle: <Id.Right_CasePat _>
                      action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'VIEW_bin='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'VIEW_bin='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VIEW_bin='> name:VIEW_bin)
                              op: assign_op.Equal
                              rhs: 
                                {(DQ ($ Id.VSub_DollarName VIEW_bin) <' '> ($ Id.VSub_DollarName i))}
                            )
                          ]
                          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 'VIEW_src='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'VIEW_src='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VIEW_src='> name:VIEW_src)
                              op: assign_op.Equal
                              rhs: 
                                {(DQ ($ Id.VSub_DollarName VIEW_src) <' '> ($ Id.VSub_DollarName i))}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      right: <Id.Op_DSemi _>
                    )
                  ]
                  arms_end: <Id.KW_Esac esac>
                  redirects: []
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'VIEW_all='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'VIEW_all='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VIEW_all='> name:VIEW_all)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName VIEW_all) <' '> ($ Id.VSub_DollarName i))}
                    )
                  ]
                  redirects: []
                )
              ]
              right: <Id.KW_Done done>
            )
          redirects: []
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShFunction
      name_tok: <view>
      name: view
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <->
                  pattern: 
                    (pat.Words
                      words: [{<-> <Id.Lit_LBracket '['> <dfsx> <Id.Lit_RBracket ']'>}]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike '_view_T_='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike '_view_T_='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_view_T_='> name:_view_T_)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_Number 1)}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  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 '_view_T_='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_view_T_='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_view_T_='> name:_view_T_)
                          op: assign_op.Equal
                          rhs: {<-f>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <->
                  pattern: (pat.Words words:[{<->}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_view_t_='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_view_t_='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_view_t_='> name:_view_t_)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      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 '_view_t_='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_view_t_='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_view_t_='> name:_view_t_)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      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
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <all>
                  pattern: (pat.Words words:[{<all>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_view_v_='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_view_v_='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_view_v_='> name:_view_v_)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName VIEW_all)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <bin>
                  pattern: (pat.Words words:[{<bin>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_view_v_='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_view_v_='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_view_v_='> name:_view_v_)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName VIEW_bin)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <src>
                  pattern: (pat.Words words:[{<src>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_view_v_='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_view_v_='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_view_v_='> name:_view_v_)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName VIEW_src)}
                        )
                      ]
                      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 '_view_v_='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_view_v_='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_view_v_='> name:_view_v_)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName VIEW_all)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <'/'>
                  pattern: (pat.Words words:[{<'/'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {($ Id.VSub_DollarName _view_T_)}
                                    {($ Id.VSub_Number 1)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_view_='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_view_='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_view_='> name:_view_)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [20250 20259]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [_view_d_]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName _view_v_)}])
                      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.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {($ Id.VSub_DollarName _view_T_)}
                                            {($ Id.VSub_DollarName _view_d_) <'/'> 
                                              ($ Id.VSub_Number 1)
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '_view_='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '_view_='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '_view_='>
                                              name: _view_
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName _view_d_) <'/'> 
                                              ($ Id.VSub_Number 1)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Return return>
                                      arg_word: {<0>}
                                    )
                                  ]
                                  spids: [20290 20301]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_view_='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_view_='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_view_='> name:_view_)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName _view_t_)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                        {($ Id.VSub_Number 1) <Id.Lit_Colon ':'>}
                        {($ Id.VSub_DollarName _view_t_)}
                        {<not>}
                        {<found>}
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <admin>
          pattern: (pat.Words words:[{<admin>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName admin_action)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <results>
                  pattern: (pat.Words words:[{<results>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'action='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'action='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'action='> name:action)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName admin_action)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {(SQ )} {($ Id.VSub_DollarName admin_args)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <shift>
                          more_env: []
                          words: [{<shift>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'admin_args='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'admin_args='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_args='> name:admin_args)
                          op: assign_op.Equal
                          rhs: {(DQ <'admin '> ($ Id.VSub_Star '*'))}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName admin_on)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'target='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'target='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName admin_args)}
                                )
                              ]
                              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 'target='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'target='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'on '> ($ Id.VSub_DollarName admin_on) <' '> 
                                        ($ Id.VSub_DollarName admin_args)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <release>
          pattern: (pat.Words words:[{<release>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName args)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'target='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'target='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              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.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <->
                          pattern: 
                            (pat.Words
                              words: [
                                {<->}
                                {<Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'target='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'target='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName target) <' '> ($ Id.VSub_Number 1))}
                                )
                              ]
                              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_Break break>)]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Star '*')}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <setup>
          pattern: (pat.Words words:[{<setup>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName args)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'types='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'types='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'types='> name:types)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'url='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'url='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'url='> name:url)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              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.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <-->
                          pattern: (pat.Words words:[{<-->}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <flat>
                          pattern: (pat.Words words:[{<flat>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'flat='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'flat='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'flat='> name:flat)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <'//'> <Id.Lit_Star '*'>}
                                {<Id.Lit_Star '*'> <.url>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'url='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'url='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'url='> name:url)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          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 'types='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'types='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'types='> name:types)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName types) <' '> ($ Id.VSub_Number 1))}
                                )
                              ]
                              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.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<Id.KW_Bang '!'>}
                            {<-d>}
                            {($ Id.VSub_DollarName PACKAGEROOT) <'/lib/package/tgz'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$exec'>
                          more_env: []
                          words: [
                            {($ Id.VSub_DollarName exec)}
                            {<mkdir>}
                            {<-p>}
                            {($ Id.VSub_DollarName PACKAGEROOT) <'/lib/package/tgz'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Exit exit>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  spids: [20713 20725]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName types) <' '>)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [{<Id.Lit_Star '*'> (DQ <' source '>) <Id.Lit_Star '*'>}]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (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.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ <'  '>)}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [{<Id.Lit_Star '*'> (DQ <' INIT '>) <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.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <view>
                                  more_env: []
                                  words: [{<view>} {<->} {<all>} {<'src/cmd/INIT'>}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <set>
                                  more_env: []
                                  words: [{<set>} {<INIT>} {(DQ ($ Id.VSub_At '@'))}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'packages='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'packages='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'packages='> name:packages)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            blame_tok: <Id.VSub_Number '$0'>
                            more_env: []
                            words: [
                              {($ Id.VSub_Number 0)}
                              {($ Id.VSub_DollarName global)}
                              {<authorize>}
                              {(DQ ($ Id.VSub_DollarName authorize))}
                              {<password>}
                              {(DQ ($ Id.VSub_DollarName password))}
                              {<update>}
                              {<setup>}
                              {($ Id.VSub_DollarName types)}
                              {($ Id.VSub_DollarName url)}
                              {(DQ ($ Id.VSub_At '@'))}
                              {<Id.Lit_VarLike 'PACKAGEROOT='> ($ Id.VSub_DollarName PACKAGEROOT)}
                            ]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName packages)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_Number '$0'>
                      more_env: []
                      words: [
                        {($ Id.VSub_Number 0)}
                        {($ Id.VSub_DollarName global)}
                        {<read>}
                        {($ Id.VSub_DollarName packages)}
                        {<Id.Lit_VarLike 'PACKAGEROOT='> ($ Id.VSub_DollarName PACKAGEROOT)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)
          ]
          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 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'target='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'target='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName args)}]
              redirects: []
              do_fork: T
            )
            (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.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (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.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )} {<->}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'target='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'target='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName target) <' '> 
                                        ($ Id.VSub_DollarName package)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'package='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'package='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'package='>
                                      name: package
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <view>
                                          more_env: []
                                          words: [
                                            {<view>}
                                            {<->}
                                            {<src>}
                                            {(DQ <'lib/package/'> ($ Id.VSub_Number 1) <.pkg>)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'package='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'package='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'package='>
                                              name: package
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName package) <' '> 
                                                ($ Id.VSub_Number 1)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [20971 20986]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'target='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'target='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'target='>
                                          name: target
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName target) <' '> 
                                            ($ Id.VSub_DollarName package) <' '> ($ Id.VSub_Number 1)
                                          )
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'package='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'package='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'package='>
                                          name: package
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          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.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName flat)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <1>
          pattern: (pat.Words words:[{<1>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <make>
                  pattern: 
                    (pat.Words
                      words: [{<make>} {<read>} {<setup>} {<update>} {<use>} {<view>}]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<Id.KW_Bang '!'>}
                                    {<-d>}
                                    {($ Id.VSub_DollarName INSTALLROOT)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$exec'>
                                  more_env: []
                                  words: [
                                    {($ Id.VSub_DollarName exec)}
                                    {<mkdir>}
                                    {<-p>}
                                    {($ Id.VSub_DollarName INSTALLROOT)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Exit exit>
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          ]
                          spids: [21062 21073]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: 
                        (for_iter.Words
                          words: [{<bin>} {<include>} {<lib>} {<fun>} {<man>} {<share>}]
                        )
                      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.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<Id.KW_Bang '!'>}
                                            {<-d>}
                                            {($ Id.VSub_DollarName INSTALLROOT) <'/../../'> 
                                              ($ Id.VSub_DollarName i)
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$exec'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName exec)}
                                        {<mkdir>}
                                        {($ Id.VSub_DollarName INSTALLROOT) <'/../../'> 
                                          ($ Id.VSub_DollarName i)
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [21112 21125]
                                )
                              ]
                              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.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<Id.KW_Bang '!'>}
                                            {<-d>}
                                            {($ Id.VSub_DollarName INSTALLROOT) <'/'> 
                                              ($ Id.VSub_DollarName i)
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  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.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<Id.KW_Bang '!'>}
                                                    {<-h>}
                                                    {($ Id.VSub_DollarName INSTALLROOT) <'/'> 
                                                      ($ Id.VSub_DollarName i)
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName exec)}
                                                {<ln>}
                                                {<-s>}
                                                {<'../../'> ($ Id.VSub_DollarName i)}
                                                {($ Id.VSub_DollarName INSTALLROOT) <'/'> 
                                                  ($ Id.VSub_DollarName i)
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [21154 21167]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [21139 21152]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<Id.KW_Bang '!'>}
                                            {<-h>}
                                            {($ Id.VSub_DollarName INSTALLROOT) <'/'> 
                                              ($ Id.VSub_DollarName i)
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [x]
                                      iterable: 
                                        (for_iter.Words
                                          words: [
                                            {($ Id.VSub_DollarName INSTALLROOT) <'/'> 
                                              ($ Id.VSub_DollarName i) <'/.'> <Id.Lit_LBracket '['> <a-z> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                            }
                                            {($ Id.VSub_DollarName INSTALLROOT) <'/'> 
                                              ($ Id.VSub_DollarName i) <'/'> <Id.Lit_Star '*'>
                                            }
                                          ]
                                        )
                                      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.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-f>}
                                                            {($ Id.VSub_DollarName x)}
                                                            {<-o>}
                                                            {<-d>}
                                                            {($ Id.VSub_DollarName x)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  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.AndOr
                                                                  children: [
                                                                    (command.Simple
                                                                      blame_tok: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<Id.KW_Bang '!'>}
                                                                        {<-d>}
                                                                        {
                                                                          ($ Id.VSub_DollarName 
INSTALLROOT
                                                                          ) <'/'> ($ Id.VSub_DollarName i) <'/'> ($ Id.VSub_DollarName x)
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <test>
                                                                      more_env: []
                                                                      words: [
                                                                        {<test>}
                                                                        {<Id.KW_Bang '!'>}
                                                                        {<-d>}
                                                                        {
                                                                          ($ Id.VSub_DollarName 
INSTALLROOT
                                                                          ) <'/../../'> ($ Id.VSub_DollarName i) <'/'> ($ Id.VSub_DollarName x)
                                                                        }
                                                                      ]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                  ops: [<Id.Op_DPipe _>]
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName exec)}
                                                                {<mv>}
                                                                {($ Id.VSub_DollarName x)}
                                                                {($ Id.VSub_DollarName INSTALLROOT) 
                                                                  <'/../../'> ($ Id.VSub_DollarName i)
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          spids: [21242 21271]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [21225 21240]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$exec'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName exec)}
                                        {<rm>}
                                        {<-rf>}
                                        {($ Id.VSub_DollarName INSTALLROOT) <'/'> 
                                          ($ Id.VSub_DollarName i)
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$exec'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName exec)}
                                        {<ln>}
                                        {<-s>}
                                        {<'../../'> ($ Id.VSub_DollarName i)}
                                        {($ Id.VSub_DollarName INSTALLROOT) <'/'> 
                                          ($ Id.VSub_DollarName i)
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [21186 21199]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShFunction
      name_tok: <checkaout>
      name: checkaout
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName PROTOROOT)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <->
                  pattern: (pat.Words words:[{<->}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'PROTOROOT='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'PROTOROOT='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PROTOROOT='> name:PROTOROOT)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Star '*')})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <ratz>
                          pattern: (pat.Words words:[{<ratz>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-f>}
                                            {($ Id.VSub_DollarName INITROOT) <'/ratz.c'>}
                                            {<-a>}
                                            {<-w>}
                                            {($ Id.VSub_DollarName PACKAGEROOT)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-f>}
                                            {($ Id.VSub_DollarName INITROOT) <'/hello.c'>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.Simple
                                              blame_tok: <cat>
                                              more_env: []
                                              words: [{<cat>}]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName INITROOT) <'/hello.c'>}
                                                )
                                                (Redir
                                                  op: <Id.Redir_DLess '<<'>
                                                  loc: (redir_loc.Fd fd:0)
                                                  arg: 
                                                    (redir_param.HereDoc
                                                      here_begin: {(SQ <'!'>)}
                                                      here_end_tok: <Id.Undefined_Tok ''>
                                                      stdin_parts: [
                                                        <'#ifndef printf\n'>
                                                        <'#include <stdio.h>\n'>
                                                        <'#endif\n'>
                                                        <
'int main() { int new = 0; printf("hello world\\n"); return new;}\n'
                                                        >
                                                      ]
                                                    )
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-f>}
                                            {($ Id.VSub_DollarName INITROOT) <'/p.c'>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.Simple
                                              blame_tok: <cat>
                                              more_env: []
                                              words: [{<cat>}]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName INITROOT) <'/p.c'>}
                                                )
                                                (Redir
                                                  op: <Id.Redir_DLess '<<'>
                                                  loc: (redir_loc.Fd fd:0)
                                                  arg: 
                                                    (redir_param.HereDoc
                                                      here_begin: {(SQ <'!'>)}
                                                      here_end_tok: <Id.Undefined_Tok ''>
                                                      stdin_parts: [
                                                        <'/*\n'>
                                                        <' * small test for prototyping cc\n'>
                                                        <' */\n'>
                                                        <'\n'>
                                                        <
'int main(int argc, char** argv) { return argc || argv; }\n'
                                                        >
                                                      ]
                                                    )
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  ]
                                  spids: [21372 21388]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<-f>}
                            {($ Id.VSub_DollarName INITROOT) <'/hello.c'>}
                            {<-a>}
                            {<-f>}
                            {($ Id.VSub_DollarName INITROOT) <'/p.c'>}
                            {<-a>}
                            {<-w>}
                            {($ Id.VSub_DollarName PACKAGEROOT)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [i]
                              iterable: (for_iter__Args)
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <onpath>
                                          more_env: []
                                          words: [{<onpath>} {($ Id.VSub_DollarName i)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName command) <': '> 
                                                    ($ Id.VSub_DollarName i) <': command not found'>
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<2>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Return return>
                                              arg_word: {<1>}
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName cc)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_PACKAGE_cc='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_PACKAGE_cc='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_PACKAGE_cc='>
                                      name: _PACKAGE_cc
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              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 '_PACKAGE_cc='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_PACKAGE_cc='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_PACKAGE_cc='>
                                      name: _PACKAGE_cc
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<-f>}
                                    {($ Id.VSub_DollarName INITROOT) <'/hello.c'>}
                                    {<-a>}
                                    {<-f>}
                                    {($ Id.VSub_DollarName INITROOT) <'/p.c'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (BraceGroup
                                  left: <Id.Lit_LBrace '{'>
                                  children: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                            ($ Id.VSub_DollarName INITROOT) <': INIT package source not found'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Return return>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  redirects: []
                                  right: <Id.Lit_RBrace '}'>
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <executable>
                                  more_env: []
                                  words: [
                                    {<executable>}
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/bin/nmake'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (BraceGroup
                                  left: <Id.Lit_LBrace '{'>
                                  children: [
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$CC'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName CC)}
                                        {<-c>}
                                        {($ Id.VSub_DollarName INITROOT) <'/p.c'>}
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/dev/null'>}
                                        )
                                        (Redir
                                          op: <Id.Redir_GreatAnd '2>&'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {<1>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'c='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'c='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'c='> name:c)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '?')}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <rm>
                                      more_env: []
                                      words: [{<rm>} {<-f>} {<p.> <Id.Lit_Star '*'>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<0>}
                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName c))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <checkaout>
                                                  more_env: []
                                                  words: [{<checkaout>} {<proto>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ControlFlow
                                                  keyword: <Id.ControlFlow_Return return>
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'PROTOROOT='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'PROTOROOT='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'PROTOROOT='>
                                                      name: PROTOROOT
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName PACKAGEROOT) <'/proto'>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$show'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName show)}
                                                {<Id.Lit_VarLike 'PROTOROOT='> 
                                                  ($ Id.VSub_DollarName PACKAGEROOT) <'/proto'>
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <export>
                                              more_env: []
                                              words: [{<export>} {<PROTOROOT>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'INITPROTO='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'INITPROTO='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'INITPROTO='>
                                                      name: INITPROTO
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName PROTOROOT) 
                                                      <'/src/cmd/INIT'>
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <note>
                                              more_env: []
                                              words: [
                                                {<note>}
                                                {<proto>}
                                                {<convert>}
                                                {($ Id.VSub_DollarName PACKAGEROOT) <'/src'>}
                                                {<into>}
                                                {($ Id.VSub_DollarName PROTOROOT) <'/src'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-d>}
                                                            {($ Id.VSub_DollarName PACKAGEROOT) 
                                                              <'/src/cmd/nmake'>
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'dirs='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'dirs='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'dirs='>
                                                              name: dirs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                <
'src/cmd/INIT src/lib/libast src/lib/libardir src/lib/libcoshell src/lib/libpp src/cmd/probe src/cmd/cpp src/cmd/nmake'
                                                                >
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [21711 21721]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'dirs='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'dirs='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'dirs='>
                                                          name: dirs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {(DQ <src>)}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Subshell
                                              left: <Id.Op_LParen _>
                                              child: 
                                                (command.CommandList
                                                  children: [
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<-f>}
                                                                    {
                                                                      ($ Id.VSub_DollarName PROTOROOT) <'/UPDATE'>
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'newer='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'newer='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'newer='>
                                                                      name: newer
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <'-newer '> 
                                                                        ($ Id.VSub_DollarName 
PROTOROOT
                                                                        ) <'/UPDATE'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [21743 21753]
                                                        )
                                                      ]
                                                      else_kw: <Id.KW_Else else>
                                                      else_action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'newer='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'newer='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'newer='>
                                                                  name: newer
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {(DQ )}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName exec)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_SingleQuote '\''>
                                                          pattern: (pat.Words words:[{(SQ )}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <cd>
                                                              more_env: []
                                                              words: [
                                                                {<cd>}
                                                                {($ Id.VSub_DollarName PACKAGEROOT)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Pipeline
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: <find>
                                                                  more_env: []
                                                                  words: [
                                                                    {<find>}
                                                                    {($ Id.VSub_DollarName dirs)}
                                                                    {<-name>}
                                                                    {(SQ <'*.[CcHh]'>)}
                                                                    {($ Id.VSub_DollarName newer)}
                                                                    {<-print>}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: <proto>
                                                                  more_env: []
                                                                  words: [
                                                                    {<proto>}
                                                                    {<-v>}
                                                                    {<-L>}
                                                                    {<->}
                                                                    {<-C>}
                                                                    {<proto>}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              ops: [<Id.Op_Pipe _>]
                                                            )
                                                          ]
                                                          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: <Id.VSub_DollarName '$exec'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName exec)}
                                                                {<cd>}
                                                                {($ Id.VSub_DollarName PACKAGEROOT)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName exec)}
                                                                {
                                                                  (DQ <'find '> 
                                                                    ($ Id.VSub_DollarName dirs) <' -name \'*.[CcHh]\' '> ($ Id.VSub_DollarName newer) <' -print | proto -L - -C proto'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <Id.VSub_DollarName '$exec'>
                                                      more_env: []
                                                      words: [
                                                        {($ Id.VSub_DollarName exec)}
                                                        {<touch>}
                                                        {($ Id.VSub_DollarName PROTOROOT) <'/UPDATE'>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                )
                                              right: <Id.Right_Subshell _>
                                              redirects: []
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.AndOr
                                                          children: [
                                                            (command.Subshell
                                                              left: <Id.Op_LParen _>
                                                              child: 
                                                                (command.Simple
                                                                  blame_tok: <vpath>
                                                                  more_env: []
                                                                  words: [
                                                                    {<vpath>}
                                                                    {
                                                                      ($ Id.VSub_DollarName 
INSTALLROOT
                                                                      )
                                                                    }
                                                                    {<->}
                                                                    {
                                                                      ($ Id.VSub_DollarName 
INSTALLROOT
                                                                      )
                                                                    }
                                                                    {
                                                                      ($ Id.VSub_DollarName PROTOROOT)
                                                                    }
                                                                    {
                                                                      ($ Id.VSub_DollarName PROTOROOT)
                                                                    }
                                                                    {
                                                                      ($ Id.VSub_DollarName 
PACKAGEROOT
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              right: <Id.Right_Subshell _>
                                                              redirects: [
                                                                (Redir
                                                                  op: <Id.Redir_Great '>'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: {<'/dev/null'>}
                                                                )
                                                                (Redir
                                                                  op: <Id.Redir_GreatAnd '2>&'>
                                                                  loc: (redir_loc.Fd fd:2)
                                                                  arg: {<1>}
                                                                )
                                                              ]
                                                            )
                                                            (command.Simple
                                                              blame_tok: <vpath>
                                                              more_env: []
                                                              words: [
                                                                {<vpath>}
                                                                {($ Id.VSub_DollarName INSTALLROOT)}
                                                                {<->}
                                                                {($ Id.VSub_DollarName INSTALLROOT)}
                                                                {($ Id.VSub_DollarName PROTOROOT)}
                                                                {($ Id.VSub_DollarName PROTOROOT)}
                                                                {($ Id.VSub_DollarName PACKAGEROOT)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          ops: [<Id.Op_DAmp _>]
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <Id.VSub_DollarName '$show'>
                                                      more_env: []
                                                      words: [
                                                        {($ Id.VSub_DollarName show)}
                                                        {<vpath>}
                                                        {($ Id.VSub_DollarName INSTALLROOT)}
                                                        {($ Id.VSub_DollarName PROTOROOT)}
                                                        {($ Id.VSub_DollarName PROTOROOT)}
                                                        {($ Id.VSub_DollarName PACKAGEROOT)}
                                                        {($ Id.VSub_DollarName USER_VPATH_CHAIN)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [21859 21901]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'VPATH='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'VPATH='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'VPATH='>
                                                          name: VPATH
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {($ Id.VSub_DollarName INSTALLROOT) 
                                                          <Id.Lit_Colon ':'> ($ Id.VSub_DollarName PROTOROOT) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName PACKAGEROOT) 
                                                          ($ Id.VSub_DollarName USER_VPATH)
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$show'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName show)}
                                                    {<Id.Lit_VarLike 'VPATH='> 
                                                      ($ Id.VSub_DollarName VPATH)
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <export>
                                                  more_env: []
                                                  words: [{<export>} {<VPATH>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                  ]
                                  redirects: []
                                  right: <Id.Lit_RBrace '}'>
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [i]
                              iterable: 
                                (for_iter.Words
                                  words: [
                                    {<arch>}
                                    {<'arch/'> ($ Id.VSub_DollarName HOSTTYPE)}
                                    {<'arch/'> ($ Id.VSub_DollarName HOSTTYPE) <'/bin'>}
                                  ]
                                )
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-d>}
                                            {($ Id.VSub_DollarName PACKAGEROOT) <'/'> 
                                              ($ Id.VSub_DollarName i)
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$exec'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName exec)}
                                            {<mkdir>}
                                            {($ Id.VSub_DollarName PACKAGEROOT) <'/'> 
                                              ($ Id.VSub_DollarName i)
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Return return>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName _PACKAGE_cc)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName cc)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_PACKAGE_cc='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_PACKAGE_cc='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_PACKAGE_cc='>
                                      name: _PACKAGE_cc
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              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 '_PACKAGE_cc='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_PACKAGE_cc='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_PACKAGE_cc='>
                                      name: _PACKAGE_cc
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter__Args)
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<Id.Lit_VarLike 'j='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) <_PACKAGE_AOUT_> ($ Id.VSub_DollarName i)
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName j)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<_PACKAGE_AOUT_> ($ Id.VSub_DollarName i) <Id.Lit_Equals '='> <1>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          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 'k='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'k='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName _PACKAGE_cc)}
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<-f>}
                                    {($ Id.VSub_DollarName INITROOT) <'/'> ($ Id.VSub_DollarName i) 
                                      <.c>
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'k='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'k='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_Name k) <1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [22102 22114]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'k='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'k='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                              op: assign_op.Equal
                              rhs: {(${ Id.VSub_Name k) <0>}
                            )
                          ]
                          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.Simple
                                  blame_tok: <executable>
                                  more_env: []
                                  words: [
                                    {<executable>}
                                    {($ Id.VSub_DollarName EXECROOT) <'/bin/'> 
                                      ($ Id.VSub_DollarName i)
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'k='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'k='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_Name k) <1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [22135 22144]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'k='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'k='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                              op: assign_op.Equal
                              rhs: {(${ Id.VSub_Name k) <0>}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [
                        {<Id.Lit_Colon ':'>}
                        {($ Id.VSub_DollarName k)}
                        {<Id.Lit_Colon ':'>}
                        {<compiler>}
                        {<Id.Lit_Colon ':'>}
                        {<source>}
                        {<Id.Lit_Colon ':'>}
                        {<binary>}
                        {<Id.Lit_Colon ':'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName k)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <00>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <view>
                                  more_env: []
                                  words: [{<view>} {<->} {<'bin/'> ($ Id.VSub_DollarName i)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Continue continue>
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName k)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <000>
                          pattern: (pat.Words words:[{<000>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName i) 
                                    <': not found: download the INIT package '> ($ Id.VSub_DollarName HOSTTYPE) <' binary to continue'>
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <010>
                          pattern: (pat.Words words:[{<010>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName i) 
                                    <': not found: set CC=C-compiler or download the INIT package '> ($ Id.VSub_DollarName HOSTTYPE) <' binary to continue'>
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <100>
                          pattern: (pat.Words words:[{<100>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName i) 
                                    <': not found: download the INIT package source or '> ($ Id.VSub_DollarName HOSTTYPE) <' binary to continue'>
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <110>
                          pattern: (pat.Words words:[{<110>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName CROSS)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <1>
                                  pattern: (pat.Words words:[{<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                            ($ Id.VSub_DollarName i) <': not found: make the local '> ($ Id.VSub_DollarName EXECTYPE) <' binary package before '> 
                                            ($ Id.VSub_DollarName HOSTTYPE)
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Return return>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <01>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <Id.Lit_Colon ':'>
                              more_env: []
                              words: [{<Id.Lit_Colon ':'>} {<accept>} {<binary>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <011>
                          pattern: (pat.Words words:[{<011>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <Id.Lit_Colon ':'>
                              more_env: []
                              words: [{<Id.Lit_Colon ':'>} {<accept>} {<binary>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName CROSS)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <1>
                                  pattern: (pat.Words words:[{<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <ls>
                                    more_env: []
                                    words: [
                                      {<ls>}
                                      {<-t>}
                                      {($ Id.VSub_DollarName INITROOT) <'/'> ($ Id.VSub_DollarName i) 
                                        <.c>
                                      }
                                      {($ Id.VSub_DollarName INSTALLROOT) <'/bin/'> 
                                        ($ Id.VSub_DollarName i)
                                      }
                                    ]
                                    redirects: [
                                      (Redir
                                        op: <Id.Redir_Great '2>'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<'/dev/null'>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_DoubleQuote '"'>
                          pattern: 
                            (pat.Words
                              words: [
                                {
                                  (DQ ($ Id.VSub_DollarName INITROOT) <'/'> ($ Id.VSub_DollarName i) 
                                    <.c>
                                  ) <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <note>
                              more_env: []
                              words: [
                                {<note>}
                                {<update>}
                                {($ Id.VSub_DollarName INSTALLROOT) <'/bin/'> ($ Id.VSub_DollarName i)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.AndOr
                                          children: [
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<proto>}
                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName i))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <executable>
                                              more_env: []
                                              words: [
                                                {<executable>}
                                                {($ Id.VSub_DollarName INSTALLROOT) <'/bin/proto'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          ops: [<Id.Op_DAmp _>]
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName exec)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$INSTALLROOT'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName INSTALLROOT) 
                                                      <'/bin/proto'>
                                                    }
                                                    {<-p>}
                                                    {($ Id.VSub_DollarName INITROOT) <'/'> 
                                                      ($ Id.VSub_DollarName i) <.c>
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {($ Id.VSub_DollarName i) <.c>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                                (command.ControlFlow
                                                  keyword: <Id.ControlFlow_Return return>
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                          ]
                                          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: <Id.VSub_DollarName '$exec'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName exec)}
                                                {
                                                  (DQ ($ Id.VSub_DollarName INSTALLROOT) 
                                                    <'/bin/proto -p '> ($ Id.VSub_DollarName INITROOT) <'/'> ($ Id.VSub_DollarName i) <'.c > '> ($ Id.VSub_DollarName i) <.c>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$exec'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName exec)}
                                            {($ Id.VSub_DollarName CC)}
                                            {($ Id.VSub_DollarName CCFLAGS)}
                                            {<-o>}
                                            {($ Id.VSub_DollarName INSTALLROOT) <'/bin/'> 
                                              ($ Id.VSub_DollarName i)
                                            }
                                            {($ Id.VSub_DollarName i) <.c>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Return return>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$exec'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName exec)}
                                        {<rm>}
                                        {<-f>}
                                        {($ Id.VSub_DollarName i) <.c>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [22446 22467]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.If
                                  if_kw: <Id.KW_If if>
                                  arms: [
                                    (IfArm
                                      keyword: <Id.KW_If if>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<Id.KW_Bang '!'>}
                                                {<-d>}
                                                {($ Id.VSub_DollarName INSTALLROOT) <'/bin'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.ForEach
                                          keyword: <Id.KW_For for>
                                          iter_names: [j]
                                          iterable: 
                                            (for_iter.Words
                                              words: [
                                                {<arch>}
                                                {<'arch/'> ($ Id.VSub_DollarName HOSTTYPE)}
                                                {<'arch/'> ($ Id.VSub_DollarName HOSTTYPE) <'/bin'>}
                                              ]
                                            )
                                          body: 
                                            (command.DoGroup
                                              left: <Id.KW_Do do>
                                              children: [
                                                (command.AndOr
                                                  children: [
                                                    (command.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-d>}
                                                        {($ Id.VSub_DollarName PACKAGEROOT) <'/'> 
                                                          ($ Id.VSub_DollarName j)
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <Id.VSub_DollarName '$exec'>
                                                      more_env: []
                                                      words: [
                                                        {($ Id.VSub_DollarName exec)}
                                                        {<mkdir>}
                                                        {($ Id.VSub_DollarName PACKAGEROOT) <'/'> 
                                                          ($ Id.VSub_DollarName j)
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Return return>
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                                                )
                                              ]
                                              right: <Id.KW_Done done>
                                            )
                                          redirects: []
                                        )
                                      ]
                                      spids: [22556 22568]
                                    )
                                  ]
                                  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.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {(SQ )}
                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName PROTOROOT))}
                                                {<-a>}
                                                {<-f>}
                                                {($ Id.VSub_DollarName INITPROTO) <'/'> 
                                                  ($ Id.VSub_DollarName i) <.c>
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.AndOr
                                          children: [
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName exec)}
                                                {($ Id.VSub_DollarName CC)}
                                                {($ Id.VSub_DollarName CCFLAGS)}
                                                {<-o>}
                                                {($ Id.VSub_DollarName INSTALLROOT) <'/bin/'> 
                                                  ($ Id.VSub_DollarName i)
                                                }
                                                {($ Id.VSub_DollarName INITPROTO) <'/'> 
                                                  ($ Id.VSub_DollarName i) <.c>
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Return return>
                                            )
                                          ]
                                          ops: [<Id.Op_DPipe _>]
                                        )
                                      ]
                                      spids: [22617 22641]
                                    )
                                  ]
                                  else_kw: <Id.KW_Else else>
                                  else_action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$exec'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName exec)}
                                            {($ Id.VSub_DollarName CC)}
                                            {($ Id.VSub_DollarName CCFLAGS)}
                                            {<-o>}
                                            {($ Id.VSub_DollarName INSTALLROOT) <'/bin/'> 
                                              ($ Id.VSub_DollarName i)
                                            }
                                            {($ Id.VSub_DollarName INITROOT) <'/'> 
                                              ($ Id.VSub_DollarName i) <.c>
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Return return>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  ]
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                                (command.Case
                                  case_kw: <Id.KW_Case case>
                                  to_match: 
                                    (case_arg.Word
                                      w: 
                                        {($ Id.VSub_DollarName i) <Id.Lit_Colon ':'> 
                                          ($ Id.VSub_DollarName exec)
                                        }
                                    )
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <proto>
                                      pattern: (pat.Words words:[{<proto> <Id.Lit_Colon ':'>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.AndOr
                                          children: [
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-d>}
                                                {($ Id.VSub_DollarName INSTALLROOT) <'/include'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <mkdir>
                                              more_env: []
                                              words: [
                                                {<mkdir>}
                                                {($ Id.VSub_DollarName INSTALLROOT) <'/include'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          ops: [<Id.Op_DPipe _>]
                                        )
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$INSTALLROOT'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName INSTALLROOT) <'/bin/proto'>}
                                            {<-f>}
                                            {<'/dev/null'>}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName i) <.c>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (command.AndOr
                                          children: [
                                            (command.Simple
                                              blame_tok: <cmp>
                                              more_env: []
                                              words: [
                                                {<cmp>}
                                                {<-s>}
                                                {($ Id.VSub_DollarName i) <.c>}
                                                {($ Id.VSub_DollarName INSTALLROOT) 
                                                  <'/include/prototyped.h'>
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '2>'>
                                                  loc: (redir_loc.Fd fd:2)
                                                  arg: {<'/dev/null'>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <cp>
                                              more_env: []
                                              words: [
                                                {<cp>}
                                                {($ Id.VSub_DollarName i) <.c>}
                                                {($ Id.VSub_DollarName INSTALLROOT) 
                                                  <'/include/prototyped.h'>
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          ops: [<Id.Op_DPipe _>]
                                        )
                                        (command.Simple
                                          blame_tok: <rm>
                                          more_env: []
                                          words: [{<rm>} {($ Id.VSub_DollarName i) <.c>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                  ]
                                  arms_end: <Id.KW_Esac esac>
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-f>} {($ Id.VSub_DollarName i) <.o>}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$exec'>
                                  more_env: []
                                  words: [
                                    {($ Id.VSub_DollarName exec)}
                                    {<rm>}
                                    {<-f>}
                                    {($ Id.VSub_DollarName i) <.o>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'i='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'i='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName PATH)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'PATH='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'PATH='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                                  op: assign_op.Equal
                                  rhs: {<'/bin'>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'PATH='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'PATH='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName i)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <requirements>
      name: requirements
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <binary>
                  pattern: (pat.Words words:[{<binary>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'r='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'r='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r='> name:r)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName VIEW_BIN)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <source>
                  pattern: (pat.Words words:[{<source>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'r='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'r='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r='> name:r)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName VIEW_SRC)}
                        )
                      ]
                      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 'r='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'r='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r='> name:r)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName VIEW_ALL)}
                        )
                      ]
                      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
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'x='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'x='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      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 'x='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'x='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Star '*')}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [d]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName r)}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [
                        {<set>}
                        {(DQ ($ Id.VSub_At '@'))}
                        {($ Id.VSub_DollarName d) <'/gen/'> <Id.Lit_Star '*'> <.ver>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [
                                {<set>}
                                {(DQ ($ Id.VSub_At '@'))}
                                {($ Id.VSub_DollarName d) <'/gen/'> <Id.Lit_Star '*'> <.req>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [p]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName x)}])
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Simple
                                      blame_tok: <set>
                                      more_env: []
                                      words: [
                                        {<set>}
                                        {(DQ ($ Id.VSub_At '@'))}
                                        {($ Id.VSub_DollarName d) <'/gen/'> ($ Id.VSub_DollarName p) 
                                          <.req>
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'e='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'e='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'e='> name:e)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'x='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'x='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Star '*')}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'y='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'y='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'y='> name:y)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'n='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'n='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'n='> name:n)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName x)}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName i)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [
                                          {<sed>}
                                          {<-e>}
                                          {(SQ <'s,.*/,,'>)}
                                          {<-e>}
                                          {(SQ <'s,\\....$,,'>)}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-f>} {($ Id.VSub_DollarName i)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [{<set>} {(DQ ($ Id.VSub_At '@'))} {($ Id.VSub_DollarName i)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'y='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'y='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'y='> name:y)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName y) <' '> ($ Id.VSub_DollarName p))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [23056 23065]
                        )
                      ]
                      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 p)})
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <Id.Left_SingleQuote '\''>
                              pattern: (pat.Words words:[{(SQ <'*'>)}])
                              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_VarLike 'n='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'n='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'n='> name:n)
                                      op: assign_op.Equal
                                      rhs: 
                                        {(DQ ($ Id.VSub_DollarName n) <' '> ($ Id.VSub_DollarName p))}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName n)}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName y) <' '>)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName i) <' '>) 
                                  <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.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName i) 
                                    <': must read or write package'>
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'e='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'e='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'e='> name:e)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName e)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <1>
                  pattern: (pat.Words words:[{<1>}])
                  middle: <Id.Right_CasePat _>
                  action: [(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.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [
                    {<test>}
                    {<0>}
                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                    {(DQ ($ Id.VSub_Pound '#'))}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'release='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'release='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'release='> name:release)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <sort>
                                    more_env: []
                                    words: [{<sort>} {<-r>} {(DQ ($ Id.VSub_At '@'))}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (BraceGroup
                                    left: <Id.Lit_LBrace '{'>
                                    children: [
                                      (command.ShAssignment
                                        left: <Id.Lit_VarLike 'q='>
                                        pairs: [
                                          (AssignPair
                                            left: <Id.Lit_VarLike 'q='>
                                            lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'q='> name:q)
                                            op: assign_op.Equal
                                            rhs: (rhs_word__Empty)
                                          )
                                        ]
                                        redirects: []
                                      )
                                      (command.ShAssignment
                                        left: <Id.Lit_VarLike 'e='>
                                        pairs: [
                                          (AssignPair
                                            left: <Id.Lit_VarLike 'e='>
                                            lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'e='> name:e)
                                            op: assign_op.Equal
                                            rhs: {<0>}
                                          )
                                        ]
                                        redirects: []
                                      )
                                      (command.ShAssignment
                                        left: <Id.Lit_VarLike 'o='>
                                        pairs: [
                                          (AssignPair
                                            left: <Id.Lit_VarLike 'o='>
                                            lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o='> name:o)
                                            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>} {<p>} {<v>} {<r>} {<s>}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                          )
                                        body: 
                                          (command.DoGroup
                                            left: <Id.KW_Do do>
                                            children: [
                                              (command.ShAssignment
                                                left: <Id.Lit_VarLike 'q='>
                                                pairs: [
                                                  (AssignPair
                                                    left: <Id.Lit_VarLike 'q='>
                                                    lhs: 
                                                      (sh_lhs_expr.Name
                                                        left: <Id.Lit_VarLike 'q='>
                                                        name: q
                                                      )
                                                    op: assign_op.Equal
                                                    rhs: 
                                                      {
                                                        (DQ ($ Id.VSub_DollarName q) <'\n'> 
                                                          ($ Id.VSub_DollarName v) <' '> ($ Id.VSub_DollarName r)
                                                        )
                                                      }
                                                  )
                                                ]
                                                redirects: []
                                              )
                                              (command.Case
                                                case_kw: <Id.KW_Case case>
                                                to_match: (case_arg.Word w:{($ Id.VSub_DollarName p)})
                                                arms_start: <Id.KW_In in>
                                                arms: [
                                                  (CaseArm
                                                    left: <Id.VSub_DollarName '$o'>
                                                    pattern: 
                                                      (pat.Words
                                                        words: [{($ Id.VSub_DollarName o)}]
                                                      )
                                                    middle: <Id.Right_CasePat _>
                                                    action: [
                                                      (command.ControlFlow
                                                        keyword: <Id.ControlFlow_Continue continue>
                                                      )
                                                    ]
                                                    right: <Id.Op_DSemi _>
                                                  )
                                                ]
                                                arms_end: <Id.KW_Esac esac>
                                                redirects: []
                                              )
                                              (command.Case
                                                case_kw: <Id.KW_Case case>
                                                to_match: (case_arg.Word w:{($ Id.VSub_DollarName s)})
                                                arms_start: <Id.KW_In in>
                                                arms: [
                                                  (CaseArm
                                                    left: <0>
                                                    pattern: (pat.Words words:[{<0>}])
                                                    middle: <Id.Right_CasePat _>
                                                    action: [
                                                      (command.ShAssignment
                                                        left: <Id.Lit_VarLike 'e='>
                                                        pairs: [
                                                          (AssignPair
                                                            left: <Id.Lit_VarLike 'e='>
                                                            lhs: 
                                                              (sh_lhs_expr.Name
                                                                left: <Id.Lit_VarLike 'e='>
                                                                name: e
                                                              )
                                                            op: assign_op.Equal
                                                            rhs: {<1>}
                                                          )
                                                        ]
                                                        redirects: []
                                                      )
                                                      (command.Case
                                                        case_kw: <Id.KW_Case case>
                                                        to_match: 
                                                          (case_arg.Word
                                                            w: {($ Id.VSub_DollarName r)}
                                                          )
                                                        arms_start: <Id.KW_In in>
                                                        arms: [
                                                          (CaseArm
                                                            left: <base>
                                                            pattern: (pat.Words words:[{<base>}])
                                                            middle: <Id.Right_CasePat _>
                                                            action: [
                                                              (command.Simple
                                                                blame_tok: <echo>
                                                                more_env: []
                                                                words: [
                                                                  {<echo>}
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName command) <': base package '> ($ Id.VSub_DollarName p) <.> ($ Id.VSub_DollarName v) <' or newer required'>
                                                                    )
                                                                  }
                                                                ]
                                                                redirects: [
                                                                  (Redir
                                                                    op: <Id.Redir_GreatAnd '>&'>
                                                                    loc: (redir_loc.Fd fd:1)
                                                                    arg: {<2>}
                                                                  )
                                                                ]
                                                                do_fork: T
                                                              )
                                                            ]
                                                            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: <echo>
                                                                more_env: []
                                                                words: [
                                                                  {<echo>}
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName command) <': delta package '> ($ Id.VSub_DollarName p) <.> ($ Id.VSub_DollarName v) <.> ($ Id.VSub_DollarName r) 
                                                                      <' or newer required'>
                                                                    )
                                                                  }
                                                                ]
                                                                redirects: [
                                                                  (Redir
                                                                    op: <Id.Redir_GreatAnd '>&'>
                                                                    loc: (redir_loc.Fd fd:1)
                                                                    arg: {<2>}
                                                                  )
                                                                ]
                                                                do_fork: T
                                                              )
                                                            ]
                                                            right: <Id.Op_DSemi _>
                                                          )
                                                        ]
                                                        arms_end: <Id.KW_Esac esac>
                                                        redirects: []
                                                      )
                                                    ]
                                                    right: <Id.Op_DSemi _>
                                                  )
                                                ]
                                                arms_end: <Id.KW_Esac esac>
                                                redirects: []
                                              )
                                              (command.ShAssignment
                                                left: <Id.Lit_VarLike 'o='>
                                                pairs: [
                                                  (AssignPair
                                                    left: <Id.Lit_VarLike 'o='>
                                                    lhs: 
                                                      (sh_lhs_expr.Name
                                                        left: <Id.Lit_VarLike 'o='>
                                                        name: o
                                                      )
                                                    op: assign_op.Equal
                                                    rhs: {($ Id.VSub_DollarName p)}
                                                  )
                                                ]
                                                redirects: []
                                              )
                                            ]
                                            right: <Id.KW_Done done>
                                          )
                                        redirects: []
                                      )
                                      (command.Case
                                        case_kw: <Id.KW_Case case>
                                        to_match: (case_arg.Word w:{($ Id.VSub_DollarName e)})
                                        arms_start: <Id.KW_In in>
                                        arms: [
                                          (CaseArm
                                            left: <0>
                                            pattern: (pat.Words words:[{<0>}])
                                            middle: <Id.Right_CasePat _>
                                            action: [
                                              (command.Pipeline
                                                children: [
                                                  (command.Simple
                                                    blame_tok: <echo>
                                                    more_env: []
                                                    words: [{<echo>} {(DQ ($ Id.VSub_DollarName q))}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                  (command.Simple
                                                    blame_tok: <sort>
                                                    more_env: []
                                                    words: [{<sort>}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                  (BraceGroup
                                                    left: <Id.Lit_LBrace '{'>
                                                    children: [
                                                      (command.Sentence
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <read>
                                                            more_env: []
                                                            words: [{<read>} {<v>} {<r>}]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        terminator: <Id.Op_Semi _>
                                                      )
                                                      (command.Sentence
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <read>
                                                            more_env: []
                                                            words: [{<read>} {<v>} {<r>}]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        terminator: <Id.Op_Semi _>
                                                      )
                                                      (command.Sentence
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <echo>
                                                            more_env: []
                                                            words: [{<echo>} {($ Id.VSub_DollarName v)}]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        terminator: <Id.Op_Semi _>
                                                      )
                                                    ]
                                                    redirects: []
                                                    right: <Id.Lit_RBrace '}'>
                                                  )
                                                ]
                                                ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                              )
                                            ]
                                            right: <Id.Op_DSemi _>
                                          )
                                          (CaseArm
                                            left: <1>
                                            pattern: (pat.Words words:[{<1>}])
                                            middle: <Id.Right_CasePat _>
                                            action: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {<ERROR>}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            right: <Id.Op_DSemi _>
                                          )
                                        ]
                                        arms_end: <Id.KW_Esac esac>
                                        redirects: []
                                      )
                                    ]
                                    redirects: []
                                    right: <Id.Lit_RBrace '}'>
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                    )
                  ]
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName release)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <ERROR>
                  pattern: (pat.Words words:[{<ERROR>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName force)})
                      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_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [{<echo>} {($ Id.VSub_DollarName release)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <sed>
                                    more_env: []
                                    words: [
                                      {<sed>}
                                      {<-e>}
                                      {(SQ <'s,\\(.*\\)-\\(.*\\)-\\(.*\\),yy=\\1 mm=\\2 dd=\\3,'>)}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName mm)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <01>
                          pattern: (pat.Words words:[{<01>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                  op: assign_op.Equal
                                  rhs: {<09>}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dd='> name:dd)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <02>
                          pattern: (pat.Words words:[{<02>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                  op: assign_op.Equal
                                  rhs: {<10>}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dd='> name:dd)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <03>
                          pattern: (pat.Words words:[{<03>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                  op: assign_op.Equal
                                  rhs: {<11>}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dd='> name:dd)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <04>
                          pattern: (pat.Words words:[{<04>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                  op: assign_op.Equal
                                  rhs: {<12>}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dd='> name:dd)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <05>
                          pattern: (pat.Words words:[{<05>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                  op: assign_op.Equal
                                  rhs: {<01>}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dd='> name:dd)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <06>
                          pattern: (pat.Words words:[{<06>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                  op: assign_op.Equal
                                  rhs: {<02>}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dd='> name:dd)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <07>
                          pattern: (pat.Words words:[{<07>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                  op: assign_op.Equal
                                  rhs: {<03>}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dd='> name:dd)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <08>
                          pattern: (pat.Words words:[{<08>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                  op: assign_op.Equal
                                  rhs: {<04>}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dd='> name:dd)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <09>
                          pattern: (pat.Words words:[{<09>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                  op: assign_op.Equal
                                  rhs: {<05>}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dd='> name:dd)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <10>
                          pattern: (pat.Words words:[{<10>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                  op: assign_op.Equal
                                  rhs: {<06>}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dd='> name:dd)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <11>
                          pattern: (pat.Words words:[{<11>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                  op: assign_op.Equal
                                  rhs: {<07>}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dd='> name:dd)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <12>
                          pattern: (pat.Words words:[{<12>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mm='> name:mm)
                                  op: assign_op.Equal
                                  rhs: {<08>}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dd='> name:dd)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName dd)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'yy='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'yy='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'yy='> name:yy)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <expr>
                                            more_env: []
                                            words: [{<expr>} {($ Id.VSub_DollarName yy)} {<->} {<1>}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'release='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'release='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'release='> name:release)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName yy) <-> ($ Id.VSub_DollarName mm) <-01>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'count='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'count='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'count='> name:count)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'lo='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'lo='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lo='> name:lo)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName release)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'release='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'release='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'release='> name:release)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'-f '> ($ Id.VSub_DollarName release) <' -r '> 
                                ($ Id.VSub_DollarName count)
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <order>
      name: order
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike '_order_t_='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_order_t_='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_order_t_='> name:_order_t_)
                  op: assign_op.Equal
                  rhs: {<'lib/package/tgz'>}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <binary>
                  pattern: (pat.Words words:[{<binary>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_order_a_='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_order_a_='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_order_a_='> name:_order_a_)
                          op: assign_op.Equal
                          rhs: {<.> ($ Id.VSub_DollarName HOSTTYPE)}
                        )
                      ]
                      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 '_order_a_='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_order_a_='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_order_a_='> name:_order_a_)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike '_order_n_='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_order_n_='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_order_n_='> name:_order_n_)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Pound '#')}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName _order_n_)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike '_order_p_='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike '_order_p_='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_order_p_='> name:_order_p_)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [_order_v_]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName VIEW_all)}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [_order_f_]
                              iterable: 
                                (for_iter.Words
                                  words: [
                                    {($ Id.VSub_DollarName _order_v_) <'/lib/package/'> 
                                      <Id.Lit_Star '*'> <.pkg>
                                    }
                                  ]
                                )
                              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.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-f>}
                                                    {($ Id.VSub_DollarName _order_f_)}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike '_order_p_='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike '_order_p_='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike '_order_p_='>
                                                      name: _order_p_
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName _order_p_) <' '> 
                                                        ($ Id.VSub_DollarName _order_f_)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [23844 23853]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {(SQ )} {($ Id.VSub_DollarName _order_p_)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Pipeline
              children: [
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<ratz>}
                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_Star '*'))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [_order_f_]
                              iterable: (for_iter.Words words:[{<ratz>} {<INIT>}])
                              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.Simple
                                                  blame_tok: <view>
                                                  more_env: []
                                                  words: [
                                                    {<view>}
                                                    {<-s>}
                                                    {<->}
                                                    {<src>}
                                                    {($ Id.VSub_DollarName _order_t_) <'/'> 
                                                      ($ Id.VSub_DollarName _order_f_) ($ Id.VSub_DollarName _order_a_) <.tim>
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {($ Id.VSub_DollarName _order_f_)}
                                                {($ Id.VSub_DollarName _order_f_)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [23918 23935]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          spids: [23889 23903]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [_order_f_]
                      iterable: (for_iter__Args)
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (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.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <view>
                                          more_env: []
                                          words: [
                                            {<view>}
                                            {<->}
                                            {<src>}
                                            {($ Id.VSub_DollarName _order_f_)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Break break>
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName _order_f_)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.pkg>}])
                                          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.Sentence
                                              child: 
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike '_order_f_='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike '_order_f_='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike '_order_f_='>
                                                          name: _order_f_
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName _order_f_) <.pkg>}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <view>
                                                  more_env: []
                                                  words: [
                                                    {<view>}
                                                    {<->}
                                                    {<src>}
                                                    {($ Id.VSub_DollarName _order_f_)}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ControlFlow
                                                  keyword: <Id.ControlFlow_Break break>
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName _order_f_)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_Star '*'> <'/'> <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.Sentence
                                              child: 
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike '_order_f_='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike '_order_f_='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike '_order_f_='>
                                                          name: _order_f_
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {<'lib/package/'> 
                                                          ($ Id.VSub_DollarName _order_f_)
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <view>
                                                  more_env: []
                                                  words: [
                                                    {<view>}
                                                    {<->}
                                                    {<src>}
                                                    {($ Id.VSub_DollarName _order_f_)}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ControlFlow
                                                  keyword: <Id.ControlFlow_Break break>
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                            ($ Id.VSub_DollarName _order_f_) <': not a package'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                      arg_word: {<2>}
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_order_f_='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_order_f_='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_order_f_='>
                                      name: _order_f_
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName _view_)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '_order_p_='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '_order_p_='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '_order_p_='>
                                      name: _order_p_
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {($ Id.VSub_DollarName _order_f_)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [
                                                  {<sed>}
                                                  {<-e>}
                                                  {(SQ <'s,.*/,,'>)}
                                                  {<-e>}
                                                  {(SQ <'s,\\.pkg$,,'>)}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName _order_n_)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <0>
                                  pattern: (pat.Words words:[{<0>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <view>
                                          more_env: []
                                          words: [
                                            {<view>}
                                            {<-s>}
                                            {<->}
                                            {<src>}
                                            {($ Id.VSub_DollarName _order_t_) <'/'> 
                                              ($ Id.VSub_DollarName _order_p_) ($ Id.VSub_DollarName _order_a_) <.tim>
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Continue continue>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {($ Id.VSub_DollarName _order_p_)}
                                {($ Id.VSub_DollarName _order_p_)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName _order_p_)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <INIT>
                                  pattern: (pat.Words words:[{<INIT>} {<ratz>}])
                                  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.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [{<echo>} {<INIT>} {($ Id.VSub_DollarName _order_p_)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (BraceGroup
                              left: <Id.Lit_LBrace '{'>
                              children: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'req='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'req='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'req='> name:req)
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'req_sep='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'req_sep='>
                                          name: req_sep
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                  ]
                                  redirects: []
                                )
                                (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: {<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.WhileUntil
                                  keyword: <Id.KW_While while>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <read>
                                          more_env: []
                                          words: [{<read>} {<line>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  body: 
                                    (command.DoGroup
                                      left: <Id.KW_Do do>
                                      children: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'IFS='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'IFS='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'IFS='>
                                                  name: IFS
                                                )
                                              op: assign_op.Equal
                                              rhs: {(SQ <' \t\\\\'>)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <set>
                                          more_env: []
                                          words: [{<set>} {(SQ )} {($ Id.VSub_DollarName line)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'IFS='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'IFS='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'IFS='>
                                                  name: IFS
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName ifs)}
                                            )
                                          ]
                                          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.Simple
                                                  blame_tok: <shift>
                                                  more_env: []
                                                  words: [{<shift>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (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.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Lit_Colon ':'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {<Id.Lit_Colon ':'> <Id.Lit_Star '*'> 
                                                              <Id.Lit_Colon ':'>
                                                            }
                                                          ]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (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: {($ Id.VSub_Number 1)}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                    (CaseArm
                                                      left: <INIT>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {<INIT>}
                                                            {(SQ <'$('>) <Id.Lit_Star '*'>}
                                                            {<Id.Lit_Star '*'> (SQ <')'>)}
                                                          ]
                                                        )
                                                      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.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: <Id.Lit_Colon ':'>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [
                                                                    {<Id.Lit_Colon ':'> <REQUIRES> 
                                                                      <Id.Lit_Colon ':'>
                                                                    }
                                                                  ]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'req='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'req='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 'req='>
                                                                          name: req
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName req) ($ Id.VSub_DollarName req_sep) ($ Id.VSub_Number 1)
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'req_sep='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: 
                                                                        <Id.Lit_VarLike 'req_sep='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'req_sep='
                                                                            >
                                                                          name: req_sep
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: {(DQ <' '>)}
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                          ]
                                                          arms_end: <Id.KW_Esac esac>
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                              ]
                                              right: <Id.KW_Done done>
                                            )
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.KW_Done done>
                                    )
                                  redirects: []
                                )
                                (command.ForEach
                                  keyword: <Id.KW_For for>
                                  iter_names: [_order_i_]
                                  iterable: (for_iter.Words words:[{($ Id.VSub_DollarName req)}])
                                  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.Simple
                                                      blame_tok: <view>
                                                      more_env: []
                                                      words: [
                                                        {<view>}
                                                        {<->}
                                                        {<src>}
                                                        {<'lib/package/'> 
                                                          ($ Id.VSub_DollarName _order_i_) <.pkg>
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: {($ Id.VSub_DollarName _order_u_)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <0>
                                                      pattern: (pat.Words words:[{<0>}])
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.AndOr
                                                          children: [
                                                            (command.Simple
                                                              blame_tok: <view>
                                                              more_env: []
                                                              words: [
                                                                {<view>}
                                                                {<-s>}
                                                                {<->}
                                                                {<src>}
                                                                {($ Id.VSub_DollarName _order_t_) 
                                                                  <'/'> ($ Id.VSub_DollarName _order_i_) ($ Id.VSub_DollarName _order_a_) <.tim>
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ControlFlow
                                                              keyword: 
                                                                <Id.ControlFlow_Continue continue>
                                                            )
                                                          ]
                                                          ops: [<Id.Op_DPipe _>]
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {($ Id.VSub_DollarName _order_i_)}
                                                        {($ Id.VSub_DollarName _order_i_)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                                (command.Sentence
                                                  child: 
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {<INIT>}
                                                        {($ Id.VSub_DollarName _order_i_)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [
                                                    {<echo>}
                                                    {($ Id.VSub_DollarName _order_i_)}
                                                    {($ Id.VSub_DollarName _order_p_)}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              spids: [24350 24363]
                                            )
                                          ]
                                          else_action: []
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.KW_Done done>
                                    )
                                  redirects: []
                                )
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_Less '<'>
                                  loc: (redir_loc.Fd fd:0)
                                  arg: {($ Id.VSub_DollarName _order_f_)}
                                )
                              ]
                              right: <Id.Lit_RBrace '}'>
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
                (command.Simple
                  blame_tok: <tsort>
                  more_env: []
                  words: [{<tsort>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <components>
      name: components
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike '_components_='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike '_components_='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_components_='> name:_components_)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [p]
              iterable: (for_iter__Args)
              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 p)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <INIT>
                          pattern: (pat.Words words:[{<INIT>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: {(DQ <' '> ($ Id.VSub_DollarName _components_) <' '>)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName p) <' '>) 
                                          <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_VarLike '_components_='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '_components_='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '_components_='>
                                              name: _components_
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName _components_) <' '> 
                                                ($ Id.VSub_DollarName p)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <view>
                                          more_env: []
                                          words: [
                                            {<view>}
                                            {<->}
                                            {<src>}
                                            {<'lib/package/'> ($ Id.VSub_DollarName p) <.pkg>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName _view_)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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: {<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <exec>
                                      more_env: []
                                      words: [{<exec>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Less '<'>
                                          loc: (redir_loc.Fd fd:0)
                                          arg: {($ Id.VSub_DollarName p)}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.WhileUntil
                                      keyword: <Id.KW_While while>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Simple
                                              blame_tok: <read>
                                              more_env: []
                                              words: [{<read>} {<line>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'IFS='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'IFS='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'IFS='>
                                                      name: IFS
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(SQ <' \t\\\\'>)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <set>
                                              more_env: []
                                              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName line)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'IFS='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'IFS='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'IFS='>
                                                      name: IFS
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName ifs)}
                                                )
                                              ]
                                              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.Simple
                                                      blame_tok: <shift>
                                                      more_env: []
                                                      words: [{<shift>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (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.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_Number 1)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Colon ':'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Colon ':'> <Id.Lit_Star '*'> 
                                                                  <Id.Lit_Colon ':'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (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: {($ Id.VSub_Number 1)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <INIT>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<INIT>}
                                                                {(SQ <'$('>) <Id.Lit_Star '*'>}
                                                                {<Id.Lit_Star '*'> (SQ <')'>)}
                                                              ]
                                                            )
                                                          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.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: <Id.Lit_Colon ':'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Colon ':'> <PACKAGE> 
                                                                          <Id.Lit_Colon ':'>
                                                                        }
                                                                      ]
                                                                    )
                                                                  middle: <Id.Right_CasePat _>
                                                                  action: [
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: 
                                                                            {
                                                                              (DQ <' '> 
                                                                                ($ 
Id.VSub_DollarName _components_
                                                                                ) <' '>
                                                                              )
                                                                            }
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: <Id.Lit_Star '*'>
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {<Id.Lit_Star '*'> 
                                                                                  (DQ <' '> 
                                                                                    ($ 
Id.VSub_Number 1
                                                                                    ) <' '>
                                                                                  ) <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_VarLike 
'_components_='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'_components_='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike '_components_='
                                                                                        >
                                                                                      name: 
_components_
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName _components_
                                                                                        ) <' '> ($ Id.VSub_Number 1)
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                          ]
                                                                          right: <Id.Op_DSemi _>
                                                                        )
                                                                      ]
                                                                      arms_end: <Id.KW_Esac esac>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <exec>
                                      more_env: []
                                      words: [{<exec>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Less '<'>
                                          loc: (redir_loc.Fd fd:0)
                                          arg: {<'/dev/null'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  spids: [24531 24544]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-d>}
                                            {($ Id.VSub_DollarName PACKAGEROOT) <'/src/cmd/'> 
                                              ($ Id.VSub_DollarName p)
                                            }
                                            {<-o>}
                                            {<-d>}
                                            {($ Id.VSub_DollarName PACKAGEROOT) <'/src/lib/'> 
                                              ($ Id.VSub_DollarName p)
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike '_components_='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike '_components_='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike '_components_='>
                                              name: _components_
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName _components_) <' '> 
                                                ($ Id.VSub_DollarName p)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [24733 24752]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {
                                      (DQ ($ Id.VSub_DollarName command) <': '> 
                                        ($ Id.VSub_DollarName p) <': package or component not found'>
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Exit exit>
                                  arg_word: {<1>}
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <showenv>
      name: showenv
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )} {<make>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [__i__]
                      iterable: 
                        (for_iter.Words
                          words: [{<CC>} {<SHELL>} {($ Id.VSub_DollarName env)}]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<echo>}
                                {($ Id.VSub_DollarName __i__) <Id.Lit_Equals '='> (SQ <'$'>) 
                                  ($ Id.VSub_DollarName __i__)
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <capture>
      name: capture
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: {($ Id.VSub_DollarName make) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName noexec)}
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <install>
                          pattern: (pat.Words words:[{<install>} {<make>} {<view>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'o='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'o='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o='> name:o)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName action)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<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 package)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: 
                                    (pat.Words
                                      words: [{(SQ )} {<Id.Lit_Star '*'> (SQ <' '>) <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'o='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'o='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o='> name:o)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName action)}
                                        )
                                      ]
                                      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 'o='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'o='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o='> name:o)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName package)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <write>
                          pattern: (pat.Words words:[{<write>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'd='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'd='> name:d)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName PACKAGESRC) <'/gen'>}
                                )
                              ]
                              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 'd='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'd='> name:d)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName PACKAGEBIN) <'/gen'>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-d>} {($ Id.VSub_DollarName d)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$exec'>
                          more_env: []
                          words: [{($ Id.VSub_DollarName exec)} {<mkdir>} {($ Id.VSub_DollarName d)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'o='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'o='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o='> name:o)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName d) <'/'> ($ Id.VSub_DollarName o)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName o)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.VSub_DollarName '$output'>
                          pattern: (pat.Words words:[{($ Id.VSub_DollarName output)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'o='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'o='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o='> name:o)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName o) <.out>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 's='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 's='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 's='> name:s)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              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 'output='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'output='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'output='> name:output)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName o)}
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-f>} {($ Id.VSub_DollarName o) <.old>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <mv>
                                      more_env: []
                                      words: [
                                        {<mv>}
                                        {($ Id.VSub_DollarName o) <.old>}
                                        {($ Id.VSub_DollarName o) <.out.1>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-f>}
                                                    {($ Id.VSub_DollarName o) <.out>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <mv>
                                              more_env: []
                                              words: [
                                                {<mv>}
                                                {($ Id.VSub_DollarName o) <.out>}
                                                {($ Id.VSub_DollarName o) <.out.2>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [25051 25061]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [25030 25040]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-f>} {($ Id.VSub_DollarName o) <.out>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [i]
                                      iterable: 
                                        (for_iter.Words
                                          words: [
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <ls>
                                                    more_env: []
                                                    words: [
                                                      {<ls>}
                                                      {<-t>}
                                                      {($ Id.VSub_DollarName o) <.out.> 
                                                        <Id.Lit_QMark '?'>
                                                      }
                                                    ]
                                                    redirects: [
                                                      (Redir
                                                        op: <Id.Redir_Great '2>'>
                                                        loc: (redir_loc.Fd fd:2)
                                                        arg: {<'/dev/null'>}
                                                      )
                                                    ]
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          ]
                                        )
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName i)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.1>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'i='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'i='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'i='>
                                                      name: i
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<2>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.2>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'i='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'i='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'i='>
                                                      name: i
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<3>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.3>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'i='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'i='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'i='>
                                                      name: i
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<4>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.4>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'i='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'i='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'i='>
                                                      name: i
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<5>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.5>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'i='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'i='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'i='>
                                                      name: i
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<6>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.6>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'i='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'i='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'i='>
                                                      name: i
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<7>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.7>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'i='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'i='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'i='>
                                                      name: i
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<8>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.8>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'i='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'i='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'i='>
                                                      name: i
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<9>}
                                                )
                                              ]
                                              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 'i='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'i='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'i='>
                                                      name: i
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <mv>
                                      more_env: []
                                      words: [
                                        {<mv>}
                                        {($ Id.VSub_DollarName o) <.out>}
                                        {($ Id.VSub_DollarName o) <.out.> ($ Id.VSub_DollarName i)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [25075 25085]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'o='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'o='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o='> name:o)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName o) <.out>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <Id.Lit_Colon ':'>
                              more_env: []
                              words: [{<Id.Lit_Colon ':'>}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName o)}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <note>
                              more_env: []
                              words: [
                                {<note>}
                                {($ Id.VSub_DollarName action)}
                                {<output>}
                                {<captured>}
                                {<Id.KW_In in>}
                                {($ Id.VSub_DollarName o)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 's='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 's='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 's='> name:s)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName command) <': '> 
                                        ($ Id.VSub_DollarName action) <' start at '> 
                                        (CommandSub
                                          left_token: <Id.Left_Backtick '`'>
                                          child: 
                                            (command.Simple
                                              blame_tok: <date>
                                              more_env: []
                                              words: [{<date>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          right: <Id.Backtick_Right '`'>
                                        ) <' in '> ($ Id.VSub_DollarName INSTALLROOT)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName quiet)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <0>
                                  pattern: (pat.Words words:[{<0>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <trap>
                                      more_env: []
                                      words: [
                                        {<trap>}
                                        {
                                          (DQ <'echo '> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            ) ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName action) <' done  at '> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\`'>
                                              ch: '`'
                                            ) <date> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            ) <' in '> ($ Id.VSub_DollarName INSTALLROOT) <' 2>&1 | '> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\$'>
                                              ch: '$'
                                            ) <'TEE -a '> ($ Id.VSub_DollarName o)
                                          )
                                        }
                                        {<0>}
                                        {<1>}
                                        {<2>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  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: <trap>
                                      more_env: []
                                      words: [
                                        {<trap>}
                                        {
                                          (DQ <'echo '> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            ) ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName action) <' done  at '> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\`'>
                                              ch: '`'
                                            ) <date> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            ) <' in '> ($ Id.VSub_DollarName INSTALLROOT) <' >> '> ($ Id.VSub_DollarName o)
                                          )
                                        }
                                        {<0>}
                                        {<1>}
                                        {<2>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName quiet)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <executable>
                                          more_env: []
                                          words: [
                                            {<executable>}
                                            {<Id.KW_Bang '!'>}
                                            {($ Id.VSub_DollarName TEE)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'TEE='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'TEE='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'TEE='>
                                              name: TEE
                                            )
                                          op: assign_op.Equal
                                          rhs: {<tee>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [25360 25369]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Pipeline
                              children: [
                                (BraceGroup
                                  left: <Id.Lit_LBrace '{'>
                                  children: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName s)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_QMark '?'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [{<echo>} {(DQ ($ Id.VSub_DollarName s))}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <showenv>
                                      more_env: []
                                      words: [{<showenv>} {($ Id.VSub_DollarName action)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <Id.Left_DoubleQuote '"'>
                                      more_env: []
                                      words: [{(DQ ($ Id.VSub_At '@'))}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Less '<'>
                                      loc: (redir_loc.Fd fd:0)
                                      arg: {<'/dev/null'>}
                                    )
                                    (Redir
                                      op: <Id.Redir_GreatAnd '2>&'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<1>}
                                    )
                                  ]
                                  right: <Id.Lit_RBrace '}'>
                                )
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$TEE'>
                                  more_env: []
                                  words: [{($ Id.VSub_DollarName TEE)} {<-a>} {($ Id.VSub_DollarName o)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_Pipe _>]
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (BraceGroup
                              left: <Id.Lit_LBrace '{'>
                              children: [
                                (command.Case
                                  case_kw: <Id.KW_Case case>
                                  to_match: (case_arg.Word w:{($ Id.VSub_DollarName s)})
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <Id.Lit_QMark '?'>
                                      pattern: 
                                        (pat.Words
                                          words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                        )
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [{<echo>} {(DQ ($ Id.VSub_DollarName s))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                  ]
                                  arms_end: <Id.KW_Esac esac>
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <showenv>
                                  more_env: []
                                  words: [{<showenv>} {($ Id.VSub_DollarName action)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <Id.Left_DoubleQuote '"'>
                                  more_env: []
                                  words: [{(DQ ($ Id.VSub_At '@'))}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_Less '<'>
                                  loc: (redir_loc.Fd fd:0)
                                  arg: {<'/dev/null'>}
                                )
                                (Redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {($ Id.VSub_DollarName o)}
                                )
                                (Redir
                                  op: <Id.Redir_GreatAnd '2>&'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<1>}
                                )
                              ]
                              right: <Id.Lit_RBrace '}'>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      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: <Id.VSub_DollarName '$make'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName make)} {(DQ ($ Id.VSub_At '@'))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <package_install>
      name: package_install
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'dest='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'dest='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dest='> name:dest)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
                (AssignPair
                  left: <Id.Lit_VarLike 'sum='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sum='> name:sum)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ot='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ot='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ot='> name:ot)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (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: {<0>}
                )
              ]
              redirects: []
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <sed>
                  more_env: []
                  words: [
                    {<sed>}
                    {<-e>}
                    {(SQ <'/ /!d'>)}
                    {<-e>}
                    {(SQ <'s,[^ ]* ,,'>)}
                    {<-e>}
                    {(SQ <'s, \\(arch/[^/]*\\)/, \\1 ,'>)}
                    {<-e>}
                    {(SQ <'/ arch\\//!s,^[^ ]* [^ ]* [^ ]*,& .,'>)}
                    {<-e>}
                    {(SQ <'s,/\\([^ /]*\\)$, \\1,'>)}
                    {($ Id.VSub_DollarName sum)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.WhileUntil
                  keyword: <Id.KW_While while>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <read>
                          more_env: []
                          words: [{<read>} {<mode>} {<user>} {<group>} {<arch>} {<dir>} {<file>}]
                          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 flat) <Id.Lit_Colon ':'> 
                                  ($ Id.VSub_DollarName arch)
                                }
                            )
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <1>
                              pattern: 
                                (pat.Words
                                  words: [
                                    {<1> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}
                                    {<Id.Lit_QMark '?'> <Id.Lit_Colon ':'> <.>}
                                  ]
                                )
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 't='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 't='> name:t)
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName dest) <'/'> ($ Id.VSub_DollarName dir)}
                                    )
                                  ]
                                  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 't='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 't='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 't='> name:t)
                                      op: assign_op.Equal
                                      rhs: 
                                        {($ Id.VSub_DollarName dest) <'/'> ($ Id.VSub_DollarName arch) 
                                          <'/'> ($ Id.VSub_DollarName dir)
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                        (command.Case
                          case_kw: <Id.KW_Case case>
                          to_match: (case_arg.Word w:{($ Id.VSub_DollarName t)})
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <Id.VSub_DollarName '$ot'>
                              pattern: (pat.Words words:[{($ Id.VSub_DollarName ot)}])
                              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.If
                                  if_kw: <Id.KW_If if>
                                  arms: [
                                    (IfArm
                                      keyword: <Id.KW_If if>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<Id.KW_Bang '!'>}
                                                {<-d>}
                                                {(DQ ($ Id.VSub_DollarName t))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.AndOr
                                          children: [
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName exec)}
                                                {<mkdir>}
                                                {<-p>}
                                                {(DQ ($ Id.VSub_DollarName t))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Exit exit>
                                            )
                                          ]
                                          ops: [<Id.Op_DPipe _>]
                                        )
                                      ]
                                      spids: [25652 25665]
                                    )
                                  ]
                                  else_action: []
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'ot='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'ot='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ot='> name:ot)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName t)}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                        (command.Case
                          case_kw: <Id.KW_Case case>
                          to_match: (case_arg.Word w:{($ Id.VSub_DollarName file)})
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <Id.Lit_QMark '?'>
                              pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <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 arch)})
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <.>
                                      pattern: (pat.Words words:[{<.>}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'f='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'f='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'f='>
                                                  name: f
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName dir) <'/'> 
                                                  ($ Id.VSub_DollarName file)
                                                }
                                            )
                                          ]
                                          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 'f='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'f='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'f='>
                                                  name: f
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName arch) <'/'> 
                                                  ($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName file)
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      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.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [{<test>} {<-f>} {(DQ ($ Id.VSub_DollarName f))}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 't='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 't='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 't='>
                                                  name: t
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName t) <'/'> 
                                                  ($ Id.VSub_DollarName file)
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Case
                                          case_kw: <Id.KW_Case case>
                                          to_match: (case_arg.Word w:{($ Id.VSub_DollarName quiet)})
                                          arms_start: <Id.KW_In in>
                                          arms: [
                                            (CaseArm
                                              left: <0>
                                              pattern: (pat.Words words:[{<0>}])
                                              middle: <Id.Right_CasePat _>
                                              action: [
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [{<echo>} {(DQ ($ Id.VSub_DollarName t))}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              right: <Id.Op_DSemi _>
                                            )
                                          ]
                                          arms_end: <Id.KW_Esac esac>
                                          redirects: []
                                        )
                                        (command.AndOr
                                          children: [
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName exec)}
                                                {<cp>}
                                                {<-f>}
                                                {(DQ ($ Id.VSub_DollarName f))}
                                                {(DQ ($ Id.VSub_DollarName t))}
                                              ]
                                              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: []
                                            )
                                          ]
                                          ops: [<Id.Op_DPipe _>]
                                        )
                                        (command.AndOr
                                          children: [
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName exec)}
                                                {<chmod>}
                                                {($ Id.VSub_DollarName mode)}
                                                {(DQ ($ Id.VSub_DollarName t))}
                                              ]
                                              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: []
                                            )
                                          ]
                                          ops: [<Id.Op_DPipe _>]
                                        )
                                      ]
                                      spids: [25740 25751]
                                    )
                                  ]
                                  else_action: []
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                      ]
                      right: <Id.KW_Done done>
                    )
                  redirects: []
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_DollarName code)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <package_verify>
      name: package_verify
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$exec'>
              more_env: []
              words: [
                {($ Id.VSub_DollarName exec)}
                {($ Id.VSub_DollarName SUM)}
                {<-cp>}
                {($ Id.VSub_Number 1)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <make_recurse>
      name: make_recurse
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [_make_recurse_j]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName makefiles)}])
              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.Simple
                                  blame_tok: <view>
                                  more_env: []
                                  words: [
                                    {<view>}
                                    {<->}
                                    {($ Id.VSub_Number 1) <'/'> ($ Id.VSub_DollarName _make_recurse_j)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return>)]
                          spids: [25878 25889]
                        )
                      ]
                      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.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-d>} {($ Id.VSub_Number 1)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName exec)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [{<echo>} {<Id.Lit_Colon ':'> <MAKE> <Id.Lit_Colon ':'>}]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {($ Id.VSub_Number 1) <'/Makefile'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Exit exit>
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          ]
                          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: <Id.VSub_DollarName '$exec'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName exec)}
                                {(DQ <'echo :MAKE: > '> ($ Id.VSub_Number 1) <'/Makefile'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  spids: [25900 25909]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <get>
      name: get
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName HURL)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'HURL='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'HURL='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HURL='> name:HURL)
                          op: assign_op.Equal
                          rhs: {<.>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: (for_iter.Words words:[{<wget>} {<lynx>} {<curl>}])
                      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.Simple
                                          blame_tok: <onpath>
                                          more_env: []
                                          words: [{<onpath>} {($ Id.VSub_DollarName i)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'HURL='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'HURL='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'HURL='>
                                              name: HURL
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName i)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Sentence
                                      child: 
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Break break>
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  spids: [26002 26009]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'AUTHORIZE='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'AUTHORIZE='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'AUTHORIZE='> name:AUTHORIZE)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'User-Agent: package AT&T Research'> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\\\'>
                                  ch: '\\'
                                ) <r> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <n>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: 
                            {($ Id.VSub_DollarName HURL) <Id.Lit_Colon ':'> 
                              ($ Id.VSub_DollarName authorize)
                            }
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <.>
                          pattern: 
                            (pat.Words
                              words: [{<.> <Id.Lit_Colon ':'> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'AUTHORIZE='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'AUTHORIZE='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'AUTHORIZE='>
                                      name: AUTHORIZE
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ (${ Id.VSub_Name AUTHORIZE) <'Authorization: Basic '> 
                                        (CommandSub
                                          left_token: <Id.Left_Backtick '`'>
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (command.Simple
                                                  blame_tok: <print>
                                                  more_env: []
                                                  words: [
                                                    {<print>}
                                                    {<-n>}
                                                    {<-r>}
                                                    {<-->}
                                                    {($ Id.VSub_DollarName authorize) 
                                                      <Id.Lit_Colon ':'> ($ Id.VSub_DollarName password)
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <uuencode>
                                                  more_env: []
                                                  words: [{<uuencode>} {<-h>} {<-x>} {<base64>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_Pipe _>]
                                            )
                                          right: <Id.Backtick_Right '`'>
                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <r> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\\\'>
                                          ch: '\\'
                                        ) <n>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'getfd='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'getfd='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'getfd='> name:getfd)
                  op: assign_op.Equal
                  rhs: {<8>}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 3)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName HURL)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <.>
                          pattern: (pat.Words words:[{<.>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'host='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'host='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host='> name:host)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'path='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'path='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'path='> name:path)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 2)}
                                )
                              ]
                              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.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <eval>
                                          more_env: []
                                          words: [
                                            {<eval>}
                                            {
                                              (DQ <'exec '> ($ Id.VSub_DollarName getfd) 
                                                <'<> /dev/tcp/'> ($ Id.VSub_DollarName host) <'/80'>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Exit exit>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName path)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <'/'>
                                          pattern: (pat.Words words:[{<'/'> <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_VarLike 'path='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'path='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'path='>
                                                      name: path
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<'/'> ($ Id.VSub_DollarName path)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <print>
                                      more_env: []
                                      words: [
                                        {<print>}
                                        {
                                          (DQ <'GET '> ($ Id.VSub_DollarName path) <' HTTP/1.0'> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\\\'>
                                              ch: '\\'
                                            ) <r> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'nHost: '> 
                                            ($ Id.VSub_DollarName host) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <r> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\\\'>
                                              ch: '\\'
                                            ) <n> ($ Id.VSub_DollarName AUTHORIZE) 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\\\'>
                                              ch: '\\'
                                            ) <r>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName getfd)}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <cat>
                                      more_env: []
                                      words: [{<cat>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_LessAnd '<&'>
                                          loc: (redir_loc.Fd fd:0)
                                          arg: {<8>}
                                        )
                                        (Redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<get.tmp>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'got='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'got='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'got='>
                                              name: got
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <sed>
                                                    more_env: []
                                                    words: [{<sed>} {<-e>} {<1q>} {<get.tmp>}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName got)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> (DQ <' '>) <200> (DQ <' '>) 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'got='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'got='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'got='>
                                                      name: got
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <sed>
                                                            more_env: []
                                                            words: [
                                                              {<sed>}
                                                              {<-e>}
                                                              {(SQ <'1,/^.$/d'>)}
                                                              {<-e>}
                                                              {
                                                                (SQ 
                                                                  <
'/^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWYZ]/!d'
                                                                  >
                                                                )
                                                              }
                                                              {<get.tmp>}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <Id.Lit_Colon ':'>
                                              more_env: []
                                              words: [{<Id.Lit_Colon ':'>}]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<get.err>}
                                                )
                                              ]
                                              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: {<0>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> (DQ <' '>) <30> 
                                                  <Id.Lit_LBracket '['> <123> <Id.Lit_RBracket ']'> (DQ <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'got='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'got='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'got='>
                                                      name: got
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <sed>
                                                            more_env: []
                                                            words: [
                                                              {<sed>}
                                                              {<-e>}
                                                              {(SQ <'/^Location: /!d'>)}
                                                              {<-e>}
                                                              {
                                                                (SQ 
                                                                  <
's,^Location: \\(.*\\)://\\([^/]*\\)\\(/.*\\),prot='
                                                                  >
                                                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') (SQ <'\\1'>) 
                                                                (word_part.EscapedLiteral
                                                                  token: <Id.Lit_EscapedChar '\\\''>
                                                                  ch: '\''
                                                                ) (SQ <' host='>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') (SQ <'\\2'>) 
                                                                (word_part.EscapedLiteral
                                                                  token: <Id.Lit_EscapedChar '\\\''>
                                                                  ch: '\''
                                                                ) (SQ <' path='>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') (SQ <'\\3'>) 
                                                                (word_part.EscapedLiteral
                                                                  token: <Id.Lit_EscapedChar '\\\''>
                                                                  ch: '\''
                                                                ) (SQ <','>)
                                                              }
                                                              {<get.tmp>}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName got)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <rm>
                                                      more_env: []
                                                      words: [{<rm>} {<get.tmp>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <echo>
                                                      more_env: []
                                                      words: [
                                                        {<echo>}
                                                        {
                                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                                            ($ Id.VSub_DollarName action) <': '> ($ Id.VSub_DollarName url) <': redirect error'>
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_GreatAnd '>&'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {<2>}
                                                        )
                                                      ]
                                                      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: <eval>
                                              more_env: []
                                              words: [{<eval>} {($ Id.VSub_DollarName got)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          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: <rm>
                                              more_env: []
                                              words: [{<rm>} {<get.tmp>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName command) <': '> 
                                                    ($ Id.VSub_DollarName action) <': '> ($ Id.VSub_DollarName url) <': '> ($ Id.VSub_DollarName got)
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<2>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [{<echo>} {(SQ )} {(DQ ($ Id.VSub_DollarName got))}]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<get.err>}
                                                )
                                              ]
                                              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: []
                                            )
                                            (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 _>
                        )
                        (CaseArm
                          left: <curl>
                          pattern: (pat.Words words:[{<curl>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName authorize)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <curl>
                                          more_env: []
                                          words: [
                                            {<curl>}
                                            {<-s>}
                                            {<-L>}
                                            {<-o>}
                                            {<get.tmp>}
                                            {<http> <Id.Lit_Colon ':'> <'//'> ($ Id.VSub_Number 1) <'/'> 
                                              ($ Id.VSub_Number 2)
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '2>'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<get.err>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (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: {($ Id.VSub_QMark '?')}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <curl>
                                          more_env: []
                                          words: [
                                            {<curl>}
                                            {<-s>}
                                            {<-L>}
                                            {<-o>}
                                            {<get.tmp>}
                                            {<-u>}
                                            {(DQ ($ Id.VSub_DollarName authorize)) <Id.Lit_Colon ':'> 
                                              (DQ ($ Id.VSub_DollarName password))
                                            }
                                            {<http> <Id.Lit_Colon ':'> <'//'> ($ Id.VSub_Number 1) <'/'> 
                                              ($ Id.VSub_Number 2)
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '2>'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<get.err>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (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: {($ Id.VSub_QMark '?')}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'got='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'got='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'got='> name:got)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <grep>
                                            more_env: []
                                            words: [
                                              {<grep>}
                                              {
                                                (SQ 
                                                  <
'^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWYZ]'
                                                  >
                                                )
                                              }
                                              {<get.tmp>}
                                            ]
                                            redirects: [
                                              (Redir
                                                op: <Id.Redir_Great '2>'>
                                                loc: (redir_loc.Fd fd:2)
                                                arg: {<'/dev/null'>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName code)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <0>
                                  pattern: (pat.Words words:[{<0>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <grep>
                                                  more_env: []
                                                  words: [
                                                    {<grep>}
                                                    {(SQ <'^<H1>Authorization Required</H1>'>)}
                                                    {<get.tmp>}
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {<get.err>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (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: []
                                            )
                                          ]
                                          spids: [26598 26613]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <hurl>
                          pattern: (pat.Words words:[{<hurl>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName authorize)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <hurl>
                                          more_env: []
                                          words: [
                                            {<hurl>}
                                            {<http> <Id.Lit_Colon ':'> <'//'> ($ Id.VSub_Number 1) <'/'> 
                                              ($ Id.VSub_Number 2)
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<get.tmp>}
                                            )
                                            (Redir
                                              op: <Id.Redir_Great '2>'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<get.err>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (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: {($ Id.VSub_QMark '?')}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <hurl>
                                          more_env: []
                                          words: [
                                            {<hurl>}
                                            {<-a>}
                                            {(DQ ($ Id.VSub_DollarName authorize)) <Id.Lit_Colon ':'> 
                                              (DQ ($ Id.VSub_DollarName password))
                                            }
                                            {<http> <Id.Lit_Colon ':'> <'//'> ($ Id.VSub_Number 1) <'/'> 
                                              ($ Id.VSub_Number 2)
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<get.tmp>}
                                            )
                                            (Redir
                                              op: <Id.Redir_Great '2>'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<get.err>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (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: {($ Id.VSub_QMark '?')}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'got='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'got='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'got='> name:got)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <grep>
                                            more_env: []
                                            words: [
                                              {<grep>}
                                              {
                                                (SQ 
                                                  <
'^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWYZ]'
                                                  >
                                                )
                                              }
                                              {<get.tmp>}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <lynx>
                          pattern: (pat.Words words:[{<lynx>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName authorize)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <lynx>
                                          more_env: []
                                          words: [
                                            {<lynx>}
                                            {<-source>}
                                            {<http> <Id.Lit_Colon ':'> <'//'> ($ Id.VSub_Number 1) <'/'> 
                                              ($ Id.VSub_Number 2)
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<get.tmp>}
                                            )
                                            (Redir
                                              op: <Id.Redir_Great '2>'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<get.err>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (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: {($ Id.VSub_QMark '?')}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <lynx>
                                          more_env: []
                                          words: [
                                            {<lynx>}
                                            {<-source>}
                                            {<-auth>}
                                            {(DQ ($ Id.VSub_DollarName authorize)) <Id.Lit_Colon ':'> 
                                              (DQ ($ Id.VSub_DollarName password))
                                            }
                                            {<http> <Id.Lit_Colon ':'> <'//'> ($ Id.VSub_Number 1) <'/'> 
                                              ($ Id.VSub_Number 2)
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<get.tmp>}
                                            )
                                            (Redir
                                              op: <Id.Redir_Great '2>'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<get.err>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (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: {($ Id.VSub_QMark '?')}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'got='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'got='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'got='> name:got)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <grep>
                                            more_env: []
                                            words: [
                                              {<grep>}
                                              {
                                                (SQ 
                                                  <
'^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWYZ]'
                                                  >
                                                )
                                              }
                                              {<get.tmp>}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <wget>
                          pattern: (pat.Words words:[{<wget>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <wget>
                              more_env: []
                              words: [
                                {<wget>}
                                {<-nv>}
                                {<-O>}
                                {<get.tmp>}
                                {
                                  (BracedVarSub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name authorize>
                                    var_name: authorize
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VTest_ColonPlus _>
                                        arg_word: 
                                          {<'--http-user='> (DQ ($ Id.VSub_DollarName authorize))}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                                {
                                  (BracedVarSub
                                    left: <Id.Left_DollarBrace '${'>
                                    token: <Id.VSub_Name password>
                                    var_name: password
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op: <Id.VTest_ColonPlus _>
                                        arg_word: 
                                          {<'--http-passwd='> (DQ ($ Id.VSub_DollarName password))}
                                      )
                                    right: <Id.Right_DollarBrace '}'>
                                  )
                                }
                                {<http> <Id.Lit_Colon ':'> <'//'> ($ Id.VSub_Number 1) <'/'> 
                                  ($ Id.VSub_Number 2)
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_Great '2>'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<get.err>}
                                )
                              ]
                              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: {($ Id.VSub_QMark '?')}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'got='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'got='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'got='> name:got)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <grep>
                                            more_env: []
                                            words: [
                                              {<grep>}
                                              {
                                                (SQ 
                                                  <
'^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWYZ]'
                                                  >
                                                )
                                              }
                                              {<get.tmp>}
                                            ]
                                            redirects: [
                                              (Redir
                                                op: <Id.Redir_Great '2>'>
                                                loc: (redir_loc.Fd fd:2)
                                                arg: {<'/dev/null'>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              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: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                {($ Id.VSub_DollarName action) <Id.Lit_Colon ':'>}
                                {($ Id.VSub_DollarName HURL) <Id.Lit_Colon ':'>}
                                {<url>}
                                {<get>}
                                {<command>}
                                {<not>}
                                {<found>}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              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.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<0>}
                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName code))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <cat>
                                            more_env: []
                                            words: [{<cat>} {<get.err>} {<get.tmp>}]
                                            redirects: [
                                              (Redir
                                                op: <Id.Redir_Great '2>'>
                                                loc: (redir_loc.Fd fd:2)
                                                arg: {<'/dev/null'>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Aa> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Uu> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Tt> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <Hh> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Oo> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Rr> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Ii> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <SsZz> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Dd> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Ee> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Nn> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <Ii> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Ee> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Dd> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                        {($ Id.VSub_DollarName action) <Id.Lit_Colon ':'>}
                                        {<authorization>}
                                        {<required>}
                                        {<-->}
                                        {<see>}
                                        {($ Id.VSub_DollarName url)}
                                        {<Id.KW_For for>}
                                        {<license>}
                                        {<acceptance>}
                                        {<authorization>}
                                        {<name>}
                                        {<and>}
                                        {<password>}
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  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: <cat>
                                      more_env: []
                                      words: [{<cat>} {<get.err>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <rm>
                              more_env: []
                              words: [{<rm>} {<-f>} {<get.tmp>} {<get.err>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                {($ Id.VSub_DollarName action) <Id.Lit_Colon ':'>}
                                {($ Id.VSub_Number 2) <Id.Lit_Colon ':'>}
                                {<download>}
                                {<failed>}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [26929 26943]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <rm>
                      more_env: []
                      words: [{<rm>} {<-f>} {<get.tmp>} {<get.err>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<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 exec)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {(DQ ($ Id.VSub_Number 3) <' ('> ($ Id.VSub_Number 4) <' bytes):'>)}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName HURL)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <.>
                                  pattern: (pat.Words words:[{<.>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <eval>
                                          more_env: []
                                          words: [
                                            {<eval>}
                                            {
                                              (DQ <'exec '> ($ Id.VSub_DollarName getfd) 
                                                <'<> /dev/tcp/'> ($ Id.VSub_Number 1) <'/80'>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Exit exit>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'path='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'path='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'path='>
                                              name: path
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number 2) <'/'> ($ Id.VSub_Number 3)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName path)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <'/'>
                                          pattern: (pat.Words words:[{<'/'> <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_VarLike 'path='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'path='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'path='>
                                                      name: path
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<'/'> ($ Id.VSub_DollarName path)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <print>
                                      more_env: []
                                      words: [
                                        {<print>}
                                        {
                                          (DQ <'GET '> ($ Id.VSub_DollarName path) <' HTTP/1.0'> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\\\'>
                                              ch: '\\'
                                            ) <r> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'nHost: '> 
                                            ($ Id.VSub_DollarName host) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <r> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\\\'>
                                              ch: '\\'
                                            ) <n> ($ Id.VSub_DollarName AUTHORIZE) 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\\\'>
                                              ch: '\\'
                                            ) <r>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName getfd)}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <read>
                                      more_env: []
                                      words: [{<read>} {<got>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_LessAnd '<&'>
                                          loc: (redir_loc.Fd fd:0)
                                          arg: {($ Id.VSub_DollarName getfd)}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName got)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> (DQ <' 200 '>) <Id.Lit_Star '*'>}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (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: {<0>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <Id.Lit_Colon ':'>
                                              more_env: []
                                              words: [{<Id.Lit_Colon ':'>}]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<get.err>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          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: <echo>
                                              more_env: []
                                              words: [{<echo>} {(SQ )} {(DQ ($ Id.VSub_DollarName got))}]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<get.err>}
                                                )
                                              ]
                                              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: []
                                            )
                                          ]
                                          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: <read>
                                              more_env: []
                                              words: [{<read>} {<got>}]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_LessAnd '<&'>
                                                  loc: (redir_loc.Fd fd:0)
                                                  arg: {($ Id.VSub_DollarName getfd)}
                                                )
                                              ]
                                              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 got)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{(SQ )} {<Id.Lit_QMark '?'>}]
                                                    )
                                                  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: []
                                    )
                                    (command.Simple
                                      blame_tok: <cat>
                                      more_env: []
                                      words: [{<cat>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_LessAnd '<&'>
                                          loc: (redir_loc.Fd fd:0)
                                          arg: {($ Id.VSub_DollarName getfd)}
                                        )
                                        (Redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<get.tmp>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <curl>
                                  pattern: (pat.Words words:[{<curl>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName authorize)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Sentence
                                              child: 
                                                (command.Simple
                                                  blame_tok: <curl>
                                                  more_env: []
                                                  words: [
                                                    {<curl>}
                                                    {<-s>}
                                                    {<-L>}
                                                    {<-o>}
                                                    {<get.tmp>}
                                                    {<http> <Id.Lit_Colon ':'> <'//'> 
                                                      ($ Id.VSub_Number 1) <'/'> ($ Id.VSub_Number 2) <'/'> ($ Id.VSub_Number 3)
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '2>'>
                                                      loc: (redir_loc.Fd fd:2)
                                                      arg: {<get.err>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (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: {($ Id.VSub_QMark '?')}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Sentence
                                              child: 
                                                (command.Simple
                                                  blame_tok: <curl>
                                                  more_env: []
                                                  words: [
                                                    {<curl>}
                                                    {<-s>}
                                                    {<-L>}
                                                    {<-o>}
                                                    {<get.tmp>}
                                                    {<-u>}
                                                    {(DQ ($ Id.VSub_DollarName authorize)) 
                                                      <Id.Lit_Colon ':'> (DQ ($ Id.VSub_DollarName password))
                                                    }
                                                    {<http> <Id.Lit_Colon ':'> <'//'> 
                                                      ($ Id.VSub_Number 1) <'/'> ($ Id.VSub_Number 2) <'/'> ($ Id.VSub_Number 3)
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '2>'>
                                                      loc: (redir_loc.Fd fd:2)
                                                      arg: {<get.err>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (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: {($ Id.VSub_QMark '?')}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName code)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <0>
                                          pattern: (pat.Words words:[{<0>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <grep>
                                                          more_env: []
                                                          words: [
                                                            {<grep>}
                                                            {
                                                              (SQ 
                                                                <'^<H1>Authorization Required</H1>'>
                                                              )
                                                            }
                                                            {<get.tmp>}
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_Great '>'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: {<get.err>}
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (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: []
                                                    )
                                                  ]
                                                  spids: [27434 27449]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <hurl>
                                  pattern: (pat.Words words:[{<hurl>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName authorize)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Sentence
                                              child: 
                                                (command.Simple
                                                  blame_tok: <ksh>
                                                  more_env: []
                                                  words: [
                                                    {<ksh>}
                                                    {<-x>}
                                                    {<hurl>}
                                                    {<http> <Id.Lit_Colon ':'> <'//'> 
                                                      ($ Id.VSub_Number 1) <'/'> ($ Id.VSub_Number 2) <'/'> ($ Id.VSub_Number 3)
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {<get.tmp>}
                                                    )
                                                    (Redir
                                                      op: <Id.Redir_Great '2>'>
                                                      loc: (redir_loc.Fd fd:2)
                                                      arg: {<get.err>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (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: {($ Id.VSub_QMark '?')}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Sentence
                                              child: 
                                                (command.Simple
                                                  blame_tok: <ksh>
                                                  more_env: []
                                                  words: [
                                                    {<ksh>}
                                                    {<-x>}
                                                    {<hurl>}
                                                    {<-a>}
                                                    {(DQ ($ Id.VSub_DollarName authorize)) 
                                                      <Id.Lit_Colon ':'> (DQ ($ Id.VSub_DollarName password))
                                                    }
                                                    {<http> <Id.Lit_Colon ':'> <'//'> 
                                                      ($ Id.VSub_Number 1) <'/'> ($ Id.VSub_Number 2) <'/'> ($ Id.VSub_Number 3)
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {<get.tmp>}
                                                    )
                                                    (Redir
                                                      op: <Id.Redir_Great '2>'>
                                                      loc: (redir_loc.Fd fd:2)
                                                      arg: {<get.err>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (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: {($ Id.VSub_QMark '?')}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <lynx>
                                  pattern: (pat.Words words:[{<lynx>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName authorize)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Sentence
                                              child: 
                                                (command.Simple
                                                  blame_tok: <lynx>
                                                  more_env: []
                                                  words: [
                                                    {<lynx>}
                                                    {<-source>}
                                                    {<http> <Id.Lit_Colon ':'> <'//'> 
                                                      ($ Id.VSub_Number 1) <'/'> ($ Id.VSub_Number 2) <'/'> ($ Id.VSub_Number 3)
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {<get.tmp>}
                                                    )
                                                    (Redir
                                                      op: <Id.Redir_Great '2>'>
                                                      loc: (redir_loc.Fd fd:2)
                                                      arg: {<get.err>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (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: {($ Id.VSub_QMark '?')}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Sentence
                                              child: 
                                                (command.Simple
                                                  blame_tok: <lynx>
                                                  more_env: []
                                                  words: [
                                                    {<lynx>}
                                                    {<-source>}
                                                    {<-auth>}
                                                    {(DQ ($ Id.VSub_DollarName authorize)) 
                                                      <Id.Lit_Colon ':'> (DQ ($ Id.VSub_DollarName password))
                                                    }
                                                    {<http> <Id.Lit_Colon ':'> <'//'> 
                                                      ($ Id.VSub_Number 1) <'/'> ($ Id.VSub_Number 2) <'/'> ($ Id.VSub_Number 3)
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {<get.tmp>}
                                                    )
                                                    (Redir
                                                      op: <Id.Redir_Great '2>'>
                                                      loc: (redir_loc.Fd fd:2)
                                                      arg: {<get.err>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (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: {($ Id.VSub_QMark '?')}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <wget>
                                  pattern: (pat.Words words:[{<wget>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <wget>
                                      more_env: []
                                      words: [
                                        {<wget>}
                                        {<-nv>}
                                        {<-O>}
                                        {<get.tmp>}
                                        {
                                          (BracedVarSub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name authorize>
                                            var_name: authorize
                                            suffix_op: 
                                              (suffix_op.Unary
                                                op: <Id.VTest_ColonPlus _>
                                                arg_word: 
                                                  {<'--http-user='> 
                                                    (DQ ($ Id.VSub_DollarName authorize))
                                                  }
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        }
                                        {
                                          (BracedVarSub
                                            left: <Id.Left_DollarBrace '${'>
                                            token: <Id.VSub_Name password>
                                            var_name: password
                                            suffix_op: 
                                              (suffix_op.Unary
                                                op: <Id.VTest_ColonPlus _>
                                                arg_word: 
                                                  {<'--http-passwd='> 
                                                    (DQ ($ Id.VSub_DollarName password))
                                                  }
                                              )
                                            right: <Id.Right_DollarBrace '}'>
                                          )
                                        }
                                        {<http> <Id.Lit_Colon ':'> <'//'> ($ Id.VSub_Number 1) <'/'> 
                                          ($ Id.VSub_Number 2) <'/'> ($ Id.VSub_Number 3)
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Great '2>'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {<get.err>}
                                        )
                                      ]
                                      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: {($ Id.VSub_QMark '?')}
                                        )
                                      ]
                                      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: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                        {($ Id.VSub_DollarName action) <Id.Lit_Colon ':'>}
                                        {($ Id.VSub_DollarName HURL) <Id.Lit_Colon ':'>}
                                        {<url>}
                                        {<get>}
                                        {<command>}
                                        {<not>}
                                        {<found>}
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      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.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<0>}
                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName code))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <cat>
                                                    more_env: []
                                                    words: [{<cat>} {<get.err>} {<get.tmp>}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Aa> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Uu> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Tt> <Id.Lit_RBracket ']'> 
                                                  <Id.Lit_LBracket '['> <Hh> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Oo> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Rr> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Ii> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <SsZz> <Id.Lit_RBracket ']'> 
                                                  <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Dd> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Ee> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Nn> <Id.Lit_RBracket ']'> 
                                                  <Id.Lit_LBracket '['> <Ii> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Ee> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <Dd> 
                                                  <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                                {($ Id.VSub_DollarName action) <Id.Lit_Colon ':'>}
                                                {<authorization>}
                                                {<required>}
                                                {<-->}
                                                {<see>}
                                                {($ Id.VSub_DollarName url)}
                                                {<Id.KW_For for>}
                                                {<license>}
                                                {<acceptance>}
                                                {<authorization>}
                                                {<name>}
                                                {<and>}
                                                {<password>}
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<2>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          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: <cat>
                                              more_env: []
                                              words: [{<cat>} {<get.err>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <rm>
                                      more_env: []
                                      words: [{<rm>} {<get.tmp>} {<get.err>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                        {($ Id.VSub_DollarName action) <Id.Lit_Colon ':'>}
                                        {($ Id.VSub_Number 3) <Id.Lit_Colon ':'>}
                                        {<download>}
                                        {<failed>}
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [27738 27752]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <rm>
                              more_env: []
                              words: [{<rm>} {<get.err>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: 
                                    {($ Id.VSub_DollarName checksum) <Id.Lit_Colon ':'> 
                                      ($ Id.VSub_Number 5)
                                    }
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Colon ':'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Colon ':'> <Id.Lit_Star '*'>}
                                        {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <->}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  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_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <wc>
                                                    more_env: []
                                                    words: [{<wc>} {<-c>}]
                                                    redirects: [
                                                      (Redir
                                                        op: <Id.Redir_Less '<'>
                                                        loc: (redir_loc.Fd fd:0)
                                                        arg: {<get.tmp>}
                                                      )
                                                    ]
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName z) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_Number 4) <' '>) <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.Simple
                                              blame_tok: <rm>
                                              more_env: []
                                              words: [{<rm>} {<-f>} {<get.tmp>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                                {($ Id.VSub_Number 3) <Id.Lit_Colon ':'>}
                                                {<download>}
                                                {<error> <Id.Lit_Colon ':'>}
                                                {<expected>}
                                                {($ Id.VSub_Number 4)}
                                                {<bytes> <Id.Lit_Comma ','>}
                                                {<got>}
                                                {($ Id.VSub_DollarName z)}
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<2>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Exit exit>
                                              arg_word: {<1>}
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      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 '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_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <Id.VSub_DollarName '$checksum'>
                                                        more_env: []
                                                        words: [{($ Id.VSub_DollarName checksum)}]
                                                        redirects: [
                                                          (Redir
                                                            op: <Id.Redir_Less '<'>
                                                            loc: (redir_loc.Fd fd:0)
                                                            arg: {<get.tmp>}
                                                          )
                                                        ]
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <sed>
                                                        more_env: []
                                                        words: [
                                                          {<sed>}
                                                          {<-e>}
                                                          {(SQ <'s,^[ \t][ \t]*,,'>)}
                                                          {<-e>}
                                                          {(SQ <'s,[ \t].*,,'>)}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName z) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_Number 5) <' '>) <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.Simple
                                              blame_tok: <rm>
                                              more_env: []
                                              words: [{<rm>} {<-f>} {<get.tmp>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                                {($ Id.VSub_Number 3) <Id.Lit_Colon ':'>}
                                                {<download>}
                                                {($ Id.VSub_DollarName checksum)}
                                                {<error> <Id.Lit_Colon ':'>}
                                                {<expected>}
                                                {($ Id.VSub_Number 5) <Id.Lit_Comma ','>}
                                                {<got>}
                                                {($ Id.VSub_DollarName z)}
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<2>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Exit exit>
                                              arg_word: {<1>}
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <mv>
                                  more_env: []
                                  words: [{<mv>} {<get.tmp>} {($ Id.VSub_Number 3)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Exit exit>
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          ]
                          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: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {(DQ ($ Id.VSub_Number 3) <' ('> ($ Id.VSub_Number 4) <' bytes)'>)}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <copyright>
      name: copyright
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-f>} {($ Id.VSub_Number 1) <.lic>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {($ Id.VSub_Number 1)}
                        {<package>}
                        {<general>}
                        {<copyright>}
                        {<notice>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <proto>
                      more_env: []
                      words: [
                        {<proto>}
                        {<-c> (SQ <'#'>)}
                        {<-p>}
                        {<-s>}
                        {<-l>}
                        {($ Id.VSub_Number 1) <.lic>}
                        {<-o>}
                        {<Id.Lit_VarLike 'type='> <verbose> <Id.Lit_Comma ','> 
                          <Id.Lit_VarLike 'author='> (SQ <'*'>)
                        }
                        {<'/dev/null'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [28180 28190]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [{<echo>} {(SQ )} {($ Id.VSub_Number 1)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <sed>
                                    more_env: []
                                    words: [
                                      {<sed>}
                                      {(SQ <'s/\\([^-]*\\)-\\(.*\\)/__j__="\\1" __i__="\\2"/'>)}
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <copyright>
                                      more_env: []
                                      words: [{<copyright>} {($ Id.VSub_DollarName __i__)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <copyright>
                                      more_env: []
                                      words: [{<copyright>} {($ Id.VSub_DollarName __j__)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  ops: [<Id.Op_DPipe _>]
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [28291 28304]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <remote>
      name: remote
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'host='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'host='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host='> name:host)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'background='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'background='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'background='> name:background)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {<Id.Lit_VarLike 'name='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) (${ Id.VSub_Name host) <_name>
                }
                {<Id.Lit_VarLike 'user='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) (${ Id.VSub_Name host) <_user>
                }
                {<Id.Lit_VarLike 'snarf='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) (${ Id.VSub_Name host) <_snarf>
                }
                {<Id.Lit_VarLike 'type='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) (${ Id.VSub_Name host) <_type>
                }
                {<Id.Lit_VarLike 'rsh='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) (${ Id.VSub_Name host) <_rsh>
                }
                {<Id.Lit_VarLike 'root='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) (${ Id.VSub_Name host) <_root>
                }
                {<Id.Lit_VarLike 'keep='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) (${ Id.VSub_Name host) <_keep>
                }
                {<Id.Lit_VarLike 'log='> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\$'>
                    ch: '$'
                  ) (${ Id.VSub_Name host) <_log>
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName keep)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <1>
                  pattern: (pat.Words words:[{<1> <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_Return return>)]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.VSub_DollarName '$main'>
                  pattern: (pat.Words words:[{($ Id.VSub_DollarName main)}])
                  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.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName exec)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <exec>
                              more_env: []
                              words: [{<exec>}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: 
                                    {($ Id.VSub_DollarName admin_log) <'/'> ($ Id.VSub_DollarName log)}
                                )
                                (Redir
                                  op: <Id.Redir_GreatAnd '2>&'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<1>}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          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: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ <'exec > '> ($ Id.VSub_DollarName admin_log) <'/'> 
                                    ($ Id.VSub_DollarName log) <' 2>&1'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  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.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$admin_ping'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName admin_ping)} {($ Id.VSub_DollarName name)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/dev/null'>}
                                )
                                (Redir
                                  op: <Id.Redir_GreatAnd '2>&'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<1>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$admin_ping'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName admin_ping)} {($ Id.VSub_DollarName name)}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/dev/null'>}
                                )
                                (Redir
                                  op: <Id.Redir_GreatAnd '2>&'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<1>}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_DPipe _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cmd='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cmd='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
                          op: assign_op.Equal
                          rhs: {(DQ <'. ./.profile'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName root)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <.>
                          pattern: (pat.Words words:[{<.>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'root='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'root='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'root='> name:root)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              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 'cmd='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cmd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName cmd) <' && cd '> 
                                        ($ Id.VSub_DollarName root)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'root='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'root='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'root='> name:root)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName root) <'/'>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'cmd='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'cmd='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName cmd) <' && { test -f lib/package/admin/'> 
                                ($ Id.VSub_DollarName admin_env) <' && . ./lib/package/admin/'> ($ Id.VSub_DollarName admin_env) <' || true ;} && PATH='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\$'>
                                  ch: '$'
                                ) <'{PWD:-'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <pwd> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\`'>
                                  ch: '`'
                                ) <'}/bin:'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'PATH '> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\$'>
                                  ch: '$'
                                ) <'{SHELL:-/bin/sh} -c \'package '> ($ Id.VSub_DollarName admin_args) <' PACKAGEROOT='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\$'>
                                  ch: '$'
                                ) <'{PWD:-'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'> ch:'`') <pwd> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\`'>
                                  ch: '`'
                                ) <'} HOSTTYPE='> ($ Id.VSub_DollarName type) <' VPATH=\''>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName admin_binary)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'snarf='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'snarf='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'snarf='> name:snarf)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName snarf)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$exec'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName exec)}
                                {($ Id.VSub_DollarName rsh)}
                                {($ Id.VSub_DollarName user) ($ Id.VSub_DollarName name)}
                                {(DQ ($ Id.VSub_DollarName cmd))}
                                {($ Id.VSub_DollarName background)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <Id.Lit_QMark '?'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'rcp='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'rcp='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rcp='> name:rcp)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {($ Id.VSub_DollarName rsh)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [{<sed>} {(SQ <'s/\\(.\\).*/\\1/'>)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      ) <cp>
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName background)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_QMark '?'>
                                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$exec'>
                                      more_env: []
                                      words: [{($ Id.VSub_DollarName exec)} {(DQ <'{'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$exec'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName exec)}
                                {($ Id.VSub_DollarName rsh)}
                                {($ Id.VSub_DollarName user) ($ Id.VSub_DollarName name)}
                                {(DQ ($ Id.VSub_DollarName cmd))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<Id.Lit_VarLike 'lst='> ($ Id.VSub_DollarName admin_list)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName admin_pkgs)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'filter='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'filter='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'filter='>
                                              name: filter
                                            )
                                          op: assign_op.Equal
                                          rhs: {<cat>}
                                        )
                                      ]
                                      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 'filter='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'filter='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'filter='>
                                              name: filter
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <'egrep lib/package/tgz/('> 
                                                ($ Id.VSub_DollarName admin_pkgs) <')'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <.>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  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.Simple
                                          blame_tok: <Id.VSub_DollarName '$exec'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName exec)}
                                            {($ Id.VSub_DollarName rcp)}
                                            {($ Id.VSub_DollarName user) ($ Id.VSub_DollarName name) 
                                              <Id.Lit_Colon ':'> (${ Id.VSub_Name root) <'lib/package/tgz/'> ($ Id.VSub_DollarName lst)
                                            }
                                            {($ Id.VSub_DollarName PACKAGESRC) <'/tgz'>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$exec'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName exec)}
                                        {($ Id.VSub_DollarName rcp)}
                                        {
                                          (CommandSub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (command.Simple
                                                    blame_tok: <Id.VSub_DollarName '$filter'>
                                                    more_env: []
                                                    words: [
                                                      {($ Id.VSub_DollarName filter)}
                                                      {($ Id.VSub_DollarName PACKAGESRC) <'/tgz/'> 
                                                        ($ Id.VSub_DollarName lst)
                                                      }
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                  (command.Simple
                                                    blame_tok: <sed>
                                                    more_env: []
                                                    words: [
                                                      {<sed>}
                                                      {
                                                        (DQ <'s,^,'> ($ Id.VSub_DollarName user) 
                                                          ($ Id.VSub_DollarName name) <':,'>
                                                        )
                                                      }
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                ]
                                                ops: [<Id.Op_Pipe _>]
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                        {($ Id.VSub_DollarName PACKAGESRC) <'/tgz'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [28753 28772]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {
                                      (DQ ($ Id.VSub_DollarName command) <': '> 
                                        ($ Id.VSub_DollarName user) ($ Id.VSub_DollarName name) <':'> (${ Id.VSub_Name root) <'lib/package/tgz/'> ($ Id.VSub_DollarName lst) 
                                        <': not found'>
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName background)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_QMark '?'>
                                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$exec'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName exec)}
                                        {(DQ <'} '> ($ Id.VSub_DollarName background))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  spids: [28499 28524]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {
                      (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName name) <': down'>)
                    }
                  ]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <checksrc>
      name: checksrc
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName package_src)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'package_src='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'package_src='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'package_src='>
                              name: package_src
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName src)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [_i_]
                      iterable: 
                        (for_iter.Words
                          words: [
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.CommandList
                                    children: [
                                      (command.Sentence
                                        child: 
                                          (command.Simple
                                            blame_tok: <cd>
                                            more_env: []
                                            words: [{<cd>} {($ Id.VSub_DollarName PACKAGESRC)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        terminator: <Id.Op_Semi _>
                                      )
                                      (command.Pipeline
                                        children: [
                                          (command.Simple
                                            blame_tok: <ls>
                                            more_env: []
                                            words: [
                                              {<ls>}
                                              {<Id.Lit_Star '*'> <.def>}
                                              {<Id.Lit_Star '*'> <.lic>}
                                              {<Id.Lit_Star '*'> <.pkg>}
                                            ]
                                            redirects: [
                                              (Redir
                                                op: <Id.Redir_Great '2>'>
                                                loc: (redir_loc.Fd fd:2)
                                                arg: {<'/dev/null'>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                          (command.Simple
                                            blame_tok: <sed>
                                            more_env: []
                                            words: [{<sed>} {(SQ <'s/[-.].*//'>)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        ]
                                        ops: [<Id.Op_Pipe _>]
                                      )
                                    ]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: {(DQ <' '> ($ Id.VSub_DollarName package_src) <' '>)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName _i_) <' '>) 
                                          <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_VarLike 'package_src='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'package_src='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'package_src='>
                                              name: package_src
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName package_src) <' '> 
                                                ($ Id.VSub_DollarName _i_)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  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: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike '__isascii__='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike '__isascii__='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__isascii__='> name:__isascii__)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <isascii>
      name: isascii
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName __isascii__)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {<A>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <od>
                                        more_env: []
                                        words: [{<od>} {<-o>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [
                                          {<sed>}
                                          {<-e>}
                                          {(SQ <'s/[ \t]*$//'>)}
                                          {<-e>}
                                          {(SQ <'/[ \t]/!d'>)}
                                          {<-e>}
                                          {(SQ <'s/.*[ \t]//'>)}
                                        ]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <005101>
                          pattern: (pat.Words words:[{<005101>} {<040412>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike '__isascii__='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '__isascii__='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '__isascii__='>
                                      name: __isascii__
                                    )
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              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 '__isascii__='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike '__isascii__='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike '__isascii__='>
                                      name: __isascii__
                                    )
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Return return>
              arg_word: {($ Id.VSub_DollarName __isascii__)}
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <admin>
          pattern: (pat.Words words:[{<admin>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Simple
                      blame_tok: <test>
                      more_env: []
                      words: [{<test>} {<Id.KW_Bang '!'>} {<-f>} {($ Id.VSub_DollarName admin_db)}]
                      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 admin_db)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <'/'>
                          pattern: (pat.Words words:[{<'/'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                {($ Id.VSub_DollarName action) <Id.Lit_Colon ':'>}
                                {($ Id.VSub_DollarName admin_db) <Id.Lit_Colon ':'>}
                                {<Id.KW_Data data>}
                                {<file>}
                                {<not>}
                                {<found>}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              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.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <view>
                          more_env: []
                          words: [
                            {<view>}
                            {<file>}
                            {<src>}
                            {<'lib/package/admin/'> ($ Id.VSub_DollarName admin_db)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Exit exit>
                          arg_word: {<1>}
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'admin_db='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'admin_db='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_db='> name:admin_db)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName _view_)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'admin_components='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'admin_components='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'admin_components='>
                      name: admin_components
                    )
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName admin_action)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <list>
                  pattern: (pat.Words words:[{<list>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <cat>
                      more_env: []
                      words: [{<cat>} {($ Id.VSub_DollarName admin_db)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <test>
                  pattern: (pat.Words words:[{<test>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {($ Id.VSub_DollarName admin_args)}]
                      redirects: []
                      do_fork: T
                    )
                    (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: <1>
                                  pattern: (pat.Words words:[{<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                                  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.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <Id.Lit_Equals '='> <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_VarLike 'admin_components='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'admin_components='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'admin_components='>
                                              name: admin_components
                                            )
                                          op: assign_op.Equal
                                          rhs: {<-> ($ Id.VSub_Number 1)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (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.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {<all>}
                {<work>}
                {<Id.KW_Done done>}
                {<Id.KW_In in>}
                {($ Id.VSub_DollarName PACKAGESRC) <'/admin'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <cd>
                  more_env: []
                  words: [{<cd>} {($ Id.VSub_DollarName PACKAGESRC) <'/admin'>}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <checksrc>
              more_env: []
              words: [{<checksrc>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'packages='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'packages='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'packages='> name:packages)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'admin_log='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'admin_log='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_log='> name:admin_log)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name admin_action) (${ Id.VSub_Name admin_components) <.log>}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <exec>
                  more_env: []
                  words: [{<exec>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Less '<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: {($ Id.VSub_DollarName admin_db)}
                    )
                  ]
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-d>} {($ Id.VSub_DollarName admin_log)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <Id.VSub_DollarName '$exec'>
                  more_env: []
                  words: [{($ Id.VSub_DollarName exec)} {<mkdir>} {($ Id.VSub_DollarName admin_log)}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)
              ]
              ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName admin_on)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'admin_on='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'admin_on='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_on='> name:admin_on)
                          op: assign_op.Equal
                          rhs: {(DQ <'*'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'hostname='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'hostname='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hostname='> name:hostname)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'hosts='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'hosts='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hosts='> name:hosts)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'logs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'logs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'logs='> name:logs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'local_hosts='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'local_hosts='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'local_hosts='> name:local_hosts)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'local_types='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'local_types='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'local_types='> name:local_types)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'pids='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'pids='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pids='> name:pids)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'remote_hosts='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'remote_hosts='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'remote_hosts='> name:remote_hosts)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'sync_hosts='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'sync_hosts='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sync_hosts='> name:sync_hosts)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'admin_host='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'admin_host='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_host='> name:admin_host)
                  op: assign_op.Equal
                  rhs: {<_admin_host_>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'admin_out='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'admin_out='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_out='> name:admin_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_DollarName admin_args) <' '>)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> (DQ <' write binary '>) <Id.Lit_Star '*'>}
                        {<Id.Lit_Star '*'> (DQ <' write '>) <Id.Lit_Star '*'> (DQ <' binary '>) 
                          <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'admin_binary='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'admin_binary='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'admin_binary='>
                              name: admin_binary
                            )
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      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 'admin_binary='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'admin_binary='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'admin_binary='>
                              name: admin_binary
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName only)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <1>
                  pattern: (pat.Words words:[{<1>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'admin_args='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'admin_args='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_args='> name:admin_args)
                          op: assign_op.Equal
                          rhs: {(DQ <'only '> ($ Id.VSub_DollarName admin_args))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <trap>
              more_env: []
              words: [{<trap>} {(SQ <'kill $pids >/dev/null 2>&1'>)} {<1>} {<2>} {<3>} {<15>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'index='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'index='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'index='> name:index)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Simple
                      blame_tok: <read>
                      more_env: []
                      words: [
                        {<read>}
                        {<type>}
                        {<host>}
                        {<root>}
                        {<date>}
                        {<Id.KW_Time time>}
                        {<make>}
                        {<test>}
                        {<write>}
                        {<owner>}
                        {<attributes>}
                      ]
                      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 type)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )} {(SQ <'#'>) <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_Equals '='> <Id.Lit_Star '*'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {
                                  (DQ ($ Id.VSub_DollarName type) <' '> ($ Id.VSub_DollarName host) 
                                    <' '> ($ Id.VSub_DollarName root) <' '> ($ Id.VSub_DollarName date) <' '> ($ Id.VSub_DollarName time) <' '> 
                                    ($ Id.VSub_DollarName make) <' '> ($ Id.VSub_DollarName test) <' '> ($ Id.VSub_DollarName write) <' '> ($ Id.VSub_DollarName owner) 
                                    <' '> ($ Id.VSub_DollarName attributes)
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<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 admin_action)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <make>
                                  pattern: (pat.Words words:[{<make>} {<test>} {<write>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {<Id.Lit_VarLike 'f='> (SQ <'$'>) 
                                          ($ Id.VSub_DollarName admin_action)
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName f)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                                                  <Id.KW_Bang '!'> <0123456789> <Id.Lit_RBracket ']'> <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: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'rsh='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'rsh='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rsh='> name:rsh)
                                  op: assign_op.Equal
                                  rhs: {<rsh>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName host)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Star '*'> <Id.Lit_At '@'> <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'IFS='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'IFS='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {<Id.Lit_At '@'>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <set>
                                      more_env: []
                                      words: [{<set>} {(SQ )} {($ Id.VSub_DollarName host)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'IFS='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'IFS='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName ifs)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'user='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'user='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'user='>
                                              name: user
                                            )
                                          op: assign_op.Equal
                                          rhs: {(${ Id.VSub_Number 2) <Id.Lit_At '@'>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'host='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'host='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'host='>
                                              name: host
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number 3)}
                                        )
                                      ]
                                      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 'user='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'user='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'user='>
                                              name: user
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <Id.Lit_Colon ':'>
                              more_env: []
                              words: [
                                {<Id.Lit_Colon ':'>}
                                {<Id.Lit_VarLike 'type='> ($ Id.VSub_DollarName type)}
                                {<Id.Lit_VarLike 'host='> ($ Id.VSub_DollarName host)}
                                {<Id.Lit_VarLike 'root='> ($ Id.VSub_DollarName root)}
                                {<Id.Lit_VarLike 'date='> ($ Id.VSub_DollarName date)}
                                {<Id.Lit_VarLike 'time='> ($ Id.VSub_DollarName time)}
                                {<Id.Lit_VarLike 'make='> ($ Id.VSub_DollarName make)}
                                {<Id.Lit_VarLike 'test='> ($ Id.VSub_DollarName test)}
                                {<Id.Lit_VarLike 'write='> ($ Id.VSub_DollarName write)}
                                {<Id.Lit_Colon ':'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'name='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'name='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName host)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'host='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'host='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host='> name:host)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [{<echo>} {($ Id.VSub_DollarName name)}]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sed>
                                                more_env: []
                                                words: [
                                                  {<sed>}
                                                  {
                                                    (SQ 
                                                      <
's,[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789],__,g'
                                                      >
                                                    )
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<Id.Lit_VarLike 'x='> (SQ <'$'>) (${ Id.VSub_Name host) <_index>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [{<eval>} {(${ Id.VSub_Name host) <Id.Lit_VarLike '_index='> <1>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName x)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <1>
                                  pattern: (pat.Words words:[{<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'i='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'i='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                                          op: assign_op.Equal
                                          rhs: {<0>}
                                        )
                                      ]
                                      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_DollarName i)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.VSub_DollarName '$index'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{($ Id.VSub_DollarName index)}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'h='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'h='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'h='>
                                                              name: h
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(SQ )}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'i='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'i='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'i='>
                                                      name: i
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <expr>
                                                            more_env: []
                                                            words: [
                                                              {<expr>}
                                                              {($ Id.VSub_DollarName i)}
                                                              {<Id.Lit_Other '+'>}
                                                              {<1>}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {<Id.Lit_VarLike 'h='> (SQ <'$'>) 
                                                  (${ Id.VSub_Name admin_host) (${ Id.VSub_Name i) <_name>
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName h)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.VSub_DollarName '$host'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{($ Id.VSub_DollarName host)}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'host='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'host='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'host='>
                                                              name: host
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {(${ Id.VSub_Name admin_host) 
                                                              (${ Id.VSub_Name i)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <eval>
                                                      more_env: []
                                                      words: [
                                                        {<eval>}
                                                        {<Id.Lit_VarLike 'user='> (SQ <'$'>) 
                                                          (${ Id.VSub_Name host) <_user>
                                                        }
                                                        {<Id.Lit_VarLike 'root='> (SQ <'$'>) 
                                                          (${ Id.VSub_Name host) <_rsh> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName host) <Id.Lit_Colon ':'> (SQ <'$'>) (${ Id.VSub_Name host) 
                                                          <_root>
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (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.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName root)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                                          ($ Id.VSub_DollarName name) <Id.Lit_Colon ':'> <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'root='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'root='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'root='>
                                              name: root
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [
                                                          {<echo>}
                                                          {(SQ )}
                                                          {($ Id.VSub_DollarName root)}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <sed>
                                                        more_env: []
                                                        words: [{<sed>} {(SQ <'s,:.*,:,'>)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName root)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> 
                                          <Id.Lit_Colon ':'> <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'index='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'index='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'index='>
                                              name: index
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <expr>
                                                    more_env: []
                                                    words: [
                                                      {<expr>}
                                                      {($ Id.VSub_DollarName index)}
                                                      {<Id.Lit_Other '+'>}
                                                      {<1>}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'host='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'host='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'host='>
                                              name: host
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {(${ Id.VSub_Name admin_host) 
                                              ($ Id.VSub_DollarName index)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName sync_hosts) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName name) <' '> 
                                                    (${ Id.VSub_Name admin_host)
                                                  ) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <set>
                                              more_env: []
                                              words: [
                                                {<set>}
                                                {(SQ )}
                                                {(SQ )}
                                                {($ Id.VSub_DollarName sync_hosts)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (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.Simple
                                                      blame_tok: <shift>
                                                      more_env: []
                                                      words: [{<shift>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <shift>
                                                      more_env: []
                                                      words: [{<shift>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_Number 1)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.VSub_DollarName '$name'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{($ Id.VSub_DollarName name)}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'host='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'host='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'host='>
                                                                      name: host
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_Number 2)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (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 _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'index='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'index='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'index='>
                                                      name: index
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <expr>
                                                            more_env: []
                                                            words: [
                                                              {<expr>}
                                                              {($ Id.VSub_DollarName index)}
                                                              {<Id.Lit_Other '+'>}
                                                              {<1>}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'host='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'host='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'host='>
                                                      name: host
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {(${ Id.VSub_Name admin_host) 
                                                      ($ Id.VSub_DollarName index)
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'sync_hosts='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'sync_hosts='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'sync_hosts='>
                                                      name: sync_hosts
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName sync_hosts) <' '> 
                                                        ($ Id.VSub_DollarName name) <' '> ($ Id.VSub_DollarName host)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      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 'index='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'index='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'index='>
                                              name: index
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <expr>
                                                    more_env: []
                                                    words: [
                                                      {<expr>}
                                                      {($ Id.VSub_DollarName index)}
                                                      {<Id.Lit_Other '+'>}
                                                      {<1>}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'host='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'host='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'host='>
                                              name: host
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {(${ Id.VSub_Name admin_host) 
                                              ($ Id.VSub_DollarName index)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName root)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <->
                                  pattern: (pat.Words words:[{<-> <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.Lit_Colon ':'> <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 admin_all)})
                                      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_Continue continue>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName root)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_Star '*'> <Id.Lit_Colon ':'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'root='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'root='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'root='>
                                                      name: root
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(${ Id.VSub_Name root) <.>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'IFS='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'IFS='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {<Id.Lit_Colon ':'>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <set>
                                      more_env: []
                                      words: [{<set>} {(SQ )} {($ Id.VSub_DollarName root)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'IFS='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'IFS='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName ifs)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'sync='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'sync='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'sync='>
                                              name: sync
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName host)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName hostname)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <hostinfo>
                                              more_env: []
                                              words: [{<hostinfo>} {<name>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'hostname='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'hostname='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'hostname='>
                                                      name: hostname
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName _hostinfo_)}
                                                )
                                              ]
                                              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
                                    )
                                    (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: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <1>
                                          pattern: (pat.Words words:[{<1>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'root='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'root='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'root='>
                                                      name: root
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Number 1)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <2>
                                          pattern: (pat.Words words:[{<2>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'rsh='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'rsh='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rsh='>
                                                      name: rsh
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Number 1)}
                                                )
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'root='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'root='>
                                                      name: root
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Number 2)}
                                                )
                                              ]
                                              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 'rsh='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'rsh='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rsh='>
                                                      name: rsh
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Number 1)}
                                                )
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'sync='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'sync='>
                                                      name: sync
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Number 2)}
                                                )
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'root='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'root='>
                                                      name: root
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Number 3)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName sync)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_DollarBrace '${'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {(${ Id.VSub_Name admin_host) 
                                                          <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName sync_hosts) <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName sync) <' '> (${ Id.VSub_Name admin_host)
                                                                  ) <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <set>
                                                              more_env: []
                                                              words: [
                                                                {<set>}
                                                                {(SQ )}
                                                                {(SQ )}
                                                                {($ Id.VSub_DollarName sync_hosts)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (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.Simple
                                                                      blame_tok: <shift>
                                                                      more_env: []
                                                                      words: [{<shift>}]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Simple
                                                                      blame_tok: <shift>
                                                                      more_env: []
                                                                      words: [{<shift>}]
                                                                      redirects: []
                                                                      do_fork: T
                                                                    )
                                                                    (command.Case
                                                                      case_kw: <Id.KW_Case case>
                                                                      to_match: 
                                                                        (case_arg.Word
                                                                          w: {($ Id.VSub_Number 1)}
                                                                        )
                                                                      arms_start: <Id.KW_In in>
                                                                      arms: [
                                                                        (CaseArm
                                                                          left: 
                                                                            <Id.VSub_DollarName 
'$sync'
                                                                            >
                                                                          pattern: 
                                                                            (pat.Words
                                                                              words: [
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName sync
                                                                                  )
                                                                                }
                                                                              ]
                                                                            )
                                                                          middle: 
                                                                            <Id.Right_CasePat _>
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'sync='
                                                                                >
                                                                              pairs: [
                                                                                (AssignPair
                                                                                  left: 
                                                                                    <Id.Lit_VarLike 
'sync='
                                                                                    >
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      left: 
                                                                                        <
Id.Lit_VarLike 'sync='
                                                                                        >
                                                                                      name: sync
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      ($ 
Id.VSub_Number 2
                                                                                      )
                                                                                    }
                                                                                )
                                                                              ]
                                                                              redirects: []
                                                                            )
                                                                            (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 _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'index='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'index='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'index='>
                                                                      name: index
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Simple
                                                                            blame_tok: <expr>
                                                                            more_env: []
                                                                            words: [
                                                                              {<expr>}
                                                                              {
                                                                                ($ 
Id.VSub_DollarName index
                                                                                )
                                                                              }
                                                                              {<Id.Lit_Other '+'>}
                                                                              {<1>}
                                                                            ]
                                                                            redirects: []
                                                                            do_fork: T
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'x='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'x='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'x='>
                                                                      name: x
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {(${ Id.VSub_Name admin_host) 
                                                                      ($ Id.VSub_DollarName index)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'sync_hosts='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 'sync_hosts='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'sync_hosts='
                                                                        >
                                                                      name: sync_hosts
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
sync_hosts
                                                                        ) <' '> ($ Id.VSub_DollarName sync) <' '> ($ Id.VSub_DollarName x)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'sync='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'sync='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'sync='>
                                                                      name: sync
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName x)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      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 'sync='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'sync='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'sync='>
                                              name: sync
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName name)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.VSub_DollarName '$admin_on'>
                                  pattern: (pat.Words words:[{($ Id.VSub_DollarName admin_on)}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'keep='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'keep='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'keep='>
                                              name: keep
                                            )
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName admin_on) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName name) <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'keep='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'keep='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'keep='>
                                                      name: keep
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                )
                                              ]
                                              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 'keep='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'keep='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'keep='>
                                                      name: keep
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<0>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: {(DQ <' '> ($ Id.VSub_DollarName admin_out) <' '>)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> 
                                          (DQ <' '> ($ Id.VSub_DollarName name) <' '>) <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'log='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'log='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'log='>
                                              name: log
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName name) <.> 
                                              ($ Id.VSub_DollarName type)
                                            }
                                        )
                                      ]
                                      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 'admin_out='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'admin_out='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'admin_out='>
                                              name: admin_out
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName admin_out) <' '> 
                                                ($ Id.VSub_DollarName name)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'log='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'log='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'log='>
                                              name: log
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName name)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName sync)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'local_types='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'local_types='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'local_types='>
                                              name: local_types
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName local_types) <' '> 
                                                ($ Id.VSub_DollarName type)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName sync)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.VSub_DollarName '$host'>
                                  pattern: (pat.Words words:[{($ Id.VSub_DollarName host)}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'remote_hosts='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'remote_hosts='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'remote_hosts='>
                                              name: remote_hosts
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName remote_hosts) <' '> 
                                                ($ Id.VSub_DollarName host)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_QMark '?'>
                                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {(${ Id.VSub_Name sync) <Id.Lit_VarLike '_share='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') (${ Id.VSub_Name sync) <_share>
                                        }
                                        {($ Id.VSub_DollarName host) 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                            ch: '"'
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'local_hosts='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'local_hosts='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'local_hosts='>
                                              name: local_hosts
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName local_hosts) <' '> 
                                                ($ Id.VSub_DollarName host)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {(${ Id.VSub_Name host) <Id.Lit_VarLike '_name='> (SQ <'$'>) <name>}
                                {(${ Id.VSub_Name host) <Id.Lit_VarLike '_type='> (SQ <'$'>) <type>}
                                {(${ Id.VSub_Name host) <Id.Lit_VarLike '_user='> (SQ <'$'>) <user>}
                                {(${ Id.VSub_Name host) <Id.Lit_VarLike '_sync='> (SQ <'$'>) <sync>}
                                {(${ Id.VSub_Name host) <Id.Lit_VarLike '_snarf='> (SQ <'$'>) <sync>}
                                {(${ Id.VSub_Name host) <Id.Lit_VarLike '_rsh='> (SQ <'$'>) <rsh>}
                                {(${ Id.VSub_Name host) <Id.Lit_VarLike '_root='> (SQ <'$'>) <root>}
                                {(${ Id.VSub_Name host) <Id.Lit_VarLike '_keep='> (SQ <'$'>) <keep>}
                                {(${ Id.VSub_Name host) <Id.Lit_VarLike '_log='> (SQ <'$'>) <log>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'p='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'p='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName admin_args)}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'p='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'p='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName i) <' '> ($ Id.VSub_DollarName p))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'admin_pkgs='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'admin_pkgs='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'admin_pkgs='> name:admin_pkgs)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName p)}])
              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.Simple
                                  blame_tok: <view>
                                  more_env: []
                                  words: [
                                    {<view>}
                                    {<->}
                                    {<src>}
                                    {(DQ <'lib/package/'> ($ Id.VSub_DollarName i) <.pkg>)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName admin_pkgs)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'admin_pkgs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'admin_pkgs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'admin_pkgs='>
                                              name: admin_pkgs
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName i))}
                                        )
                                      ]
                                      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 'admin_pkgs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'admin_pkgs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'admin_pkgs='>
                                              name: admin_pkgs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName admin_pkgs) <'|'> 
                                                ($ Id.VSub_DollarName i)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          spids: [30802 30817]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {(DQ <'admin_binary :'>)}
                {($ Id.VSub_DollarName admin_binary)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [{<Id.Lit_Colon ':'>} {(DQ <'admin_args   :'>)} {($ Id.VSub_DollarName admin_args)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [{<Id.Lit_Colon ':'>} {(DQ <'admin_pkgs   :'>)} {($ Id.VSub_DollarName admin_pkgs)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {(DQ <'admin_on     :'>)}
                {(DQ ($ Id.VSub_DollarName admin_on))}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {(DQ <'local_hosts  :'>)}
                {($ Id.VSub_DollarName local_hosts)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {(DQ <'local_types  :'>)}
                {($ Id.VSub_DollarName local_types)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [
                {<Id.Lit_Colon ':'>}
                {(DQ <'remote_hosts :'>)}
                {($ Id.VSub_DollarName remote_hosts)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [{<Id.Lit_Colon ':'>} {(DQ <'sync_hosts   :'>)} {($ Id.VSub_DollarName sync_hosts)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.Lit_Colon ':'>
              more_env: []
              words: [{<Id.Lit_Colon ':'>} {(DQ <'sync_share   :'>)} {($ Id.VSub_DollarName sync_share)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName admin_binary)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <1>
                  pattern: (pat.Words words:[{<1>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'admin_bin_types='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'admin_bin_types='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'admin_bin_types='>
                              name: admin_bin_types
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'admin_bin_main='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'admin_bin_main='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'admin_bin_main='>
                              name: admin_bin_main
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [main]
                      iterable: 
                        (for_iter.Words
                          words: [
                            {($ Id.VSub_DollarName local_hosts)}
                            {($ Id.VSub_DollarName remote_hosts)}
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<Id.Lit_VarLike 'share='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\$'>
                                    ch: '$'
                                  ) (${ Id.VSub_Name main) <_share>
                                }
                                {<Id.Lit_VarLike 'keep='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\$'>
                                    ch: '$'
                                  ) (${ Id.VSub_Name main) <_keep>
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName keep)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <0>
                                  pattern: (pat.Words words:[{<0> <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.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [host]
                              iterable: 
                                (for_iter.Words
                                  words: [{($ Id.VSub_DollarName main)} {($ Id.VSub_DollarName share)}]
                                )
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName admin_bin_hosts) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName host) <' '>) <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.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {<Id.Lit_VarLike 'type='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\$'>
                                            ch: '$'
                                          ) (${ Id.VSub_Name host) <_type>
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName admin_bin_types) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName type) <' '>) <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.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName types) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_DoubleQuote '"'>
                                          pattern: (pat.Words words:[{(DQ <'  '>)}])
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName type) <' '>) <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 'admin_bin_hosts='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'admin_bin_hosts='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'admin_bin_hosts='>
                                              name: admin_bin_hosts
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName admin_bin_hosts) <' '> 
                                                ($ Id.VSub_DollarName host)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'admin_bin_types='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'admin_bin_types='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'admin_bin_types='>
                                              name: admin_bin_types
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName admin_bin_types) <' '> 
                                                ($ Id.VSub_DollarName type)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName admin_bin_hosts) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName main) <' '>) <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.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {
                                                      (DQ <' '> ($ Id.VSub_DollarName admin_bin_main) 
                                                        <' '>
                                                      )
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName main) <' '>) <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_VarLike 'admin_bin_main='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'admin_bin_main='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: 
                                                                <Id.Lit_VarLike 'admin_bin_main='>
                                                              name: admin_bin_main
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName admin_bin_main) <' '> ($ Id.VSub_DollarName main)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'local='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'local='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'local='> name:local)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'remote='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'remote='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'remote='> name:remote)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [host]
                      iterable: 
                        (for_iter.Words
                          words: [
                            {($ Id.VSub_DollarName admin_bin_main)}
                            {($ Id.VSub_DollarName admin_bin_hosts)}
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: {(DQ <' '> ($ Id.VSub_DollarName local_hosts) <' '>)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> 
                                          (DQ <' '> ($ Id.VSub_DollarName host) <' '>) <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'local='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'local='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'local='>
                                              name: local
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName local) <' '> 
                                                ($ Id.VSub_DollarName host)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName remote_hosts) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName host) <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'remote='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'remote='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'remote='>
                                                      name: remote
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName remote) <' '> 
                                                        ($ Id.VSub_DollarName host)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'local_hosts='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'local_hosts='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'local_hosts='>
                              name: local_hosts
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName local)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'remote_hosts='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'remote_hosts='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'remote_hosts='>
                              name: remote_hosts
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName remote)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [host]
              iterable: 
                (for_iter.Words
                  words: [{($ Id.VSub_DollarName remote_hosts)} {($ Id.VSub_DollarName local_hosts)}]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<Id.Lit_VarLike 'share='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) (${ Id.VSub_Name host) <_share>
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName share)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (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.ShAssignment
                                      left: <Id.Lit_VarLike 'oshare='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'oshare='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'oshare='>
                                              name: oshare
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName share)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [s]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName share)}]
                                        )
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {<Id.Lit_VarLike 'r='> (SQ <'$'>) (${ Id.VSub_Name s) 
                                                  <_share>
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName r)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ <' '> ($ Id.VSub_DollarName share) 
                                                                <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' '> ($ Id.VSub_DollarName r) 
                                                                    <' '>
                                                                  ) <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_VarLike 'share='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'share='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'share='>
                                                                      name: share
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName share) <' '> ($ Id.VSub_DollarName r)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName share)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.VSub_DollarName '$oshare'>
                                          pattern: 
                                            (pat.Words
                                              words: [{($ Id.VSub_DollarName oshare)}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {(${ Id.VSub_Name host) <Id.Lit_VarLike '_share='> 
                                                  (DQ <'\''> ($ Id.VSub_DollarName share) <'\''>)
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (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: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [host]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName remote_hosts)}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<Id.Lit_VarLike 'type='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) (${ Id.VSub_Name host) <_type>
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName local_types) <' '>)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName type) <' '>) 
                                  <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [{<eval>} {(${ Id.VSub_Name host) <Id.Lit_VarLike '_snarf='>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<Id.Lit_VarLike 'name='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) (${ Id.VSub_Name host) <_name>
                        }
                        {<Id.Lit_VarLike 'keep='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) (${ Id.VSub_Name host) <_keep>
                        }
                        {<Id.Lit_VarLike 'share='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) (${ Id.VSub_Name host) <_share>
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [share]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName share)}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<Id.Lit_VarLike 'type='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\$'>
                                    ch: '$'
                                  ) (${ Id.VSub_Name share) <_type>
                                }
                                {<Id.Lit_VarLike 'keep='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\$'>
                                    ch: '$'
                                  ) <keep> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') (${ Id.VSub_Name share) 
                                  <_keep>
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: {(DQ <' '> ($ Id.VSub_DollarName local_types) <' '>)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> 
                                          (DQ <' '> ($ Id.VSub_DollarName type) <' '>) <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {(${ Id.VSub_Name share) <Id.Lit_VarLike '_snarf='>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName keep)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0> <Id.Lit_Star '*'> <1> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'keep='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'keep='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'keep='> name:keep)
                                  op: assign_op.Equal
                                  rhs: {<2> ($ Id.VSub_DollarName keep)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <1> <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_VarLike 'keep='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'keep='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'keep='> name:keep)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {(${ Id.VSub_Name host) <Id.Lit_VarLike '_keep='> ($ Id.VSub_DollarName keep)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [host]
              iterable: 
                (for_iter.Words
                  words: [{($ Id.VSub_DollarName remote_hosts)} {($ Id.VSub_DollarName local_hosts)}]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<Id.Lit_VarLike 'name='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) (${ Id.VSub_Name host) <_name>
                        }
                        {<Id.Lit_VarLike 'user='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) (${ Id.VSub_Name host) <_user>
                        }
                        {<Id.Lit_VarLike 'type='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) (${ Id.VSub_Name host) <_type>
                        }
                        {<Id.Lit_VarLike 'sync='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) (${ Id.VSub_Name host) <_sync>
                        }
                        {<Id.Lit_VarLike 'snarf='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) (${ Id.VSub_Name host) <_snarf>
                        }
                        {<Id.Lit_VarLike 'share='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) (${ Id.VSub_Name host) <_share>
                        }
                        {<Id.Lit_VarLike 'rsh='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) (${ Id.VSub_Name host) <_rsh>
                        }
                        {<Id.Lit_VarLike 'root='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) (${ Id.VSub_Name host) <_root>
                        }
                        {<Id.Lit_VarLike 'keep='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                            ch: '$'
                          ) (${ Id.VSub_Name host) <_keep>
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName keep)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0> <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.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName sync)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName admin_action)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <ditto>
                                  pattern: (pat.Words words:[{<ditto>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName admin_binary)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <1>
                                  pattern: (pat.Words words:[{<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName keep)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <1>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<1> <Id.Lit_Star '*'>}
                                                {<Id.Lit_QMark '?'> <Id.Lit_Star '*'> <1> 
                                                  <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: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<Id.Lit_VarLike 'main_log='> (SQ <'$'>) (${ Id.VSub_Name host) <_log>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'main='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'main='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'main='> name:main)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'share_keep='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'share_keep='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'share_keep='> name:share_keep)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: 
                        (for_iter.Words
                          words: [{($ Id.VSub_DollarName host)} {($ Id.VSub_DollarName share)}]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<Id.Lit_VarLike 'n='> (SQ <'$'>) (${ Id.VSub_Name i) <_name>}
                                {<Id.Lit_VarLike 't='> (SQ <'$'>) (${ Id.VSub_Name i) <_type>}
                                {<Id.Lit_VarLike 'q='> (SQ <'$'>) (${ Id.VSub_Name i) <_sync>}
                                {<Id.Lit_VarLike 's='> (SQ <'$'>) (${ Id.VSub_Name i) <_snarf>}
                                {<Id.Lit_VarLike 'l='> (SQ <'$'>) (${ Id.VSub_Name i) <_log>}
                                {<Id.Lit_VarLike 'k='> (SQ <'$'>) (${ Id.VSub_Name i) <_keep>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: 
                                    {($ Id.VSub_DollarName main) <Id.Lit_Colon ':'> 
                                      ($ Id.VSub_DollarName k)
                                    }
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Colon ':'>
                                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <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_Colon ':'> <0>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName admin_binary)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <1>
                                  pattern: (pat.Words words:[{<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {($ Id.VSub_DollarName s) <Id.Lit_Colon ':'> 
                                              ($ Id.VSub_DollarName q)
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Colon ':'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Colon ':'> <Id.Lit_QMark '?'> 
                                                  <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.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName admin_bin_hosts) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName i) <' '>) <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: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName main)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'main='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'main='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'main='>
                                              name: main
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName i)}
                                        )
                                      ]
                                      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 'share_keep='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'share_keep='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'share_keep='>
                                              name: share_keep
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName share_keep) <' '> 
                                                ($ Id.VSub_DollarName i)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {<package>}
                                {(DQ ($ Id.VSub_DollarName admin_args))}
                                {
                                  (DQ <'[ '> ($ Id.VSub_DollarName n) <' '> ($ Id.VSub_DollarName t) 
                                    <' ]'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName exec)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_Colon ':'>
                                      more_env: []
                                      words: [{<Id.Lit_Colon ':'>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: 
                                            {($ Id.VSub_DollarName admin_log) <'/'> 
                                              ($ Id.VSub_DollarName l)
                                            }
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  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: <Id.VSub_DollarName '$exec'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName exec)}
                                        {
                                          (DQ <': > '> ($ Id.VSub_DollarName admin_log) <'/'> 
                                            ($ Id.VSub_DollarName l)
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'host='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'host='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host='> name:host)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName main)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'share='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'share='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'share='> name:share)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName share_keep)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName force)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'admin_ditto_update='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'admin_ditto_update='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'admin_ditto_update='>
                                      name: admin_ditto_update
                                    )
                                  op: assign_op.Equal
                                  rhs: {<--update>}
                                )
                              ]
                              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 'admin_ditto_update='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'admin_ditto_update='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'admin_ditto_update='>
                                      name: admin_ditto_update
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName exec)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Sentence
                              child: 
                                (BraceGroup
                                  left: <Id.Lit_LBrace '{'>
                                  children: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {($ Id.VSub_DollarName admin_binary) <Id.Lit_Colon ':'> 
                                              ($ Id.VSub_DollarName sync)
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Colon ':'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Colon ':'> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {<Id.Lit_VarLike 'syncname='> (SQ <'$'>) 
                                                  (${ Id.VSub_Name sync) <_name>
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-x>}
                                                    {($ Id.VSub_DollarName PACKAGEROOT) 
                                                      <'/bin/package'>
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$admin_ditto'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName admin_ditto)}
                                                    {($ Id.VSub_DollarName admin_ditto_update)}
                                                    {<--remote> <Id.Lit_Equals '='> 
                                                      ($ Id.VSub_DollarName rsh)
                                                    }
                                                    {<--expr> <Id.Lit_Equals '='> 
                                                      (DQ <'name==\'package\''>)
                                                    }
                                                    {($ Id.VSub_DollarName PACKAGEROOT) <'/bin'>}
                                                    {($ Id.VSub_DollarName user) 
                                                      ($ Id.VSub_DollarName syncname) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName root) <'/bin'>
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-d>}
                                                    {($ Id.VSub_DollarName PACKAGESRC)}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$admin_ditto'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName admin_ditto)}
                                                    {($ Id.VSub_DollarName admin_ditto_update)}
                                                    {<--remote> <Id.Lit_Equals '='> 
                                                      ($ Id.VSub_DollarName rsh)
                                                    }
                                                    {<--expr> <Id.Lit_Equals '='> 
                                                      (DQ 
                                                        <
'if(level>1&&path!=\'LICENSES/*\')status=SKIP;path==\'LICENSES*|*.(pkg|lic|def)\''
                                                        >
                                                      )
                                                    }
                                                    {($ Id.VSub_DollarName PACKAGESRC)}
                                                    {($ Id.VSub_DollarName user) 
                                                      ($ Id.VSub_DollarName syncname) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName root) <'/lib/package'>
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [dir]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{($ Id.VSub_DollarName package_src)}]
                                                )
                                              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 MAKESKIP)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_SingleQuote '\''>
                                                          pattern: (pat.Words words:[{(SQ )}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'expr='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'expr='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'expr='>
                                                                      name: expr
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <'--expr=if(name==\''> 
                                                                        ($ Id.VSub_DollarName 
admin_ditto_skip
                                                                        ) <'\')status=SKIP'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              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 'expr='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'expr='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'expr='>
                                                                      name: expr
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <'--expr=if(name==\''> 
                                                                        ($ Id.VSub_DollarName 
admin_ditto_skip
                                                                        ) <'\'||level==1&&name==\''> ($ Id.VSub_DollarName MAKESKIP) <'\')status=SKIP'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-d>}
                                                            {($ Id.VSub_DollarName PACKAGEROOT) 
                                                              <'/src/'> ($ Id.VSub_DollarName dir)
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: 
                                                            <Id.VSub_DollarName '$admin_ditto'>
                                                          more_env: []
                                                          words: [
                                                            {($ Id.VSub_DollarName admin_ditto)}
                                                            {
                                                              ($ Id.VSub_DollarName 
admin_ditto_update
                                                              )
                                                            }
                                                            {<--remote> <Id.Lit_Equals '='> 
                                                              ($ Id.VSub_DollarName rsh)
                                                            }
                                                            {(DQ ($ Id.VSub_DollarName expr))}
                                                            {($ Id.VSub_DollarName PACKAGEROOT) 
                                                              <'/src/'> ($ Id.VSub_DollarName dir)
                                                            }
                                                            {($ Id.VSub_DollarName user) 
                                                              ($ Id.VSub_DollarName syncname) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName root) <'/src/'> ($ Id.VSub_DollarName dir)
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DAmp _>]
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName admin_action)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <ditto>
                                          pattern: (pat.Words words:[{<ditto>}])
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_QMark '?'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'pids='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'pids='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'pids='>
                                                      name: pids
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <set>
                                              more_env: []
                                              words: [
                                                {<set>}
                                                {(SQ )}
                                                {($ Id.VSub_DollarName host)}
                                                {($ Id.VSub_DollarName share)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (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.Simple
                                                      blame_tok: <shift>
                                                      more_env: []
                                                      words: [{<shift>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (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 _>
                                                        )
                                                        (CaseArm
                                                          left: <1>
                                                          pattern: (pat.Words words:[{<1>}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <remote>
                                                              more_env: []
                                                              words: [{<remote>} {($ Id.VSub_Number 1)}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [{<Id.Lit_Star '*'>}]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.Simple
                                                                  blame_tok: <remote>
                                                                  more_env: []
                                                                  words: [
                                                                    {<remote>}
                                                                    {($ Id.VSub_Number 1)}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              terminator: <Id.Op_Amp _>
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'pids='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'pids='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'pids='>
                                                                      name: pids
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName pids) 
                                                                        <' '> ($ Id.VSub_Bang '!')
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName pids)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <wait>
                                                      more_env: []
                                                      words: [{<wait>} {($ Id.VSub_DollarName pids)}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Less '<'>
                                      loc: (redir_loc.Fd fd:0)
                                      arg: {<'/dev/null'>}
                                    )
                                    (Redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: 
                                        {($ Id.VSub_DollarName admin_log) <'/'> 
                                          ($ Id.VSub_DollarName main_log)
                                        }
                                    )
                                    (Redir
                                      op: <Id.Redir_GreatAnd '2>&'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<1>}
                                    )
                                  ]
                                  right: <Id.Lit_RBrace '}'>
                                )
                              terminator: <Id.Op_Amp _>
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'pids='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'pids='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pids='> name:pids)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName pids) <' '> ($ Id.VSub_Bang '!'))}
                                )
                              ]
                              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: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'{'>)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: 
                                    {($ Id.VSub_DollarName admin_binary) <Id.Lit_Colon ':'> 
                                      ($ Id.VSub_DollarName sync)
                                    }
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Colon ':'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Colon ':'> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {<Id.Lit_VarLike 'syncname='> (SQ <'$'>) 
                                          (${ Id.VSub_Name sync) <_name>
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-d>} {($ Id.VSub_DollarName PACKAGESRC)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [
                                            {<echo>}
                                            {($ Id.VSub_DollarName admin_ditto)}
                                            {($ Id.VSub_DollarName admin_ditto_update)}
                                            {<--remote> <Id.Lit_Equals '='> ($ Id.VSub_DollarName rsh)}
                                            {<--expr> <Id.Lit_Equals '='> 
                                              (DQ 
                                                <'if(level>1)status=SKIP;name==\'*.(pkg|lic|def)\''>
                                              )
                                            }
                                            {($ Id.VSub_DollarName PACKAGESRC)}
                                            {($ Id.VSub_DollarName user) 
                                              ($ Id.VSub_DollarName syncname) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName root) <'/lib/package'>
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _>]
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [dir]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName package_src)}]
                                        )
                                      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 MAKESKIP)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'expr='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'expr='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'expr='>
                                                              name: expr
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ <'--expr=if(name==\''> 
                                                                ($ Id.VSub_DollarName 
admin_ditto_skip
                                                                ) <'\')status=SKIP'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      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 'expr='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'expr='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'expr='>
                                                              name: expr
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ <'--expr=if(name==\''> 
                                                                ($ Id.VSub_DollarName 
admin_ditto_skip
                                                                ) <'\'||level==1&&name==\''> ($ Id.VSub_DollarName MAKESKIP) <'\')status=SKIP'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-d>}
                                                    {($ Id.VSub_DollarName PACKAGEROOT) <'/src/'> 
                                                      ($ Id.VSub_DollarName dir)
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [
                                                    {<echo>}
                                                    {($ Id.VSub_DollarName admin_ditto)}
                                                    {($ Id.VSub_DollarName admin_ditto_update)}
                                                    {<--remote> <Id.Lit_Equals '='> 
                                                      ($ Id.VSub_DollarName rsh)
                                                    }
                                                    {(DQ ($ Id.VSub_DollarName expr))}
                                                    {($ Id.VSub_DollarName PACKAGEROOT) <'/src/'> 
                                                      ($ Id.VSub_DollarName dir)
                                                    }
                                                    {($ Id.VSub_DollarName user) 
                                                      ($ Id.VSub_DollarName syncname) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName root) <'/src/'> ($ Id.VSub_DollarName dir)
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName admin_action)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <ditto>
                                  pattern: (pat.Words words:[{<ditto>}])
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_QMark '?'>
                                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'pids='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'pids='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'pids='>
                                              name: pids
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <set>
                                      more_env: []
                                      words: [
                                        {<set>}
                                        {(SQ )}
                                        {($ Id.VSub_DollarName host)}
                                        {($ Id.VSub_DollarName share)}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (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.Simple
                                              blame_tok: <shift>
                                              more_env: []
                                              words: [{<shift>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (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 _>
                                                )
                                                (CaseArm
                                                  left: <1>
                                                  pattern: (pat.Words words:[{<1>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <remote>
                                                      more_env: []
                                                      words: [{<remote>} {($ Id.VSub_Number 1)}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  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: <remote>
                                                      more_env: []
                                                      words: [
                                                        {<remote>}
                                                        {($ Id.VSub_Number 1)}
                                                        {(DQ <'&'>)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'pids='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'pids='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'pids='>
                                                              name: pids
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<1>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName pids)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <1>
                                          pattern: (pat.Words words:[{<1>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [{<echo>} {<wait>}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ <'} < /dev/null > '> ($ Id.VSub_DollarName admin_log) <'/'> 
                                    ($ Id.VSub_DollarName main_log) <' 2>&1 &'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<Id.Lit_VarLike 'name='> (SQ <'$'>) (${ Id.VSub_Name main) <_name>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'hosts='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'hosts='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hosts='> name:hosts)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName hosts) <' '> ($ Id.VSub_DollarName name))}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'logs='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'logs='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'logs='> name:logs)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName logs) <' '> ($ Id.VSub_DollarName main_log))}
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [share]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName share)}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<Id.Lit_VarLike 'keep='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\$'>
                                    ch: '$'
                                  ) (${ Id.VSub_Name share) <_keep>
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName keep)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <1>
                                  pattern: (pat.Words words:[{<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <eval>
                                      more_env: []
                                      words: [
                                        {<eval>}
                                        {<Id.Lit_VarLike 'name='> (SQ <'$'>) (${ Id.VSub_Name share) 
                                          <_name>
                                        }
                                        {<Id.Lit_VarLike 'log='> (SQ <'$'>) (${ Id.VSub_Name share) 
                                          <_log>
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'hosts='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'hosts='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'hosts='>
                                              name: hosts
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName hosts) <' '> 
                                                ($ Id.VSub_DollarName name)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'logs='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'logs='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'logs='>
                                              name: logs
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName logs) <' '> 
                                                ($ Id.VSub_DollarName log)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName exec)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName quiet)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <cd>
                              more_env: []
                              words: [{<cd>} {($ Id.VSub_DollarName admin_log)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <tail>
                              more_env: []
                              words: [
                                {<tail>}
                                {<-t>}
                                {($ Id.VSub_DollarName PACKAGE_admin_tail_timeout)}
                                {<-f>}
                                {($ Id.VSub_DollarName logs)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <cd>
                              more_env: []
                              words: [{<cd>} {<..>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <wait>
                      more_env: []
                      words: [{<wait>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <trap>
                      more_env: []
                      words: [{<trap>} {<->} {<1>} {<2>} {<3>} {<15>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <exec>
                          more_env: []
                          words: [{<exec>}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Less '<'>
                              loc: (redir_loc.Fd fd:0)
                              arg: {($ Id.VSub_DollarName admin_db)}
                            )
                          ]
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Exit exit>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.Simple
                      blame_tok: <exec>
                      more_env: []
                      words: [{<exec>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '9>&'>
                          loc: (redir_loc.Fd fd:9)
                          arg: {<1>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'D='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'D='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'D='> name:D)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                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.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Simple
                              blame_tok: <read>
                              more_env: []
                              words: [{<read>} {<line>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [{<set>} {<-->} {($ Id.VSub_DollarName line)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {(SQ )}
                                        {(SQ <'#'>) <Id.Lit_Star '*'>}
                                        {<Id.Lit_Star '*'> <Id.Lit_Equals '='> <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.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName hosts) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_Number 2) <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <Id.Lit_Colon ':'>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_Colon ':'>}
                                                {<ast>}
                                                {<date>}
                                                {<command>}
                                                {<assumed>}
                                                {<Id.Lit_Colon ':'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'E='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'E='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'E='>
                                                      name: E
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <eval>
                                                            more_env: []
                                                            words: [
                                                              {<eval>}
                                                              {<date>}
                                                              {<-E>}
                                                              {
                                                                (CommandSub
                                                                  left_token: <Id.Left_Backtick '`'>
                                                                  child: 
                                                                    (command.Pipeline
                                                                      children: [
                                                                        (command.Simple
                                                                          blame_tok: <egrep>
                                                                          more_env: []
                                                                          words: [
                                                                            {<egrep>}
                                                                            {
                                                                              (SQ 
                                                                                <
'[ \t](start|done)[ \t][ \t]*at[ \t]'
                                                                                >
                                                                              )
                                                                            }
                                                                            {
                                                                              ($ Id.VSub_DollarName 
admin_log
                                                                              ) <'/'> ($ Id.VSub_Number 2)
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                        (command.Simple
                                                                          blame_tok: <sed>
                                                                          more_env: []
                                                                          words: [
                                                                            {<sed>}
                                                                            {<-e>}
                                                                            {
                                                                              (SQ 
                                                                                <
's/.*[ \t][ \t]*at[ \t][ \t]*//'
                                                                                >
                                                                              )
                                                                            }
                                                                            {<-e>}
                                                                            {
                                                                              (SQ 
                                                                                <
's/[ \t][ \t]*in[ \t].*$//'
                                                                                >
                                                                              )
                                                                            }
                                                                            {<-e>}
                                                                            {(SQ <'s/.*/"&"/'>)}
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                      ops: [<Id.Op_Pipe _>]
                                                                    )
                                                                  right: <Id.Backtick_Right '`'>
                                                                )
                                                              }
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'M='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'M='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'M='>
                                                      name: M
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Number 6)}
                                                )
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'T='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'T='>
                                                      name: T
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Number 7)}
                                                )
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'W='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'W='>
                                                      name: W
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Number 8)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName admin_action)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <make>
                                                  pattern: (pat.Words words:[{<make>} {<view>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'M='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'M='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'M='>
                                                              name: M
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Simple
                                                                    blame_tok: <egrep>
                                                                    more_env: []
                                                                    words: [
                                                                      {<egrep>}
                                                                      {<-c>}
                                                                      {
                                                                        (SQ 
                                                                          <
']:.* (\\*\\*\\*.* code|don'
                                                                          >
                                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') 
                                                                        (SQ 
                                                                          <
't know) | \\*\\*\\* termination code '
                                                                          >
                                                                        )
                                                                      }
                                                                      {
                                                                        ($ Id.VSub_DollarName 
admin_log
                                                                        ) <'/'> ($ Id.VSub_Number 2)
                                                                      }
                                                                    ]
                                                                    redirects: []
                                                                    do_fork: T
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <test>
                                                  pattern: (pat.Words words:[{<test>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'T='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'T='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'T='>
                                                              name: T
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Simple
                                                                    blame_tok: <grep>
                                                                    more_env: []
                                                                    words: [
                                                                      {<grep>}
                                                                      {<-ci>}
                                                                      {(SQ <'fail[es]'>)}
                                                                      {
                                                                        ($ Id.VSub_DollarName 
admin_log
                                                                        ) <'/'> ($ Id.VSub_Number 2)
                                                                      }
                                                                    ]
                                                                    redirects: []
                                                                    do_fork: T
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      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 'W='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'W='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'W='>
                                                              name: W
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: <grep>
                                                                        more_env: []
                                                                        words: [
                                                                          {<grep>}
                                                                          {
                                                                            (SQ 
                                                                              <
'^[abcdefghijklmnopqrstuvwxyz][abcdefghijklmnopqrstuvwxyz]*:.'
                                                                              >
                                                                            )
                                                                          }
                                                                          {
                                                                            ($ Id.VSub_DollarName 
admin_log
                                                                            ) <'/'> ($ Id.VSub_Number 2)
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: <egrep>
                                                                        more_env: []
                                                                        words: [
                                                                          {<egrep>}
                                                                          {<-cv>}
                                                                          {
                                                                            (SQ 
                                                                              <
'start at|done  at|output captured|warning:|: package not found|whence: command not found'
                                                                              >
                                                                            )
                                                                          }
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_QMark '?'>}
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 't1='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 't1='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 't1='>
                                                              name: t1
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(SQ <'\t\t'>)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 't1='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 't1='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 't1='>
                                                              name: t1
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(SQ <'\t'>)}
                                                        )
                                                      ]
                                                      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 't1='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 't1='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 't1='>
                                                              name: t1
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(SQ )}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_Number 2)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_QMark '?'>}
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 't2='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 't2='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 't2='>
                                                              name: t2
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(SQ <'\t'>)}
                                                        )
                                                      ]
                                                      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 't2='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 't2='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 't2='>
                                                              name: t2
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(SQ )}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_Number 3)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_QMark '?'>}
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 't3='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 't3='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 't3='>
                                                              name: t3
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(SQ <'\t'>)}
                                                        )
                                                      ]
                                                      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 't3='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 't3='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 't3='>
                                                              name: t3
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(SQ )}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName E)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'E='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'E='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'E='>
                                                              name: E
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <' '> ($ Id.VSub_DollarName E))}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'E='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'E='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'E='>
                                                              name: E
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <'  '> ($ Id.VSub_DollarName E))}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'E='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'E='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'E='>
                                                              name: E
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <'   '> ($ Id.VSub_DollarName E))}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'E='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'E='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'E='>
                                                              name: E
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <'    '> ($ Id.VSub_DollarName E))}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'E='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'E='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'E='>
                                                              name: E
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {(DQ <'     '> ($ Id.VSub_DollarName E))}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName M)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'M='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'M='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'M='>
                                                              name: M
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ ($ Id.VSub_DollarName M))}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'M='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'M='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'M='>
                                                              name: M
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <' '> ($ Id.VSub_DollarName M))}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'M='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'M='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'M='>
                                                              name: M
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <'  '> ($ Id.VSub_DollarName M))}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'M='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'M='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'M='>
                                                              name: M
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <'  0'>)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName T)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'T='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'T='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'T='>
                                                              name: T
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ ($ Id.VSub_DollarName T))}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'T='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'T='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'T='>
                                                              name: T
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <' '> ($ Id.VSub_DollarName T))}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'T='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'T='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'T='>
                                                              name: T
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <'  '> ($ Id.VSub_DollarName T))}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'T='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'T='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'T='>
                                                              name: T
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <'  0'>)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName W)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                                                          <Id.Lit_QMark '?'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'W='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'W='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'W='>
                                                              name: W
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ ($ Id.VSub_DollarName W))}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'W='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'W='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'W='>
                                                              name: W
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <' '> ($ Id.VSub_DollarName W))}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'W='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'W='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'W='>
                                                              name: W
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <'  '> ($ Id.VSub_DollarName W))}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'W='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'W='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'W='>
                                                              name: W
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <'  0'>)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'A='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'A='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'A='>
                                                      name: A
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_Number 1) ($ Id.VSub_DollarName t1)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'H='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'H='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'H='>
                                                      name: H
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_Number 2) ($ Id.VSub_DollarName t2)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'R='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'R='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'R='>
                                                      name: R
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_Number 3) ($ Id.VSub_DollarName t3)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (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: <Id.Lit_LBracket '['>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_LBracket '['> <0-8> 
                                                          <Id.Lit_RBracket ']'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'O='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'O='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'O='>
                                                              name: O
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'K='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'K='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'K='>
                                                              name: K
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: (rhs_word__Empty)
                                                        )
                                                      ]
                                                      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: <shift>
                                                      more_env: []
                                                      words: [{<shift>} {<8>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'O='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'O='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'O='>
                                                              name: O
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_Number 1)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'K='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'K='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'K='>
                                                              name: K
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_Number 2)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName O)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_SingleQuote '\''>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {(SQ )}
                                                                {<Id.Lit_QMark '?'>}
                                                                {<Id.Lit_QMark '?'> 
                                                                  <Id.Lit_QMark '?'>
                                                                }
                                                                {<Id.Lit_QMark '?'> 
                                                                  <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'K='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'K='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'K='>
                                                                      name: K
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <'\t'> 
                                                                        ($ Id.VSub_DollarName K)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (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: <Id.Lit_LBracket '['>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_LBracket '['> <0-2> 
                                                                  <Id.Lit_RBracket ']'>
                                                                }
                                                              ]
                                                            )
                                                          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_VarLike 'K='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'K='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'K='>
                                                                      name: K
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName K) 
                                                                        <' '> ($ Id.VSub_Star '*')
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName A) <'\t'> 
                                                    ($ Id.VSub_DollarName H) <'\t'> ($ Id.VSub_DollarName R) <'\t'> ($ Id.VSub_DollarName D) <'\t'> ($ Id.VSub_DollarName E) <'\t'> 
                                                    ($ Id.VSub_DollarName M) <' '> ($ Id.VSub_DollarName T) <' '> ($ Id.VSub_DollarName W) <' '> ($ Id.VSub_DollarName O) <'\t'> 
                                                    ($ Id.VSub_DollarName K)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName A) <'\t'> 
                                                    ($ Id.VSub_DollarName H) <'\t'> ($ Id.VSub_DollarName R) <'\t'> ($ Id.VSub_DollarName D) <'\t'> ($ Id.VSub_DollarName E) <'\t'> 
                                                    ($ Id.VSub_DollarName M) <' '> ($ Id.VSub_DollarName T) <' '> ($ Id.VSub_DollarName W) <' '> ($ Id.VSub_DollarName O) <'\t'> 
                                                    ($ Id.VSub_DollarName K)
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<9>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ ($ Id.VSub_DollarName line))}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName admin_db) <.new>}
                        )
                      ]
                    )
                    (command.Simple
                      blame_tok: <mv>
                      more_env: []
                      words: [
                        {<mv>}
                        {($ Id.VSub_DollarName admin_db)}
                        {($ Id.VSub_DollarName admin_db) <.old>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <mv>
                      more_env: []
                      words: [
                        {<mv>}
                        {($ Id.VSub_DollarName admin_db) <.new>}
                        {($ Id.VSub_DollarName admin_db)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <clean>
          pattern: (pat.Words words:[{<clean>} {<clobber>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <cd>
              more_env: []
              words: [{<cd>} {($ Id.VSub_DollarName PACKAGEROOT)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$exec'>
              more_env: []
              words: [{($ Id.VSub_DollarName exec)} {<rm>} {<-rf>} {($ Id.VSub_DollarName INSTALLROOT)}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <contents>
          pattern: (pat.Words words:[{<contents>} {<list>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <cd>
              more_env: []
              words: [{<cd>} {($ Id.VSub_DollarName PACKAGESRC)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName target)} {($ Id.VSub_DollarName package)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'argc='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'argc='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'argc='> name:argc)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Pound '#')}
                )
              ]
              redirects: []
            )
            (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.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {(SQ )} {<Id.Lit_Star '*'> <.pkg>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 2)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ <'*.pkg'>)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                {($ Id.VSub_DollarName action) <Id.Lit_Colon ':'>}
                                {<no>}
                                {<packages>}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              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: <set>
                      more_env: []
                      words: [
                        {<set>}
                        {(SQ )}
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [{<echo>} {($ Id.VSub_Star '*')}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <sed>
                                    more_env: []
                                    words: [{<sed>} {(SQ <'s,\\.pkg,,g'>)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'sep='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'sep='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sep='> name:sep)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName nl) <'    '>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {<packages>} {<Id.KW_In in>} {($ Id.VSub_DollarName PACKAGEROOT)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <list>
                  pattern: (pat.Words words:[{<list>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Pipeline
                      children: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {
                              (DQ <NAME> (${ Id.VSub_Name nl) <VERSION> (${ Id.VSub_Name nl) <RELEASE> 
                                (${ Id.VSub_Name nl) <TYPE> (${ Id.VSub_Name nl) <STATUS> (${ Id.VSub_Name nl) <REQUIRES> (${ Id.VSub_Name nl) <----> 
                                (${ Id.VSub_Name nl) <-------> (${ Id.VSub_Name nl) <-------> (${ Id.VSub_Name nl) <----> (${ Id.VSub_Name nl) <------> 
                                (${ Id.VSub_Name nl) <-------->
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <pr>
                          more_env: []
                          words: [{<pr>} {<-6>} {<-a>} {<-o4>} {<-t>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_Pipe _>]
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Pipeline
              children: [
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'omit='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'omit='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'omit='> name:omit)
                          op: assign_op.Equal
                          rhs: {<Id.Lit_Colon ':'>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [pkg]
                      iterable: (for_iter__Args)
                      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.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<Id.KW_Bang '!'>}
                                            {<-f>}
                                            {($ Id.VSub_DollarName pkg) <.pkg>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                        {($ Id.VSub_DollarName action) <Id.Lit_Colon ':'>}
                                        {($ Id.VSub_DollarName pkg) <Id.Lit_Colon ':'>}
                                        {<not>}
                                        {<a>}
                                        {<package>}
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  spids: [34390 34402]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.If
                                  if_kw: <Id.KW_If if>
                                  arms: [
                                    (IfArm
                                      keyword: <Id.KW_If if>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-f>}
                                                {<'gen/'> ($ Id.VSub_DollarName pkg) <.ver>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.Simple
                                          blame_tok: <set>
                                          more_env: []
                                          words: [
                                            {<set>}
                                            {(SQ )}
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <cat>
                                                    more_env: []
                                                    words: [
                                                      {<cat>}
                                                      {<'gen/'> ($ Id.VSub_DollarName pkg) <.ver>}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Case
                                          case_kw: <Id.KW_Case case>
                                          to_match: (case_arg.Word w:{($ Id.VSub_Number 3)})
                                          arms_start: <Id.KW_In in>
                                          arms: [
                                            (CaseArm
                                              left: <Id.VSub_Number '$2'>
                                              pattern: (pat.Words words:[{($ Id.VSub_Number 2)}])
                                              middle: <Id.Right_CasePat _>
                                              action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'ver='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'ver='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'ver='>
                                                          name: ver
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<base>}
                                                    )
                                                  ]
                                                  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 'ver='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'ver='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'ver='>
                                                          name: ver
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_Number 3)}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              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.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-s>}
                                                        {<'tgz/'> ($ Id.VSub_DollarName pkg) <.tim>}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'sts='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'sts='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'sts='>
                                                          name: sts
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<local>}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              spids: [34484 34495]
                                            )
                                          ]
                                          else_kw: <Id.KW_Else else>
                                          else_action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'sts='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'sts='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'sts='>
                                                      name: sts
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                      ]
                                      spids: [34427 34438]
                                    )
                                  ]
                                  else_kw: <Id.KW_Else else>
                                  else_action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'ver='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'ver='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'ver='>
                                              name: ver
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'sts='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'sts='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'sts='>
                                              name: sts
                                            )
                                          op: assign_op.Equal
                                          rhs: {<unwritten>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'typ='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'typ='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'typ='> name:typ)
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'txt='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'txt='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'txt='> name:txt)
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'cmp='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'cmp='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmp='> name:cmp)
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'cmp_sep='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'cmp_sep='>
                                          name: cmp_sep
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'req='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'req='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'req='> name:req)
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'req_sep='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'req_sep='>
                                          name: req_sep
                                        )
                                      op: assign_op.Equal
                                      rhs: (rhs_word__Empty)
                                    )
                                  ]
                                  redirects: []
                                )
                                (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: {<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <exec>
                                  more_env: []
                                  words: [{<exec>}]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Less '<'>
                                      loc: (redir_loc.Fd fd:0)
                                      arg: {($ Id.VSub_DollarName pkg) <.pkg>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.WhileUntil
                                  keyword: <Id.KW_While while>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <read>
                                          more_env: []
                                          words: [{<read>} {<line>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  body: 
                                    (command.DoGroup
                                      left: <Id.KW_Do do>
                                      children: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'IFS='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'IFS='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'IFS='>
                                                  name: IFS
                                                )
                                              op: assign_op.Equal
                                              rhs: {(SQ <' \t\\\\'>)}
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <set>
                                          more_env: []
                                          words: [{<set>} {(SQ )} {($ Id.VSub_DollarName line)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'IFS='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'IFS='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'IFS='>
                                                  name: IFS
                                                )
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName ifs)}
                                            )
                                          ]
                                          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.Simple
                                                  blame_tok: <shift>
                                                  more_env: []
                                                  words: [{<shift>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (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.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Lit_Colon ':'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {<Id.Lit_Colon ':'> <Id.Lit_Star '*'> 
                                                              <Id.Lit_Colon ':'>
                                                            }
                                                          ]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (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: {($ Id.VSub_Number 1)}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                    (CaseArm
                                                      left: <INIT>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {<INIT>}
                                                            {(SQ <'$('>) <Id.Lit_Star '*'>}
                                                            {<Id.Lit_Star '*'> (SQ <')'>)}
                                                          ]
                                                        )
                                                      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.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: <Id.Lit_Colon ':'>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [
                                                                    {<Id.Lit_Colon ':'> <DESCRIPTION> 
                                                                      <Id.Lit_Colon ':'>
                                                                    }
                                                                  ]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'txt='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'txt='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 'txt='>
                                                                          name: txt
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName txt) ($ Id.VSub_DollarName sep) ($ Id.VSub_DollarName line)
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.ControlFlow
                                                                  keyword: 
                                                                    <Id.ControlFlow_Break break>
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                            (CaseArm
                                                              left: <Id.Lit_Colon ':'>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [
                                                                    {<Id.Lit_Colon ':'> <PACKAGE> 
                                                                      <Id.Lit_Colon ':'>
                                                                    }
                                                                  ]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'cmp='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'cmp='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 'cmp='>
                                                                          name: cmp
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName cmp) ($ Id.VSub_DollarName cmp_sep) ($ Id.VSub_Number 1)
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'cmp_sep='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: 
                                                                        <Id.Lit_VarLike 'cmp_sep='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'cmp_sep='
                                                                            >
                                                                          name: cmp_sep
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: {($ Id.VSub_DollarName nl)}
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                            (CaseArm
                                                              left: <Id.Lit_Colon ':'>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [
                                                                    {<Id.Lit_Colon ':'> <REQUIRES> 
                                                                      <Id.Lit_Colon ':'>
                                                                    }
                                                                  ]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'req='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'req='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 'req='>
                                                                          name: req
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName req) ($ Id.VSub_DollarName req_sep) ($ Id.VSub_Number 1)
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'req_sep='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: 
                                                                        <Id.Lit_VarLike 'req_sep='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'req_sep='
                                                                            >
                                                                          name: req_sep
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: {(DQ <' '>)}
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                          ]
                                                          arms_end: <Id.KW_Esac esac>
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                              ]
                                              right: <Id.KW_Done done>
                                            )
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.KW_Done done>
                                    )
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <exec>
                                  more_env: []
                                  words: [{<exec>}]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Less '<'>
                                      loc: (redir_loc.Fd fd:0)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.Case
                                  case_kw: <Id.KW_Case case>
                                  to_match: (case_arg.Word w:{($ Id.VSub_DollarName txt)})
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <Id.Lit_QMark '?'>
                                      pattern: 
                                        (pat.Words
                                          words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                        )
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'txt='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'txt='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'txt='>
                                                  name: txt
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName nl) 
                                                    ($ Id.VSub_DollarName txt)
                                                  )
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                  ]
                                  arms_end: <Id.KW_Esac esac>
                                  redirects: []
                                )
                                (command.Case
                                  case_kw: <Id.KW_Case case>
                                  to_match: 
                                    (case_arg.Word
                                      w: 
                                        {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName ver) 
                                          <Id.Lit_Colon ':'>
                                        }
                                    )
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <Id.Lit_Star '*'>
                                      pattern: 
                                        (pat.Words
                                          words: [
                                            {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> 
                                              <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.Case
                                          case_kw: <Id.KW_Case case>
                                          to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
                                          arms_start: <Id.KW_In in>
                                          arms: [
                                            (CaseArm
                                              left: <list>
                                              pattern: (pat.Words words:[{<list>}])
                                              middle: <Id.Right_CasePat _>
                                              action: [
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: {($ Id.VSub_DollarName sts)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Left_SingleQuote '\''>
                                                      pattern: (pat.Words words:[{(SQ )}])
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Case
                                                          case_kw: <Id.KW_Case case>
                                                          to_match: 
                                                            (case_arg.Word
                                                              w: 
                                                                {
                                                                  (CommandSub
                                                                    left_token: 
                                                                      <Id.Left_Backtick '`'>
                                                                    child: 
                                                                      (command.Simple
                                                                        blame_tok: <ls>
                                                                        more_env: []
                                                                        words: [
                                                                          {<ls>}
                                                                          {<-t>}
                                                                          {
                                                                            (DQ <'tgz/'> 
                                                                              ($ Id.VSub_DollarName 
pkg
                                                                              ) <.> ($ Id.VSub_DollarName ver) <.base>
                                                                            )
                                                                          }
                                                                          {
                                                                            (DQ <'tgz/'> 
                                                                              ($ Id.VSub_DollarName 
pkg
                                                                              ) <.tim>
                                                                            )
                                                                          }
                                                                        ]
                                                                        redirects: [
                                                                          (Redir
                                                                            op: <Id.Redir_Great '2>'>
                                                                            loc: (redir_loc.Fd fd:2)
                                                                            arg: {<'/dev/null'>}
                                                                          )
                                                                        ]
                                                                        do_fork: T
                                                                      )
                                                                    right: <Id.Backtick_Right '`'>
                                                                  )
                                                                }
                                                            )
                                                          arms_start: <Id.KW_In in>
                                                          arms: [
                                                            (CaseArm
                                                              left: <Id.Left_DoubleQuote '"'>
                                                              pattern: 
                                                                (pat.Words
                                                                  words: [
                                                                    {
                                                                      (DQ <'tgz/'> 
                                                                        ($ Id.VSub_DollarName pkg) <.tim>
                                                                      ) <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                )
                                                              middle: <Id.Right_CasePat _>
                                                              action: [
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'sts='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'sts='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 'sts='>
                                                                          name: sts
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: {<read>}
                                                                    )
                                                                  ]
                                                                  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 'sts='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 'sts='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 'sts='>
                                                                          name: sts
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: {<unread>}
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                          ]
                                                          arms_end: <Id.KW_Esac esac>
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [
                                                    {<echo>}
                                                    {
                                                      (DQ ($ Id.VSub_DollarName pkg) 
                                                        (${ Id.VSub_Name nl) ($ Id.VSub_DollarName ver) (${ Id.VSub_Name nl) <base> (${ Id.VSub_Name nl) ($ Id.VSub_DollarName typ) 
                                                        (${ Id.VSub_Name nl) ($ Id.VSub_DollarName sts) (${ Id.VSub_Name nl) ($ Id.VSub_DollarName req)
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: {($ Id.VSub_DollarName typ)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Left_SingleQuote '\''>
                                                      pattern: (pat.Words words:[{(SQ )}])
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'omit='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'omit='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'omit='>
                                                                  name: omit
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {($ Id.VSub_DollarName omit) 
                                                                  ($ Id.VSub_DollarName pkg) <.> ($ Id.VSub_DollarName ver) <.base> <Id.Lit_Colon ':'>
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                              ]
                                              right: <Id.Op_DSemi _>
                                            )
                                            (CaseArm
                                              left: <Id.Lit_Star '*'>
                                              pattern: (pat.Words words:[{<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 req)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Lit_QMark '?'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}
                                                          ]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'req='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'req='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'req='>
                                                                  name: req
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ <': '> 
                                                                    ($ Id.VSub_DollarName req)
                                                                  )
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [{<echo>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [
                                                    {<echo>}
                                                    {($ Id.VSub_DollarName pkg)}
                                                    {($ Id.VSub_DollarName ver)}
                                                    {($ Id.VSub_DollarName req)}
                                                    {(DQ ($ Id.VSub_DollarName txt))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: {($ Id.VSub_DollarName cmp)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Lit_QMark '?'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}
                                                          ]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {
                                                              (DQ (${ Id.VSub_Name sep) 
                                                                <'Components in this package:'> ($ Id.VSub_DollarName nl)
                                                              )
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Pipeline
                                                          children: [
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {(DQ ($ Id.VSub_DollarName cmp))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <pr>
                                                              more_env: []
                                                              words: [{<pr>} {<-4>} {<-o4>} {<-t>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          ops: [<Id.Op_Pipe _>]
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                              ]
                                              right: <Id.Op_DSemi _>
                                            )
                                          ]
                                          arms_end: <Id.KW_Esac esac>
                                          redirects: []
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                  ]
                                  arms_end: <Id.KW_Esac esac>
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: 
                            {($ Id.VSub_DollarName argc) <Id.Lit_Colon ':'> 
                              ($ Id.VSub_DollarName action)
                            }
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0> <Id.Lit_Colon ':'> <list>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-d>} {<tgz>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <cd>
                                      more_env: []
                                      words: [{<cd>} {<tgz>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [f]
                                      iterable: 
                                        (for_iter.Words
                                          words: [
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <find>
                                                        more_env: []
                                                        words: [
                                                          {<find>}
                                                          {<.>}
                                                          {<-name>}
                                                          {
                                                            (SQ 
                                                              <
'*?[_.][0123456789][0123456789][0123456789][0123456789]-[0123456789][0123456789]-[0123456789][0123456789][_.]*'
                                                              >
                                                            )
                                                          }
                                                          {<-print>}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <sed>
                                                        more_env: []
                                                        words: [{<sed>} {(SQ <'s,^\\./,,'>)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <sort>
                                                        more_env: []
                                                        words: [{<sort>} {<-r>}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                          ]
                                        )
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {
                                                  (CommandSub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (command.Simple
                                                            blame_tok: <echo>
                                                            more_env: []
                                                            words: [
                                                              {<echo>}
                                                              {(DQ ($ Id.VSub_DollarName f))}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                          (command.Simple
                                                            blame_tok: <sed>
                                                            more_env: []
                                                            words: [
                                                              {<sed>}
                                                              {<-e>}
                                                              {(SQ <'s,\\.c$,,'>)}
                                                              {<-e>}
                                                              {(SQ <'s,\\.gz$,,'>)}
                                                              {<-e>}
                                                              {(SQ <'s,\\.exe$,,'>)}
                                                              {<-e>}
                                                              {(SQ <'s,\\.tgz$,,'>)}
                                                              {<-e>}
                                                              {
                                                                (SQ 
                                                                  <
's,\\([^_.]*\\)[_.]\\([0123456789][0123456789][0123456789][0123456789]-[0123456789][0123456789]-[0123456789][0123456789]\\)[_.]\\([0123456789][0123456789][0123456789][0123456789][^_.]*\\)[_.]*\\(.*\\),p=\\1 v=\\2 r=\\3 t=\\4,'
                                                                  >
                                                                )
                                                              }
                                                              {<-e>}
                                                              {
                                                                (SQ 
                                                                  <
's,\\([^_.]*\\)[_.]\\([0123456789][0123456789][0123456789][0123456789]-[0123456789][0123456789]-[0123456789][0123456789]\\)[_.]*\\(.*\\),p=\\1 v=\\2 r=base t=\\3,'
                                                                  >
                                                                )
                                                              }
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        ]
                                                        ops: [<Id.Op_Pipe _>]
                                                      )
                                                    right: <Id.Backtick_Right '`'>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName t)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: (pat.Words words:[{(SQ )}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName omit)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                                                                  ($ Id.VSub_DollarName p) <.> ($ Id.VSub_DollarName v) <.> ($ Id.VSub_DollarName r) <Id.Lit_Colon ':'> <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 'u='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'u='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'u='>
                                                              name: u
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName p) <.tim>}
                                                        )
                                                      ]
                                                      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 'u='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'u='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'u='>
                                                              name: u
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName p) <.> 
                                                              ($ Id.VSub_DollarName t) <.tim>
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  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.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-s>}
                                                            {(DQ ($ Id.VSub_DollarName u))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 's='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 's='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 's='>
                                                              name: s
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<local>}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [35265 35276]
                                                )
                                                (IfArm
                                                  keyword: <Id.KW_Elif elif>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-f>}
                                                            {(DQ ($ Id.VSub_DollarName u))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Simple
                                                                    blame_tok: <ls>
                                                                    more_env: []
                                                                    words: [
                                                                      {<ls>}
                                                                      {<-t>}
                                                                      {(DQ ($ Id.VSub_DollarName f))}
                                                                      {(DQ ($ Id.VSub_DollarName u))}
                                                                    ]
                                                                    redirects: [
                                                                      (Redir
                                                                        op: <Id.Redir_Great '2>'>
                                                                        loc: (redir_loc.Fd fd:2)
                                                                        arg: {<'/dev/null'>}
                                                                      )
                                                                    ]
                                                                    do_fork: T
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_DoubleQuote '"'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {(DQ ($ Id.VSub_DollarName u)) 
                                                                  <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 's='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 's='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 's='>
                                                                      name: s
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<read>}
                                                                )
                                                              ]
                                                              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 's='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 's='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 's='>
                                                                      name: s
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<unread>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [35282 35293]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 's='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 's='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 's='>
                                                          name: s
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<unread>}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName p) 
                                                    ($ Id.VSub_DollarName nl) ($ Id.VSub_DollarName v) ($ Id.VSub_DollarName nl) ($ Id.VSub_DollarName r) ($ Id.VSub_DollarName nl) 
                                                    ($ Id.VSub_DollarName t) ($ Id.VSub_DollarName nl) ($ Id.VSub_DollarName s) ($ Id.VSub_DollarName nl)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  spids: [35040 35049]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
                (command.Case
                  case_kw: <Id.KW_Case case>
                  to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
                  arms_start: <Id.KW_In in>
                  arms: [
                    (CaseArm
                      left: <list>
                      pattern: (pat.Words words:[{<list>}])
                      middle: <Id.Right_CasePat _>
                      action: [
                        (command.Pipeline
                          children: [
                            (command.Simple
                              blame_tok: <pr>
                              more_env: []
                              words: [{<pr>} {<-6>} {<-a>} {<-o4>} {<-t>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <sort>
                              more_env: []
                              words: [{<sort>} {<-u>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_Pipe _>]
                        )
                      ]
                      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: <cat>
                          more_env: []
                          words: [{<cat>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      right: <Id.Op_DSemi _>
                    )
                  ]
                  arms_end: <Id.KW_Esac esac>
                  redirects: []
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName argc)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-d>} {($ Id.VSub_DollarName PACKAGEROOT) <'/arch'>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {<architectures>}
                                {<Id.KW_In in>}
                                {($ Id.VSub_DollarName PACKAGEROOT)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Pipeline
                              children: [
                                (command.ForEach
                                  keyword: <Id.KW_For for>
                                  iter_names: [i]
                                  iterable: 
                                    (for_iter.Words
                                      words: [
                                        {
                                          (CommandSub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Simple
                                                blame_tok: <ls>
                                                more_env: []
                                                words: [
                                                  {<ls>}
                                                  {($ Id.VSub_DollarName PACKAGEROOT) <'/arch'>}
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                      ]
                                    )
                                  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.Simple
                                                      blame_tok: <test>
                                                      more_env: []
                                                      words: [
                                                        {<test>}
                                                        {<-f>}
                                                        {($ Id.VSub_DollarName PACKAGEROOT) 
                                                          <'/arch/'> ($ Id.VSub_DollarName i) <'/lib/package/gen/host'>
                                                        }
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'h='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'h='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'h='>
                                                          name: h
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (CommandSub
                                                            left_token: <Id.Left_Backtick '`'>
                                                            child: 
                                                              (command.Simple
                                                                blame_tok: <cat>
                                                                more_env: []
                                                                words: [
                                                                  {<cat>}
                                                                  {
                                                                    ($ Id.VSub_DollarName PACKAGEROOT) <'/arch/'> ($ Id.VSub_DollarName i) <'/lib/package/gen/host'>
                                                                  }
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            right: <Id.Backtick_Right '`'>
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              spids: [35480 35492]
                                            )
                                          ]
                                          else_kw: <Id.KW_Else else>
                                          else_action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'h='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'h='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'h='>
                                                      name: h
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [{<echo>} {($ Id.VSub_DollarName i)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [{<echo>} {($ Id.VSub_DollarName h)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [{<echo>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [{<echo>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      right: <Id.KW_Done done>
                                    )
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <pr>
                                  more_env: []
                                  words: [{<pr>} {<-4>} {<-a>} {<-o4>} {<-t>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_Pipe _>]
                            )
                          ]
                          spids: [35435 35445]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <copyright>
          pattern: (pat.Words words:[{<copyright>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <cd>
              more_env: []
              words: [{<cd>} {($ Id.VSub_DollarName PACKAGESRC)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName target)} {($ Id.VSub_DollarName package)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'argc='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'argc='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'argc='> name:argc)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Pound '#')}
                )
              ]
              redirects: []
            )
            (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.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [
                        {<set>}
                        {(SQ )}
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [{<echo>} {<Id.Lit_Star '*'> <.lic>}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <sed>
                                    more_env: []
                                    words: [{<sed>} {(SQ <'s,\\.lic,,g'>)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ <'*'>)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                {($ Id.VSub_DollarName action) <Id.Lit_Colon ':'>}
                                {<no>}
                                {<packages>}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <checkaout>
                  more_env: []
                  words: [{<checkaout>} {<proto>}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter__Args)
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <copyright>
                      more_env: []
                      words: [{<copyright>} {($ Id.VSub_DollarName i)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <export>
          pattern: (pat.Words words:[{<export>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName INSTALLROOT)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.VSub_DollarName '$PACKAGEROOT'>
                  pattern: (pat.Words words:[{($ Id.VSub_DollarName PACKAGEROOT)}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'INSTALLROOT='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'INSTALLROOT='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'INSTALLROOT='>
                              name: INSTALLROOT
                            )
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName INSTALLROOT) <'/arch/'> 
                              ($ Id.VSub_DollarName HOSTTYPE)
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName only)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (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 <'$i='>)}
                        )
                      ]
                      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 '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: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName target)} {($ Id.VSub_DollarName package)}]
              redirects: []
              do_fork: T
            )
            (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: <set>
                      more_env: []
                      words: [{<set>} {(SQ )} {($ Id.VSub_DollarName env)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  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: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Break break>)]
                          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 'i='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'i='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [{<eval>} {<echo>} {(${ Id.VSub_Name v) (SQ <'$'>) (${ Id.VSub_Name i)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <install>
          pattern: (pat.Words words:[{<install>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <cd>
              more_env: []
              words: [{<cd>} {($ Id.VSub_DollarName PACKAGEROOT)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName package)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName only)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [
                        {<set>}
                        {(SQ )}
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                blame_tok: <order>
                                more_env: []
                                words: [{<order>} {(DQ ($ Id.VSub_At '@'))}]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (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.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ ($ Id.VSub_DollarName command) <': at least one package name expected'>)}
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      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.ShAssignment
              left: <Id.Lit_VarLike 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Star '*')}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <requirements>
              more_env: []
              words: [{<requirements>} {<->} {($ Id.VSub_DollarName package)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName target)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <flat>
                  pattern: (pat.Words words:[{<flat>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'flat='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'flat='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'flat='> name:flat)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (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.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName action) 
                            <': target directory argument expected'>
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      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.ShAssignment
              left: <Id.Lit_VarLike 'target='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'target='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              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: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'directory='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'directory='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'directory='>
                                      name: directory
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'target='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'target='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName target) <' '> ($ Id.VSub_Number 1))}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  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.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<Id.KW_Bang '!'>} {<-d>} {($ Id.VSub_DollarName directory)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName action) <': '> 
                            ($ Id.VSub_DollarName directory) <': target directory not found'>
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [36060 36071]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName target)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <cd>
                      more_env: []
                      words: [{<cd>} {<arch>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {(SQ )} {<Id.Lit_Star '*'>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'target='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'target='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Star '*')}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <cd>
                      more_env: []
                      words: [{<cd>} {<..>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (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: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'makecheck='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'makecheck='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'makecheck='> name:makecheck)
                  op: assign_op.Equal
                  rhs: {<1>}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [a]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName target)}])
              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 a)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <->
                          pattern: (pat.Words words:[{<->}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'a='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'a='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName HOSTTYPE)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: {($ Id.VSub_DollarName flat) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName a)}
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: 
                            (pat.Words
                              words: [
                                {<1> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}
                                {<Id.Lit_QMark '?'> <Id.Lit_Colon ':'> <.>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'dest='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dest='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dest='> name:dest)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName directory)}
                                )
                              ]
                              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 'dest='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dest='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dest='> name:dest)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName directory) <'/arch/'> 
                                      ($ Id.VSub_DollarName a)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {(DQ )}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName exec))}
                                            {<-a>}
                                            {<Id.KW_Bang '!'>}
                                            {<-d>}
                                            {($ Id.VSub_DollarName dest)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <mkdir>
                                          more_env: []
                                          words: [{<mkdir>} {<-p>} {($ Id.VSub_DollarName dest)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName command) <': '> 
                                                    ($ Id.VSub_DollarName dest) <': destination directory must exist'>
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<2>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Exit exit>
                                              arg_word: {<1>}
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  ]
                                  spids: [36209 36231]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName package)}])
                      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.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {(DQ <ratz>)}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName i))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <Id.Lit_Colon ':'>
                                      more_env: []
                                      words: [{<Id.Lit_Colon ':'>} {<skip>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [36285 36300]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-f>}
                                            {<'arch/'> ($ Id.VSub_DollarName a) <'/lib/package/gen/'> 
                                              ($ Id.VSub_DollarName i) <.sum>
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <package_install>
                                          more_env: []
                                          words: [
                                            {<package_install>}
                                            {($ Id.VSub_DollarName directory)}
                                            {<'arch/'> ($ Id.VSub_DollarName a) <'/lib/package/gen/'> 
                                              ($ Id.VSub_DollarName i) <.sum>
                                            }
                                          ]
                                          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: []
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  ]
                                  spids: [36307 36320]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<Id.KW_Bang '!'>}
                                            {<-d>}
                                            {<'arch/'> ($ Id.VSub_DollarName a) <'/bin'>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                            ($ Id.VSub_DollarName a) <': invalid architecture'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  spids: [36338 36351]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<Id.KW_Bang '!'>}
                                            {<-d>}
                                            {($ Id.VSub_DollarName dest)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                            ($ Id.VSub_DollarName dest) <': destination directory must exist'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  spids: [36366 36377]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.If
                                  if_kw: <Id.KW_If if>
                                  arms: [
                                    (IfArm
                                      keyword: <Id.KW_If if>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {(DQ )}
                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName makecheck))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      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.Simple
                                                      blame_tok: <onpath>
                                                      more_env: []
                                                      words: [{<onpath>} {($ Id.VSub_DollarName MAKE)}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'MAKE='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'MAKE='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'MAKE='>
                                                          name: MAKE
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName _onpath_)}
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              spids: [36411 36418]
                                            )
                                          ]
                                          else_kw: <Id.KW_Else else>
                                          else_action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName command) <': '> 
                                                    ($ Id.VSub_DollarName MAKE) <': not found'>
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<2>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Exit exit>
                                              arg_word: {<1>}
                                            )
                                          ]
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'makecheck='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'makecheck='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'makecheck='>
                                                  name: makecheck
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word__Empty)
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      spids: [36394 36409]
                                    )
                                  ]
                                  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.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {(DQ )}
                                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                {(DQ ($ Id.VSub_DollarName exec))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.Subshell
                                          left: <Id.Op_LParen _>
                                          child: 
                                            (command.CommandList
                                              children: [
                                                (command.Simple
                                                  blame_tok: <trap>
                                                  more_env: []
                                                  words: [{<trap>} {<->} {<0>} {<1>} {<2>} {<15>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [
                                                    {<echo>}
                                                    {
                                                      (DQ <'=== '> ($ Id.VSub_DollarName i) 
                                                        <' installation manifest ==='>
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <cd>
                                                  more_env: []
                                                  words: [{<cd>} {<'arch/'> ($ Id.VSub_DollarName a)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Pipeline
                                                  children: [
                                                    (command.Subshell
                                                      left: <Id.Op_LParen _>
                                                      child: 
                                                        (command.CommandList
                                                          children: [
                                                            (command.Simple
                                                              blame_tok: <cd>
                                                              more_env: []
                                                              words: [{<cd>} {<'lib/package'>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'INSTALLROOT='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 'INSTALLROOT='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'INSTALLROOT='
                                                                        >
                                                                      name: INSTALLROOT
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
PACKAGEROOT
                                                                      ) <'/arch/'> ($ Id.VSub_DollarName a)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'VPATH='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'VPATH='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'VPATH='>
                                                                      name: VPATH
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
INSTALLROOT
                                                                      ) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName PACKAGEROOT) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName VPATH)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <export>
                                                              more_env: []
                                                              words: [
                                                                {<export>}
                                                                {<INSTALLROOT>}
                                                                {<VPATH>}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <Id.VSub_DollarName '$MAKE'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName MAKE)}
                                                                {<-s>}
                                                                {($ Id.VSub_DollarName makeflags)}
                                                                {<-f>}
                                                                {($ Id.VSub_DollarName i) <.pkg>}
                                                                {($ Id.VSub_DollarName qualifier)}
                                                                {<list.installed>}
                                                                {($ Id.VSub_DollarName assign)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                        )
                                                      right: <Id.Right_Subshell _>
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <sort>
                                                      more_env: []
                                                      words: [{<sort>} {<-u>}]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  ops: [<Id.Op_Pipe _>]
                                                )
                                              ]
                                            )
                                          right: <Id.Right_Subshell _>
                                          redirects: []
                                        )
                                      ]
                                      spids: [36453 36468]
                                    )
                                  ]
                                  else_kw: <Id.KW_Else else>
                                  else_action: [
                                    (command.Subshell
                                      left: <Id.Op_LParen _>
                                      child: 
                                        (command.CommandList
                                          children: [
                                            (command.Simple
                                              blame_tok: <set>
                                              more_env: []
                                              words: [{<set>} {<->}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <cd>
                                              more_env: []
                                              words: [{<cd>} {<'arch/'> ($ Id.VSub_DollarName a)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Pipeline
                                              children: [
                                                (command.Subshell
                                                  left: <Id.Op_LParen _>
                                                  child: 
                                                    (command.CommandList
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <cd>
                                                          more_env: []
                                                          words: [{<cd>} {<'lib/package'>}]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'INSTALLROOT='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'INSTALLROOT='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: 
                                                                    <Id.Lit_VarLike 'INSTALLROOT='>
                                                                  name: INSTALLROOT
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {($ Id.VSub_DollarName PACKAGEROOT) 
                                                                  <'/arch/'> ($ Id.VSub_DollarName a)
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'VPATH='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'VPATH='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'VPATH='>
                                                                  name: VPATH
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {($ Id.VSub_DollarName INSTALLROOT) 
                                                                  <Id.Lit_Colon ':'> ($ Id.VSub_DollarName PACKAGEROOT) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName VPATH)
                                                                }
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.Simple
                                                          blame_tok: <export>
                                                          more_env: []
                                                          words: [{<export>} {<INSTALLROOT>} {<VPATH>}]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {<'lib/'> ($ Id.VSub_DollarName command)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <Id.VSub_DollarName '$MAKE'>
                                                          more_env: []
                                                          words: [
                                                            {($ Id.VSub_DollarName MAKE)}
                                                            {<-s>}
                                                            {($ Id.VSub_DollarName makeflags)}
                                                            {<-f>}
                                                            {($ Id.VSub_DollarName i) <.pkg>}
                                                            {($ Id.VSub_DollarName qualifier)}
                                                            {<list.installed>}
                                                            {($ Id.VSub_DollarName assign)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  right: <Id.Right_Subshell _>
                                                  redirects: []
                                                )
                                                (command.Simple
                                                  blame_tok: <sort>
                                                  more_env: []
                                                  words: [{<sort>} {<-u>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <pax>
                                                  more_env: []
                                                  words: [
                                                    {<pax>}
                                                    {<-drw>}
                                                    {<-ps>}
                                                    {($ Id.VSub_DollarName dest)}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                            )
                                          ]
                                        )
                                      right: <Id.Right_Subshell _>
                                      redirects: []
                                    )
                                  ]
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName code)}
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <license>
          pattern: (pat.Words words:[{<license>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <cd>
                  more_env: []
                  words: [{<cd>} {($ Id.VSub_DollarName PACKAGESRC) <'/LICENSES'>}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName target)} {($ Id.VSub_DollarName package)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'argc='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'argc='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'argc='> name:argc)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Pound '#')}
                )
              ]
              redirects: []
            )
            (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.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {(SQ )} {<Id.Lit_Star '*'>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ <'*'>)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                {($ Id.VSub_DollarName action) <Id.Lit_Colon ':'>}
                                {<no>}
                                {<licenses>}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <checkaout>
                          more_env: []
                          words: [{<checkaout>} {<proto>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Exit exit>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'a='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'a='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: (for_iter__Args)
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (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.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-f>}
                                                    {<'../'> ($ Id.VSub_DollarName i) <.lic>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'j='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'j='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'j='>
                                                      name: j
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <proto>
                                                            more_env: []
                                                            words: [
                                                              {<proto>}
                                                              {<-df>}
                                                              {<-l>}
                                                              {<'../'> ($ Id.VSub_DollarName i) <.lic>}
                                                              {<-o>}
                                                              {<Id.Lit_VarLike 'query='> <type>}
                                                              {<'/dev/null'>}
                                                            ]
                                                            redirects: [
                                                              (Redir
                                                                op: <Id.Redir_Great '2>'>
                                                                loc: (redir_loc.Fd fd:2)
                                                                arg: {<'/dev/null'>}
                                                              )
                                                            ]
                                                            do_fork: T
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName j)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_QMark '?'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<-f>}
                                                                    {($ Id.VSub_DollarName j)}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Case
                                                              case_kw: <Id.KW_Case case>
                                                              to_match: 
                                                                (case_arg.Word
                                                                  w: 
                                                                    {
                                                                      (DQ <' '> 
                                                                        ($ Id.VSub_DollarName a) <' '>
                                                                      )
                                                                    }
                                                                )
                                                              arms_start: <Id.KW_In in>
                                                              arms: [
                                                                (CaseArm
                                                                  left: <Id.Lit_Star '*'>
                                                                  pattern: 
                                                                    (pat.Words
                                                                      words: [
                                                                        {<Id.Lit_Star '*'> 
                                                                          (DQ <' '> 
                                                                            ($ Id.VSub_DollarName j) <' '>
                                                                          ) <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_VarLike 'a='>
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: <Id.Lit_VarLike 'a='>
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 'a='>
                                                                              name: a
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName a
                                                                                ) <' '> ($ Id.VSub_DollarName j)
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.Op_DSemi _>
                                                                )
                                                              ]
                                                              arms_end: <Id.KW_Esac esac>
                                                              redirects: []
                                                            )
                                                          ]
                                                          spids: [36853 36862]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          spids: [36803 36814]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName i)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'i='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'i='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'i='>
                                                      name: i
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (command.Simple
                                                                blame_tok: <echo>
                                                                more_env: []
                                                                words: [
                                                                  {<echo>}
                                                                  {($ Id.VSub_DollarName i)}
                                                                ]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                              (command.Simple
                                                                blame_tok: <sed>
                                                                more_env: []
                                                                words: [{<sed>} {(SQ <'s/-[^-]*$//'>)}]
                                                                redirects: []
                                                                do_fork: T
                                                              )
                                                            ]
                                                            ops: [<Id.Op_Pipe _>]
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              ]
                                              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: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName command) <': '> 
                                                    ($ Id.VSub_DollarName i) <': package license not found'>
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<2>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (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.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {(SQ )} {($ Id.VSub_DollarName a)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter__Args)
              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 exec)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {(DQ <'\t\t--- '> ($ Id.VSub_DollarName i) <' source license ---'>)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <cat>
                              more_env: []
                              words: [{<cat>} {($ Id.VSub_DollarName i)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          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: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {($ Id.VSub_DollarName PACKAGESRC) <'/LICENSES/'> 
                                  ($ Id.VSub_DollarName i)
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <make>
          pattern: (pat.Words words:[{<make>} {<view>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <cd>
              more_env: []
              words: [{<cd>} {($ Id.VSub_DollarName PACKAGEROOT)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName package)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'lic='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'lic='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lic='> name:lic)
                          op: assign_op.Equal
                          rhs: {(DQ <'lib/package/*.lic'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName package)}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'lic='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'lic='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lic='> name:lic)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName lic) <' lib/package/'> 
                                        ($ Id.VSub_DollarName i) <.lic>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName i)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'lic='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'lic='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lic='>
                                              name: lic
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {(DQ ($ Id.VSub_DollarName lic) <' lib/package/'>) 
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Simple
                                                        blame_tok: <echo>
                                                        more_env: []
                                                        words: [{<echo>} {($ Id.VSub_DollarName i)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                      (command.Simple
                                                        blame_tok: <sed>
                                                        more_env: []
                                                        words: [{<sed>} {(SQ <'s,-.*,,'>)}]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    ]
                                                    ops: [<Id.Op_Pipe _>]
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              ) (DQ <.lic>)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  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.Simple
              blame_tok: <checksrc>
              more_env: []
              words: [{<checksrc>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <requirements>
              more_env: []
              words: [{<requirements>} {<source>} {($ Id.VSub_DollarName package)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <components>
              more_env: []
              words: [{<components>} {($ Id.VSub_DollarName package)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName _components_)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'must='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'must='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'must='> name:must)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName AR))}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'warn='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'warn='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'warn='> name:warn)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName NM) <' yacc bison'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'test='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'test='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test='> name:test)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName must) <' '> ($ Id.VSub_DollarName warn))}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'have='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'have='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'have='> name:have)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {<'/'> ($ Id.VSub_DollarName IFS) ($ Id.VSub_DollarName PATH)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'IFS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'IFS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName ifs)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [t]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName test)}])
              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.Simple
                                  blame_tok: <executable>
                                  more_env: []
                                  words: [{<executable>} {($ Id.VSub_DollarName t)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'have='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'have='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'have='> name:have)
                                  op: assign_op.Equal
                                  rhs: 
                                    {(DQ ($ Id.VSub_DollarName have) <' '> ($ Id.VSub_DollarName t))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [37245 37252]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [d]
              iterable: (for_iter__Args)
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [t]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName test)}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName have) <' '>)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName t) <' '>) 
                                          <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.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <executable>
                                                  more_env: []
                                                  words: [
                                                    {<executable>}
                                                    {($ Id.VSub_DollarName d) <'/'> 
                                                      ($ Id.VSub_DollarName t)
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'have='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'have='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'have='>
                                                      name: have
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName have) <' '> 
                                                        ($ Id.VSub_DollarName t)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [37313 37322]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName have) <' '>)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> (DQ <' bison '>) <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> (DQ <' yacc '>) <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'have='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'have='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'have='> name:have)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName have) <' bison'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName have) <' '>)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> (DQ <' yacc '>) <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> (DQ <' bison '>) <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'have='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'have='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'have='> name:have)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName have) <' yacc'>)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [t]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName test)}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName have) <' '>)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName t) <' '>) 
                                  <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.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName must) <' '>)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName t) <' '>) 
                                          <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                            ($ Id.VSub_DollarName t) <': not found -- must be on PATH to '> ($ Id.VSub_DollarName action)
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  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: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) <': warning: '> 
                                            ($ Id.VSub_DollarName t) <': not found -- some '> ($ Id.VSub_DollarName action) <' actions may fail'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      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.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<Id.KW_Bang '!'>}
                            {<-d>}
                            {($ Id.VSub_DollarName PACKAGEROOT) <'/src'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <note>
                      more_env: []
                      words: [{<note>} {<no>} {<source>} {<packages>} {<to>} {<make>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [37547 37559]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<Id.KW_Bang '!'>}
                            {<-d>}
                            {($ Id.VSub_DollarName INSTALLROOT) <'/src'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <note>
                      more_env: []
                      words: [
                        {<note>}
                        {<initialize>}
                        {<the>}
                        {($ Id.VSub_DollarName INSTALLROOT)}
                        {<view>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [37579 37591]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter.Words words:[{<arch>} {<'arch/'> ($ Id.VSub_DollarName HOSTTYPE)}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<-d>}
                            {($ Id.VSub_DollarName PACKAGEROOT) <'/'> ($ Id.VSub_DollarName i)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$exec'>
                          more_env: []
                          words: [
                            {($ Id.VSub_DollarName exec)}
                            {<mkdir>}
                            {($ Id.VSub_DollarName PACKAGEROOT) <'/'> ($ Id.VSub_DollarName i)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Exit exit>
                        )
                      ]
                      ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: 
                (for_iter.Words
                  words: [
                    {<bin>}
                    {<'bin/'> ($ Id.VSub_DollarName OK)}
                    {<'bin/'> ($ Id.VSub_DollarName OK) <'/lib'>}
                    {<fun>}
                    {<include>}
                    {<lib>}
                    {<'lib/package'>}
                    {<'lib/package/gen'>}
                    {<src>}
                    {<man>}
                    {<'man/man1'>}
                    {<'man/man3'>}
                    {<'man/man8'>}
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<-d>}
                            {($ Id.VSub_DollarName INSTALLROOT) <'/'> ($ Id.VSub_DollarName i)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$exec'>
                          more_env: []
                          words: [
                            {($ Id.VSub_DollarName exec)}
                            {<mkdir>}
                            {($ Id.VSub_DollarName INSTALLROOT) <'/'> ($ Id.VSub_DollarName i)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Exit exit>
                        )
                      ]
                      ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <make_recurse>
              more_env: []
              words: [{<make_recurse>} {<src>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'o='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'o='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o='> name:o)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
                (AssignPair
                  left: <Id.Lit_VarLike 'k='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName makefiles)}])
              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 o)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'o='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'o='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o='> name:o)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName o) <' -o'>)}
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'k='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName k) <'|'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'o='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'o='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o='> name:o)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName o) <' -name '> ($ Id.VSub_DollarName i))}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'k='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'k='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName k) ($ Id.VSub_DollarName i))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'o='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'o='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'o='> name:o)
                  op: assign_op.Equal
                  rhs: {(DQ <'( '> ($ Id.VSub_DollarName o) <' ) -print'>)}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [d]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName package_src)}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'i='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'i='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                          op: assign_op.Equal
                          rhs: {<'src/'> ($ Id.VSub_DollarName d)}
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-d>} {($ Id.VSub_DollarName i)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<-d>}
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/'> ($ Id.VSub_DollarName i)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$exec'>
                                  more_env: []
                                  words: [
                                    {($ Id.VSub_DollarName exec)}
                                    {<mkdir>}
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/'> ($ Id.VSub_DollarName i)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Exit exit>
                                )
                              ]
                              ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                            )
                            (command.Simple
                              blame_tok: <make_recurse>
                              more_env: []
                              words: [{<make_recurse>} {($ Id.VSub_DollarName i)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [j]
                              iterable: 
                                (for_iter.Words
                                  words: [
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.CommandList
                                            children: [
                                              (command.Sentence
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <cd>
                                                    more_env: []
                                                    words: [{<cd>} {($ Id.VSub_DollarName i)}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                terminator: <Id.Op_Semi _>
                                              )
                                              (command.Pipeline
                                                children: [
                                                  (command.Simple
                                                    blame_tok: <find>
                                                    more_env: []
                                                    words: [{<find>} {<.>} {($ Id.VSub_DollarName o)}]
                                                    redirects: [
                                                      (Redir
                                                        op: <Id.Redir_Great '2>'>
                                                        loc: (redir_loc.Fd fd:2)
                                                        arg: {<'/dev/null'>}
                                                      )
                                                    ]
                                                    do_fork: T
                                                  )
                                                  (command.Simple
                                                    blame_tok: <sed>
                                                    more_env: []
                                                    words: [
                                                      {<sed>}
                                                      {<-e>}
                                                      {(SQ <'s,^\\./,,'>)}
                                                      {<-e>}
                                                      {(SQ <'/\\//!d'>)}
                                                      {<-e>}
                                                      {(SQ <'s,/[^/]*$,,'>)}
                                                    ]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                  (command.Simple
                                                    blame_tok: <sort>
                                                    more_env: []
                                                    words: [{<sort>} {<-u>}]
                                                    redirects: []
                                                    do_fork: T
                                                  )
                                                ]
                                                ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                              )
                                            ]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  ]
                                )
                              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 j)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.VSub_DollarName '$k'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {($ Id.VSub_DollarName k)}
                                                {($ Id.VSub_DollarName MAKESKIP)}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-d>}
                                            {($ Id.VSub_DollarName INSTALLROOT) <'/'> 
                                              ($ Id.VSub_DollarName i) <'/'> ($ Id.VSub_DollarName j)
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$exec'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName exec)}
                                            {<mkdir>}
                                            {<-p>}
                                            {($ Id.VSub_DollarName INSTALLROOT) <'/'> 
                                              ($ Id.VSub_DollarName i) <'/'> ($ Id.VSub_DollarName j)
                                            }
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Exit exit>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          spids: [37803 37812]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'def='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'def='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'def='> name:def)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName lic)}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-f>} {($ Id.VSub_DollarName i)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Continue continue>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <cmp>
                          more_env: []
                          words: [
                            {<cmp>}
                            {<-s>}
                            {($ Id.VSub_DollarName i)}
                            {($ Id.VSub_DollarName INSTALLROOT) <'/'> ($ Id.VSub_DollarName i)}
                          ]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '2>'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$exec'>
                          more_env: []
                          words: [
                            {($ Id.VSub_DollarName exec)}
                            {<cp>}
                            {($ Id.VSub_DollarName PACKAGEROOT) <'/'> ($ Id.VSub_DollarName i)}
                            {($ Id.VSub_DollarName INSTALLROOT) <'/'> ($ Id.VSub_DollarName i)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [j]
                      iterable: 
                        (for_iter.Words
                          words: [
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <grep>
                                    more_env: []
                                    words: [{<grep>} {(SQ <'^. .*\\.def$'>)} {($ Id.VSub_DollarName i)}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          ]
                        )
                      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 j)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <.>
                                  pattern: (pat.Words words:[{<.>}])
                                  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.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName def) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName i) <' '>) <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_VarLike 'def='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'def='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'def='>
                                                      name: def
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName def) <' '> 
                                                        ($ Id.VSub_DollarName i)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName def)}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'i='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'i='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                          op: assign_op.Equal
                          rhs: {<'lib/package/'> ($ Id.VSub_DollarName i)}
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-f>} {($ Id.VSub_DollarName i)}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Continue continue>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <cmp>
                          more_env: []
                          words: [
                            {<cmp>}
                            {<-s>}
                            {($ Id.VSub_DollarName i)}
                            {($ Id.VSub_DollarName INSTALLROOT) <'/'> ($ Id.VSub_DollarName i)}
                          ]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '2>'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$exec'>
                          more_env: []
                          words: [
                            {($ Id.VSub_DollarName exec)}
                            {<cp>}
                            {($ Id.VSub_DollarName PACKAGEROOT) <'/'> ($ Id.VSub_DollarName i)}
                            {($ Id.VSub_DollarName INSTALLROOT) <'/'> ($ Id.VSub_DollarName i)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'h='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'h='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'h='> name:h)
                  op: assign_op.Equal
                  rhs: {(DQ (${ Id.VSub_Name HOSTTYPE) <' '> (${ Id.VSub_Name HOSTTYPE) <'.*'>)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName HOSTTYPE)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 't='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 't='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 't='> name:t)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName HOSTTYPE)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {(SQ <'s/[.][^.]*//'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'h='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'h='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'h='> name:h)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName h) <' '> ($ Id.VSub_DollarName t))}
                        )
                      ]
                      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 't='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 't='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 't='> name:t)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName HOSTTYPE)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName t)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 't='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 't='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 't='> name:t)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <echo>
                                        more_env: []
                                        words: [{<echo>} {($ Id.VSub_DollarName t)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {(SQ <'s/[0123456789]*$//'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _>]
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'h='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'h='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'h='> name:h)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName h) <' '> ($ Id.VSub_DollarName t))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName CC)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <cc>
                  pattern: (pat.Words words:[{<cc>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'c='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'c='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'c='> name:c)
                          op: assign_op.Equal
                          rhs: {<cc>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'b='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'b='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b='> name:b)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName INSTALLROOT) <'/bin/'> ($ Id.VSub_DollarName c)}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 't='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 't='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 't='> name:t)
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName INSTALLROOT) <'/lib/package/gen/'> 
                              ($ Id.VSub_DollarName c) <.tim>
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'intercept='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'intercept='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'intercept='> name:intercept)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [k]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName h)}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [s]
                              iterable: 
                                (for_iter.Words
                                  words: [
                                    {($ Id.VSub_DollarName INITROOT) <'/'> ($ Id.VSub_DollarName c) <.> 
                                      ($ Id.VSub_DollarName k)
                                    }
                                  ]
                                )
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-x>} {(DQ ($ Id.VSub_DollarName s))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Continue continue>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <cmp>
                                                  more_env: []
                                                  words: [
                                                    {<cmp>}
                                                    {<-s>}
                                                    {(DQ ($ Id.VSub_DollarName s))}
                                                    {(DQ ($ Id.VSub_DollarName b))}
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {<'/dev/null'>}
                                                    )
                                                    (Redir
                                                      op: <Id.Redir_GreatAnd '2>&'>
                                                      loc: (redir_loc.Fd fd:2)
                                                      arg: {<1>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'intercept='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'intercept='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'intercept='>
                                                      name: intercept
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Break break>
                                              arg_word: {<2>}
                                            )
                                          ]
                                          spids: [38352 38373]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {
                                              (CommandSub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Simple
                                                    blame_tok: <ls>
                                                    more_env: []
                                                    words: [
                                                      {<ls>}
                                                      {<-t>}
                                                      {(DQ ($ Id.VSub_DollarName t))}
                                                      {(DQ ($ Id.VSub_DollarName b))}
                                                      {(DQ ($ Id.VSub_DollarName s))}
                                                    ]
                                                    redirects: [
                                                      (Redir
                                                        op: <Id.Redir_Great '2>'>
                                                        loc: (redir_loc.Fd fd:2)
                                                        arg: {<'/dev/null'>}
                                                      )
                                                    ]
                                                    do_fork: T
                                                  )
                                                right: <Id.Backtick_Right '`'>
                                              )
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.VSub_DollarName '$t'>
                                          pattern: 
                                            (pat.Words
                                              words: [{($ Id.VSub_DollarName t) <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.VSub_DollarName '$b'>
                                          pattern: 
                                            (pat.Words
                                              words: [{($ Id.VSub_DollarName b) <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'cc='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'cc='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'cc='>
                                                      name: cc
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName b)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.VSub_DollarName '$s'>
                                          pattern: 
                                            (pat.Words
                                              words: [{($ Id.VSub_DollarName s) <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <cd>
                                              more_env: []
                                              words: [
                                                {<cd>}
                                                {($ Id.VSub_DollarName INSTALLROOT) 
                                                  <'/lib/package/gen'>
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (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: {<pkg> ($ Id.VSub_Dollar '$')}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <eval>
                                              more_env: []
                                              words: [
                                                {<eval>}
                                                {(SQ <'$'>) <exec>}
                                                {<echo>}
                                                {
                                                  (DQ <'\'int main(){return 0;}\' > '> 
                                                    ($ Id.VSub_DollarName tmp) <.c>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.AndOr
                                                          children: [
                                                            (command.Simple
                                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName exec)}
                                                                {($ Id.VSub_DollarName s)}
                                                                {<-o>}
                                                                {($ Id.VSub_DollarName tmp) <.exe>}
                                                                {($ Id.VSub_DollarName tmp) <.c>}
                                                              ]
                                                              redirects: [
                                                                (Redir
                                                                  op: <Id.Redir_Great '>'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: {<'/dev/null'>}
                                                                )
                                                                (Redir
                                                                  op: <Id.Redir_GreatAnd '2>&'>
                                                                  loc: (redir_loc.Fd fd:2)
                                                                  arg: {<1>}
                                                                )
                                                              ]
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <test>
                                                              more_env: []
                                                              words: [
                                                                {<test>}
                                                                {<-x>}
                                                                {($ Id.VSub_DollarName tmp) <.exe>}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          ops: [<Id.Op_DAmp _>]
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName HOSTTYPE)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> <.mips> 
                                                                  <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.AndOr
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: 
                                                                    <Id.VSub_DollarName '$s'>
                                                                  more_env: []
                                                                  words: [
                                                                    {($ Id.VSub_DollarName s)}
                                                                    {<-version>}
                                                                  ]
                                                                  redirects: [
                                                                    (Redir
                                                                      op: <Id.Redir_Great '>'>
                                                                      loc: (redir_loc.Fd fd:1)
                                                                      arg: {<'/dev/null'>}
                                                                    )
                                                                    (Redir
                                                                      op: <Id.Redir_GreatAnd '2>&'>
                                                                      loc: (redir_loc.Fd fd:2)
                                                                      arg: {<1>}
                                                                    )
                                                                  ]
                                                                  do_fork: T
                                                                )
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 's='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: <Id.Lit_VarLike 's='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: <Id.Lit_VarLike 's='>
                                                                          name: s
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: (rhs_word__Empty)
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              ops: [<Id.Op_DPipe _>]
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName s)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_QMark '?'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.AndOr
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: 
                                                                    <Id.VSub_DollarName '$exec'>
                                                                  more_env: []
                                                                  words: [
                                                                    {($ Id.VSub_DollarName exec)}
                                                                    {<sed>}
                                                                    {
                                                                      (DQ 
                                                                        <'s/^HOSTTYPE=.*/HOSTTYPE='> ($ Id.VSub_DollarName HOSTTYPE) <'/'>
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: [
                                                                    (Redir
                                                                      op: <Id.Redir_Less '<'>
                                                                      loc: (redir_loc.Fd fd:0)
                                                                      arg: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName s)
                                                                          )
                                                                        }
                                                                    )
                                                                    (Redir
                                                                      op: <Id.Redir_Great '>'>
                                                                      loc: (redir_loc.Fd fd:1)
                                                                      arg: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName b)
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  do_fork: T
                                                                )
                                                                (command.ControlFlow
                                                                  keyword: <Id.ControlFlow_Exit exit>
                                                                )
                                                              ]
                                                              ops: [<Id.Op_DPipe _>]
                                                            )
                                                            (command.AndOr
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: 
                                                                    <Id.VSub_DollarName '$exec'>
                                                                  more_env: []
                                                                  words: [
                                                                    {($ Id.VSub_DollarName exec)}
                                                                    {<chmod>}
                                                                    {<Id.Lit_Other '+'> <x>}
                                                                    {(DQ ($ Id.VSub_DollarName b))}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                                (command.ControlFlow
                                                                  keyword: <Id.ControlFlow_Exit exit>
                                                                )
                                                              ]
                                                              ops: [<Id.Op_DPipe _>]
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'cc='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'cc='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'cc='>
                                                                      name: cc
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName b)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'intercept='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'intercept='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'intercept='>
                                                                      name: intercept
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<1>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <note>
                                                              more_env: []
                                                              words: [
                                                                {<note>}
                                                                {<update>}
                                                                {($ Id.VSub_DollarName b)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [38464 38495]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName exec)}
                                                {<rm>}
                                                {<-f>}
                                                {($ Id.VSub_DollarName tmp) <.> <Id.Lit_Star '*'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName exec)}
                                                {<touch>}
                                                {(DQ ($ Id.VSub_DollarName t))}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <cd>
                                              more_env: []
                                              words: [{<cd>} {($ Id.VSub_DollarName PACKAGEROOT)}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Break break>
                                      arg_word: {<2>}
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName intercept)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'c='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'c='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'c='> name:c)
                                  op: assign_op.Equal
                                  rhs: {<ld>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'b='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'b='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b='> name:b)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/bin/'> 
                                      ($ Id.VSub_DollarName c)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [k]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName h)}])
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [s]
                                      iterable: 
                                        (for_iter.Words
                                          words: [
                                            {($ Id.VSub_DollarName INITROOT) <'/'> 
                                              ($ Id.VSub_DollarName c) <.> ($ Id.VSub_DollarName k)
                                            }
                                          ]
                                        )
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [{<test>} {<-x>} {(DQ ($ Id.VSub_DollarName s))}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.ControlFlow
                                                  keyword: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <ls>
                                                            more_env: []
                                                            words: [
                                                              {<ls>}
                                                              {<-t>}
                                                              {(DQ ($ Id.VSub_DollarName b))}
                                                              {(DQ ($ Id.VSub_DollarName s))}
                                                            ]
                                                            redirects: [
                                                              (Redir
                                                                op: <Id.Redir_Great '2>'>
                                                                loc: (redir_loc.Fd fd:2)
                                                                arg: {<'/dev/null'>}
                                                              )
                                                            ]
                                                            do_fork: T
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.VSub_DollarName '$b'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {($ Id.VSub_DollarName b) <Id.Lit_Star '*'>}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: []
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.VSub_DollarName '$s'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {($ Id.VSub_DollarName s) <Id.Lit_Star '*'>}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <Id.VSub_DollarName '$exec'>
                                                      more_env: []
                                                      words: [
                                                        {($ Id.VSub_DollarName exec)}
                                                        {<cp>}
                                                        {(DQ ($ Id.VSub_DollarName s))}
                                                        {(DQ ($ Id.VSub_DollarName b))}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                    (command.Simple
                                                      blame_tok: <note>
                                                      more_env: []
                                                      words: [
                                                        {<note>}
                                                        {<update>}
                                                        {($ Id.VSub_DollarName b)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'c='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'c='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'c='> name:c)
                  op: assign_op.Equal
                  rhs: {<ldd>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'b='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'b='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b='> name:b)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName INSTALLROOT) <'/bin/'> ($ Id.VSub_DollarName c)}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [t]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName h)}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 's='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 's='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 's='> name:s)
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName INITROOT) <'/'> ($ Id.VSub_DollarName c) <.> 
                              ($ Id.VSub_DollarName t)
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-x>} {(DQ ($ Id.VSub_DollarName s))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Continue continue>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <onpath>
                          more_env: []
                          words: [{<onpath>} {($ Id.VSub_DollarName c)}]
                          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.Simple
                                        blame_tok: <ls>
                                        more_env: []
                                        words: [
                                          {<ls>}
                                          {<-t>}
                                          {(DQ ($ Id.VSub_DollarName b))}
                                          {(DQ ($ Id.VSub_DollarName s))}
                                        ]
                                        redirects: [
                                          (Redir
                                            op: <Id.Redir_Great '2>'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<'/dev/null'>}
                                          )
                                        ]
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                            )
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <Id.VSub_DollarName '$b'>
                              pattern: 
                                (pat.Words
                                  words: [{($ Id.VSub_DollarName b) <Id.Lit_Star '*'>}]
                                )
                              middle: <Id.Right_CasePat _>
                              action: []
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <Id.VSub_DollarName '$s'>
                              pattern: 
                                (pat.Words
                                  words: [{($ Id.VSub_DollarName s) <Id.Lit_Star '*'>}]
                                )
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$exec'>
                                  more_env: []
                                  words: [
                                    {($ Id.VSub_DollarName exec)}
                                    {<cp>}
                                    {(DQ ($ Id.VSub_DollarName s))}
                                    {(DQ ($ Id.VSub_DollarName b))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <note>
                                  more_env: []
                                  words: [{<note>} {<update>} {($ Id.VSub_DollarName b)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName cc)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <'/'>
                  pattern: (pat.Words words:[{<'/'> <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.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName CC) 
                            <': not found -- set CC=C-compiler'>
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      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.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName exec)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <cd>
                      more_env: []
                      words: [{<cd>} {($ Id.VSub_DollarName INSTALLROOT) <'/lib/package/gen'>}]
                      redirects: []
                      do_fork: T
                    )
                    (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: {<pkg> ($ Id.VSub_Dollar '$')}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(SQ <'int main(){return 0;}'>)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName tmp) <.c>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$CC'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName CC)}
                                        {<-o>}
                                        {($ Id.VSub_DollarName tmp) <.exe>}
                                        {($ Id.VSub_DollarName tmp) <.c>}
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/dev/null'>}
                                        )
                                        (Redir
                                          op: <Id.Redir_Great '2>'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {($ Id.VSub_DollarName tmp) <.err>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [{<test>} {<-x>} {($ Id.VSub_DollarName tmp) <.exe>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _>]
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <Id.Lit_Colon ':'>
                              more_env: []
                              words: [{<Id.Lit_Colon ':'>} {<ok>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [39028 39060]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {
                              (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName CC) 
                                <': failed to compile this program:'>
                              )
                            }
                          ]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <cat>
                          more_env: []
                          words: [{<cat>} {($ Id.VSub_DollarName tmp) <.c>}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [{<test>} {<-s>} {($ Id.VSub_DollarName tmp) <.err>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.Simple
                                  blame_tok: <cat>
                                  more_env: []
                                  words: [{<cat>} {($ Id.VSub_DollarName tmp) <.err>}]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              spids: [39091 39101]
                            )
                          ]
                          else_kw: <Id.KW_Else else>
                          else_action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName CC) 
                                    <': not a C compiler'>
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                        (command.Simple
                          blame_tok: <rm>
                          more_env: []
                          words: [{<rm>} {<-f>} {($ Id.VSub_DollarName tmp) <.> <Id.Lit_Star '*'>}]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Exit exit>
                          arg_word: {<1>}
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <rm>
                      more_env: []
                      words: [{<rm>} {<-f>} {($ Id.VSub_DollarName tmp) <.> <Id.Lit_Star '*'>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <cd>
                      more_env: []
                      words: [{<cd>} {($ Id.VSub_DollarName PACKAGEROOT)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName CC)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <cc>
                  pattern: (pat.Words words:[{<cc>}])
                  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.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<-x>}
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/bin/cc'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <sed>
                                            more_env: []
                                            words: [
                                              {<sed>}
                                              {<1q>}
                                              {($ Id.VSub_DollarName INSTALLROOT) <'/bin/cc'>}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_DoubleQuote '"'>
                                  pattern: 
                                    (pat.Words
                                      words: [{(DQ <': '> ($ Id.VSub_DollarName CC) <' :'>)}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'CC='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'CC='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                                          op: assign_op.Equal
                                          rhs: {<cc>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <export>
                                      more_env: []
                                      words: [{<export>} {<CC>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  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 'assign='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'assign='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'assign='>
                                              name: assign
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName assign) <' CC='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <CC> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                  ch: '"'
                                                )
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          spids: [39189 39199]
                        )
                      ]
                      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 CROSS)})
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <1>
                              pattern: (pat.Words words:[{<1>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'assign='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'assign='>
                                      lhs: 
                                        (sh_lhs_expr.Name
                                          left: <Id.Lit_VarLike 'assign='>
                                          name: assign
                                        )
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName assign) <' CC='> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <CC> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                              ch: '"'
                                            )
                                          )
                                        }
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                            (CaseArm
                              left: <Id.Lit_Star '*'>
                              pattern: (pat.Words words:[{<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 exec)})
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <Id.Left_SingleQuote '\''>
                                      pattern: (pat.Words words:[{(SQ )}])
                                      middle: <Id.Right_CasePat _>
                                      action: [
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {(DQ <': '> ($ Id.VSub_DollarName CC) <' :'>)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName CC) <' '> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                      ch: '"'
                                                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'@'> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                      ch: '"'
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName INSTALLROOT) <'/bin/cc'>}
                                            )
                                          ]
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                        (command.Simple
                                          blame_tok: <chmod>
                                          more_env: []
                                          words: [
                                            {<chmod>}
                                            {<Id.Lit_Other '+'> <x>}
                                            {($ Id.VSub_DollarName INSTALLROOT) <'/bin/cc'>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      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: <note>
                                          more_env: []
                                          words: [
                                            {<note>}
                                            {<generate>}
                                            {<a>}
                                            {($ Id.VSub_DollarName INSTALLROOT) <'/bin/cc'>}
                                            {<wrapper>}
                                            {<Id.KW_For for>}
                                            {($ Id.VSub_DollarName CC)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                  ]
                                  arms_end: <Id.KW_Esac esac>
                                  redirects: []
                                )
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'CC='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'CC='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                                      op: assign_op.Equal
                                      rhs: {<cc>}
                                    )
                                  ]
                                  redirects: []
                                )
                                (command.Simple
                                  blame_tok: <export>
                                  more_env: []
                                  words: [{<export>} {<CC>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  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.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-d>} {($ Id.VSub_DollarName INITROOT)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: 
                        (for_iter.Words
                          words: [{<'lib/probe'>} {<'lib/probe/C'>} {<'lib/probe/C/make'>}]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<-d>}
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/'> ($ Id.VSub_DollarName i)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$exec'>
                                  more_env: []
                                  words: [
                                    {($ Id.VSub_DollarName exec)}
                                    {<mkdir>}
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/'> ($ Id.VSub_DollarName i)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Exit exit>
                                )
                              ]
                              ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'i='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'i='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName INSTALLROOT) <'/lib/probe/C/make/probe'>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'j='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'j='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'j='> name:j)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName INITROOT) <'/C'> <Id.Lit_Other '+'> <probe>}
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'k='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'k='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName INITROOT) <'/make.probe'>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <ls>
                                    more_env: []
                                    words: [
                                      {<ls>}
                                      {<-t>}
                                      {($ Id.VSub_DollarName i)}
                                      {($ Id.VSub_DollarName j)}
                                      {($ Id.VSub_DollarName k)}
                                    ]
                                    redirects: [
                                      (Redir
                                        op: <Id.Redir_Great '2>'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<'/dev/null'>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.VSub_DollarName '$i'>
                          pattern: (pat.Words words:[{($ Id.VSub_DollarName i) <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.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-f>}
                                            {($ Id.VSub_DollarName j)}
                                            {<-a>}
                                            {<-f>}
                                            {($ Id.VSub_DollarName k)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <note>
                                      more_env: []
                                      words: [{<note>} {<update>} {($ Id.VSub_DollarName i)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <shellmagic>
                                      more_env: []
                                      words: [{<shellmagic>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName exec)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.AndOr
                                              children: [
                                                (BraceGroup
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName SHELLMAGIC)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_QMark '?'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName SHELLMAGIC)
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.Simple
                                                      blame_tok: <cat>
                                                      more_env: []
                                                      words: [
                                                        {<cat>}
                                                        {($ Id.VSub_DollarName j)}
                                                        {($ Id.VSub_DollarName k)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {($ Id.VSub_DollarName i)}
                                                    )
                                                  ]
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                                (command.ControlFlow
                                                  keyword: <Id.ControlFlow_Exit exit>
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                          ]
                                          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: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ <'{\n'> <'echo '> 
                                                    ($ Id.VSub_DollarName SHELLMAGIC) <'\n'> <'cat '> ($ Id.VSub_DollarName j) <' '> ($ Id.VSub_DollarName k) <'\n'> <'} > '> 
                                                    ($ Id.VSub_DollarName i)
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$exec'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName exec)}
                                            {<chmod>}
                                            {<Id.Lit_Other '+'> <x>}
                                            {($ Id.VSub_DollarName i)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Exit exit>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  ]
                                  spids: [39503 39518]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  spids: [39396 39405]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <checkaout>
                  more_env: []
                  words: [{<checkaout>} {<mamake>} {<proto>} {<ratz>} {<release>}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Subshell
                          left: <Id.Op_LParen _>
                          child: 
                            (command.Simple
                              blame_tok: <execrate>
                              more_env: []
                              words: [{<execrate>}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Right_Subshell _>
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                            (Redir
                              op: <Id.Redir_GreatAnd '2>&'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<1>}
                            )
                          ]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'execrate='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'execrate='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'execrate='> name:execrate)
                          op: assign_op.Equal
                          rhs: {<execrate>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$make'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName make)}
                        {<cd>}
                        {($ Id.VSub_DollarName INSTALLROOT) <'/bin'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: 
                        (for_iter.Words
                          words: [{<chmod>} {<chgrp>} {<cmp>} {<cp>} {<ln>} {<mv>} {<rm>}]
                        )
                      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.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<Id.KW_Bang '!'>}
                                            {<-x>}
                                            {($ Id.VSub_DollarName OK) <'/'> ($ Id.VSub_DollarName i)}
                                            {<-a>}
                                            {<-x>}
                                            {<'/bin/'> ($ Id.VSub_DollarName i) <.exe>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <shellmagic>
                                      more_env: []
                                      words: [{<shellmagic>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName exec)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {(DQ ($ Id.VSub_DollarName SHELLMAGIC)) 
                                                  (SQ <'execrate /bin/'>) ($ Id.VSub_DollarName i) (SQ <' "$@"'>)
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {($ Id.VSub_DollarName OK) <'/'> 
                                                      ($ Id.VSub_DollarName i)
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <chmod>
                                              more_env: []
                                              words: [
                                                {<chmod>}
                                                {<Id.Lit_Other '+'> <x>}
                                                {($ Id.VSub_DollarName OK) <'/'> 
                                                  ($ Id.VSub_DollarName i)
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          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: <Id.VSub_DollarName '$exec'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName exec)}
                                                {<echo>}
                                                {
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\\''>
                                                    ch: '\''
                                                  ) (DQ ($ Id.VSub_DollarName SHELLMAGIC)) (SQ <'execrate /bin/'>) ($ Id.VSub_DollarName i) (SQ <' "$@"'>) 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\\''>
                                                    ch: '\''
                                                  ) (SQ <' >'>)
                                                }
                                                {($ Id.VSub_DollarName OK) <'/'> 
                                                  ($ Id.VSub_DollarName i)
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName exec)}
                                                {<chmod>}
                                                {<Id.Lit_Other '+'> <x>}
                                                {($ Id.VSub_DollarName OK) <'/'> 
                                                  ($ Id.VSub_DollarName i)
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  spids: [39717 39738]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'PATH='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'PATH='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName INSTALLROOT) <'/bin/'> ($ Id.VSub_DollarName OK) 
                              <Id.Lit_Colon ':'> ($ Id.VSub_DollarName PATH)
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <export>
                      more_env: []
                      words: [{<export>} {<PATH>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [39667 39680]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'execrate='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'execrate='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'execrate='> name:execrate)
                      op: assign_op.Equal
                      rhs: (rhs_word__Empty)
                    )
                  ]
                  redirects: []
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <view>
                  pattern: (pat.Words words:[{<view>}])
                  middle: <Id.Right_CasePat _>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>})]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$make'>
              more_env: []
              words: [{($ Id.VSub_DollarName make)} {<cd>} {($ Id.VSub_DollarName INSTALLROOT) <'/src'>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName noexec)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <hostinfo>
                      more_env: []
                      words: [{<hostinfo>} {<name>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Pipeline
                      children: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ ($ Id.VSub_DollarName _hostinfo_))}]
                          redirects: []
                          do_fork: T
                        )
                        (command.Simple
                          blame_tok: <sed>
                          more_env: []
                          words: [{<sed>} {(SQ <'s,\\..*,,'>)}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {($ Id.VSub_DollarName PACKAGEBIN) <'/gen/host'>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      ops: [<Id.Op_Pipe _>]
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName NPROC)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <hostinfo>
                      more_env: []
                      words: [{<hostinfo>} {<cpu>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName _hostinfo_)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0>} {<1>}])
                          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_VarLike 'NPROC='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'NPROC='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NPROC='> name:NPROC)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName _hostinfo_)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$show'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName show)}
                                {<Id.Lit_VarLike 'NPROC='> ($ Id.VSub_DollarName NPROC)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$show'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName show)} {<export>} {<NPROC>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <export>
                              more_env: []
                              words: [{<export>} {<NPROC>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName target)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'a='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'a='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [t]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName target)}])
                      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 t)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <->
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<-> <Id.Lit_LBracket '['> <eiknFKNV> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_Star '*'>
                                        }
                                        {<--> <Id.Lit_Star '*'> <-symbols>}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'makeflags='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'makeflags='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'makeflags='>
                                              name: makeflags
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName makeflags) <' '> 
                                                ($ Id.VSub_DollarName t)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <->
                                  pattern: (pat.Words words:[{<-> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'nmakeflags='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'nmakeflags='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'nmakeflags='>
                                              name: nmakeflags
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName nmakeflags) <' '> 
                                                ($ Id.VSub_DollarName t)
                                              )
                                            }
                                        )
                                      ]
                                      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 'a='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'a='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName a) <' '> 
                                                ($ Id.VSub_DollarName t)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'target='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'target='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName a)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  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.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <executable>
                              more_env: []
                              words: [{<executable>} {<Id.KW_Bang '!'>} {($ Id.VSub_DollarName NMAKE)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {<-d>}
                                {($ Id.VSub_DollarName PACKAGEROOT) <'/src/cmd/nmake'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_DAmp _>]
                        )
                      ]
                    )
                  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.Simple
                                  blame_tok: <nonmake>
                                  more_env: []
                                  words: [{<nonmake>} {($ Id.VSub_DollarName MAKE)}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <note>
                              more_env: []
                              words: [{<note>} {<make>} {($ Id.VSub_DollarName NMAKE)} {<with>} {<mamake>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'c='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'c='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'c='> name:c)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName CC)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'a='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'a='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName assign)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName HOSTTYPE)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <win32>
                                  pattern: 
                                    (pat.Words
                                      words: [{<win32> <Id.Lit_Star '*'>} {<cygwin> <Id.Lit_Star '*'>}]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'CC='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'CC='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName CC) <' -D_BLD_STATIC'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'accept='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'accept='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'accept='>
                                              name: accept
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <libast>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName assign)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> (SQ <' CC='>) <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_VarLike 'assign='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'assign='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'assign='>
                                                      name: assign
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName assign) <' CC='> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\"'>
                                                          ch: '"'
                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <CC> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\"'>
                                                          ch: '"'
                                                        )
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      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 'accept='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'accept='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'accept='>
                                              name: accept
                                            )
                                          op: assign_op.Equal
                                          rhs: {<nmake>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<capture>}
                                {<mamake>}
                                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                  <makeflags>
                                }
                                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                  <nmakeflags>
                                }
                                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                  <noexec>
                                }
                                {<install>}
                                {<nmake>}
                                {($ Id.VSub_DollarName assign)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'assign='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'assign='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'assign='> name:assign)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName a)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'CC='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'CC='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CC='> name:CC)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName c)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: {($ Id.VSub_DollarName make) ($ Id.VSub_DollarName noexec)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <executable>
                                                  more_env: []
                                                  words: [
                                                    {<executable>}
                                                    {<Id.KW_Bang '!'>}
                                                    {($ Id.VSub_DollarName NMAKE)}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName command) <': '> 
                                                    ($ Id.VSub_DollarName action) <': errors making '> ($ Id.VSub_DollarName NMAKE)
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_GreatAnd '>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<2>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Exit exit>
                                              arg_word: {<1>}
                                            )
                                          ]
                                          spids: [40299 40308]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      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 'make='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'make='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'make='>
                                              name: make
                                            )
                                          op: assign_op.Equal
                                          rhs: {<echo>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  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.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {(SQ )}
                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName PROTOROOT))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  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.AndOr
                                                  children: [
                                                    (command.Subshell
                                                      left: <Id.Op_LParen _>
                                                      child: 
                                                        (command.Simple
                                                          blame_tok: <vpath>
                                                          more_env: []
                                                          words: [
                                                            {<vpath>}
                                                            {($ Id.VSub_DollarName INSTALLROOT)}
                                                            {<->}
                                                            {($ Id.VSub_DollarName PROTOROOT)}
                                                            {<->}
                                                            {($ Id.VSub_DollarName INSTALLROOT)}
                                                            {($ Id.VSub_DollarName PACKAGEROOT)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      right: <Id.Right_Subshell _>
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {<'/dev/null'>}
                                                        )
                                                        (Redir
                                                          op: <Id.Redir_GreatAnd '2>&'>
                                                          loc: (redir_loc.Fd fd:2)
                                                          arg: {<1>}
                                                        )
                                                      ]
                                                    )
                                                    (command.Simple
                                                      blame_tok: <vpath>
                                                      more_env: []
                                                      words: [
                                                        {<vpath>}
                                                        {($ Id.VSub_DollarName INSTALLROOT)}
                                                        {<->}
                                                        {($ Id.VSub_DollarName PROTOROOT)}
                                                        {<->}
                                                        {($ Id.VSub_DollarName INSTALLROOT)}
                                                        {($ Id.VSub_DollarName PACKAGEROOT)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DAmp _>]
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$show'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName show)}
                                                {<vpath>}
                                                {($ Id.VSub_DollarName INSTALLROOT)}
                                                {($ Id.VSub_DollarName PACKAGEROOT)}
                                                {($ Id.VSub_DollarName USER_VPATH_CHAIN)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          spids: [40365 40407]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'VPATH='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'VPATH='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'VPATH='>
                                                  name: VPATH
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName INSTALLROOT) 
                                                  <Id.Lit_Colon ':'> ($ Id.VSub_DollarName PACKAGEROOT) ($ Id.VSub_DollarName USER_VPATH)
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$show'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName show)}
                                            {<Id.Lit_VarLike 'VPATH='> ($ Id.VSub_DollarName VPATH)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <export>
                                          more_env: []
                                          words: [{<export>} {<VPATH>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  spids: [40348 40363]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <note>
                              more_env: []
                              words: [
                                {<note>}
                                {<believe>}
                                {<generated>}
                                {<files>}
                                {<Id.KW_For for>}
                                {($ Id.VSub_DollarName accept)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<capture>}
                                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                  <NMAKE>
                                }
                                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                  <makeflags>
                                }
                                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                  <nmakeflags>
                                }
                                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                  <noexec>
                                }
                                {<recurse>}
                                {<believe>}
                                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                  <nmakesep>
                                }
                                {($ Id.VSub_DollarName accept)}
                                {($ Id.VSub_DollarName assign)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$exec'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName exec)}
                                {<touch>}
                                {($ Id.VSub_DollarName INSTALLROOT) <'/bin/.paths'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <note>
                              more_env: []
                              words: [
                                {<note>}
                                {<make>}
                                {<the>}
                                {<remaining>}
                                {<targets>}
                                {<with>}
                                {($ Id.VSub_DollarName NMAKE)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [40149 40156]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <eval>
                          more_env: []
                          words: [
                            {<eval>}
                            {<capture>}
                            {($ Id.VSub_DollarName MAKE)}
                            {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                              <makeflags>
                            }
                            {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                              <nmakeflags>
                            }
                            {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                              <noexec>
                            }
                            {<install>}
                            {<nmake>}
                            {($ Id.VSub_DollarName assign)}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.Case
                          case_kw: <Id.KW_Case case>
                          to_match: 
                            (case_arg.Word
                              w: {($ Id.VSub_DollarName make) ($ Id.VSub_DollarName noexec)}
                            )
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <Id.Left_SingleQuote '\''>
                              pattern: (pat.Words words:[{(SQ )}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.If
                                  if_kw: <Id.KW_If if>
                                  arms: [
                                    (IfArm
                                      keyword: <Id.KW_If if>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Simple
                                              blame_tok: <executable>
                                              more_env: []
                                              words: [
                                                {<executable>}
                                                {<Id.KW_Bang '!'>}
                                                {($ Id.VSub_DollarName NMAKE)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [
                                            {<echo>}
                                            {
                                              (DQ ($ Id.VSub_DollarName command) <': '> 
                                                ($ Id.VSub_DollarName action) <': errors making '> ($ Id.VSub_DollarName NMAKE)
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_GreatAnd '>&'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<2>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Exit exit>
                                          arg_word: {<1>}
                                        )
                                      ]
                                      spids: [40546 40555]
                                    )
                                  ]
                                  else_action: []
                                  fi_kw: <Id.KW_Fi fi>
                                  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 'make='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'make='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'make='> name:make)
                                      op: assign_op.Equal
                                      rhs: {<echo>}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [40129 40147]
                )
              ]
              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.Simple
                          blame_tok: <nonmake>
                          more_env: []
                          words: [{<nonmake>} {($ Id.VSub_DollarName MAKE)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <Id.Lit_Colon ':'>
                      more_env: []
                      words: [
                        {<Id.Lit_Colon ':'>}
                        {<no>}
                        {<need>}
                        {<to>}
                        {<generate>}
                        {<ksh>}
                        {<next>}
                        {<-->}
                        {<it>}
                        {<could>}
                        {<be>}
                        {<the>}
                        {<only>}
                        {<package>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [40607 40614]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <test>
                              more_env: []
                              words: [
                                {<test>}
                                {(DQ ($ Id.VSub_DollarName KEEP_SHELL))}
                                {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                {<1>}
                                {<-a>}
                                {<-d>}
                                {($ Id.VSub_DollarName PACKAGEROOT) <'/src/cmd/ksh93'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <executable>
                              more_env: []
                              words: [{<executable>} {<Id.KW_Bang '!'>} {($ Id.VSub_DollarName KSH)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_DAmp _>]
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<capture>}
                        {<nmake>}
                        {($ Id.VSub_DollarName nmakeflags)}
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                          <makeflags>
                        }
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <noexec>}
                        {<install>}
                        {<ksh93>}
                        {($ Id.VSub_DollarName assign)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: {($ Id.VSub_DollarName make) ($ Id.VSub_DollarName noexec)}
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <executable>
                                          more_env: []
                                          words: [
                                            {<executable>}
                                            {<Id.KW_Bang '!'>}
                                            {($ Id.VSub_DollarName KSH)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                            ($ Id.VSub_DollarName action) <': errors making '> ($ Id.VSub_DollarName KSH)
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [40709 40718]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              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 'make='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'make='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'make='> name:make)
                                  op: assign_op.Equal
                                  rhs: {<echo>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  spids: [40645 40674]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName exec)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<Id.KW_Bang '!'>}
                                    {<-f>}
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/bin/.paths'>}
                                    {<-o>}
                                    {<-w>}
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/bin/.paths'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'N='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'N='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'N='> name:N)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'\n'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'b='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'b='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b='> name:b)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'f='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'h='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'h='> name:h)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'n='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'n='> name:n)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'u='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'u='> name:u)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'B='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'B='> name:B)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'L='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'L='> name:L)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-f>}
                                            {($ Id.VSub_DollarName INSTALLROOT) <'/bin/.paths'>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <exec>
                                      more_env: []
                                      words: [{<exec>}]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Less '<'>
                                          loc: (redir_loc.Fd fd:0)
                                          arg: {($ Id.VSub_DollarName INSTALLROOT) <'/bin/.paths'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.WhileUntil
                                      keyword: <Id.KW_While while>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Simple
                                              blame_tok: <read>
                                              more_env: []
                                              words: [{<read>} {<x>}]
                                              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 x)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {(SQ <'#'>) <Id.Lit_QMark '?'> 
                                                          <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 h)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_SingleQuote '\''>
                                                          pattern: (pat.Words words:[{(SQ )}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'h='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'h='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'h='>
                                                                      name: h
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_DollarName x)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          <Id.Lit_VarLike 'BUILTIN_LIB='> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'b='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'b='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'b='>
                                                              name: b
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName x)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> <Id.Lit_VarLike 'FPATH='> 
                                                          <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'f='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'f='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'f='>
                                                              name: f
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName x)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          <Id.Lit_VarLike 'PLUGIN_LIB='> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'p='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'p='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'p='>
                                                              name: p
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName x)}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<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 u)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_QMark '?'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'u='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'u='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'u='>
                                                                      name: u
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {($ Id.VSub_DollarName u) 
                                                                      ($ Id.VSub_DollarName N)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'u='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'u='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'u='>
                                                              name: u
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName u) 
                                                              ($ Id.VSub_DollarName x)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  spids: [40822 40832]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'ifs='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'ifs='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ifs='> name:ifs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName IFS)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'm='> name:m)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName p)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_QMark '?'>
                                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'b='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'b='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b='> name:b)
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName b)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_QMark '?'>
                                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'IFS='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'IFS='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {(SQ <'='>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <set>
                                      more_env: []
                                      words: [{<set>} {($ Id.VSub_DollarName b)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'IFS='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'IFS='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'IFS='>
                                              name: IFS
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName ifs)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <shift>
                                      more_env: []
                                      words: [{<shift>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'PLUGIN_LIB='> ($ Id.VSub_Star '*'))}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName b)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_LBracket '['>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_LBracket '['> <Nn> <Id.Lit_RBracket ']'> 
                                                  <Id.Lit_LBracket '['> <Oo> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p='>
                                                      name: p
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<no> ($ Id.VSub_DollarName p)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'm='> name:m)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName f)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'f='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'f='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'FPATH=../fun'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'm='> name:m)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName h)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'h='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'h='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'h='> name:h)
                                          op: assign_op.Equal
                                          rhs: 
                                            {(SQ <'# use { no NO } prefix to permanently disable #'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName p)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'p='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'p='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'PLUGIN_LIB=cmd'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <grep>
                                                  more_env: []
                                                  words: [
                                                    {<grep>}
                                                    {(SQ <'^setv mam_cc_DIALECT .* EXPORT=[AD]LL'>)}
                                                    {($ Id.VSub_DollarName INSTALLROOT) 
                                                      <'/lib/probe/C/mam/'> <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {<'/dev/null'>}
                                                    )
                                                    (Redir
                                                      op: <Id.Redir_GreatAnd '2>&'>
                                                      loc: (redir_loc.Fd fd:2)
                                                      arg: {<1>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p='>
                                                      name: p
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<no> ($ Id.VSub_DollarName p)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          spids: [41130 41149]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'm='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'm='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'm='> name:m)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName m)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <1>
                                  pattern: (pat.Words words:[{<1>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName u)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_QMark '?'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'u='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'u='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'u='>
                                                      name: u
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName N) 
                                                      ($ Id.VSub_DollarName u)
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName h) ($ Id.VSub_DollarName N) 
                                            ($ Id.VSub_DollarName p) ($ Id.VSub_DollarName N) ($ Id.VSub_DollarName f) ($ Id.VSub_DollarName N) ($ Id.VSub_DollarName u)
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName INSTALLROOT) <'/bin/.paths'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          spids: [40778 40797]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName EXECROOT)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.VSub_DollarName '$INSTALLROOT'>
                  pattern: (pat.Words words:[{($ Id.VSub_DollarName INSTALLROOT)}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$make'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName make)}
                        {<cd>}
                        {($ Id.VSub_DollarName INSTALLROOT) <'/bin'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <executable>
                                  more_env: []
                                  words: [{<executable>} {<'/bin/cp'>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'cp='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'cp='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cp='> name:cp)
                                  op: assign_op.Equal
                                  rhs: {<'/bin/cp'>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [41258 41265]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'cp='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'cp='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cp='> name:cp)
                              op: assign_op.Equal
                              rhs: {<cp>}
                            )
                          ]
                          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.Simple
                                  blame_tok: <executable>
                                  more_env: []
                                  words: [{<executable>} {<'/bin/mv'>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'mv='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'mv='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mv='> name:mv)
                                  op: assign_op.Equal
                                  rhs: {<'/bin/mv'>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [41280 41287]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'mv='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'mv='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mv='> name:mv)
                              op: assign_op.Equal
                              rhs: {<mv>}
                            )
                          ]
                          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.Simple
                                  blame_tok: <executable>
                                  more_env: []
                                  words: [{<executable>} {<'/bin/rm'>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'rm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'rm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rm='> name:rm)
                                  op: assign_op.Equal
                                  rhs: {<'/bin/rm'>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [41302 41309]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'rm='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'rm='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rm='> name:rm)
                              op: assign_op.Equal
                              rhs: {<rm>}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: 
                        (for_iter.Words
                          words: [
                            {<ksh>}
                            {<nmake>}
                            {<tee>}
                            {<cp>}
                            {<ln>}
                            {<mv>}
                            {<rm>}
                            {<Id.Lit_Star '*'> <ast> <Id.Lit_Star '*'> <.dll>}
                            {<Id.Lit_Star '*'> <cmd> <Id.Lit_Star '*'> <.dll>}
                            {<Id.Lit_Star '*'> <dll> <Id.Lit_Star '*'> <.dll>}
                            {<Id.Lit_Star '*'> <shell> <Id.Lit_Star '*'> <.dll>}
                          ]
                        )
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <executable>
                                  more_env: []
                                  words: [{<executable>} {($ Id.VSub_DollarName i)}]
                                  redirects: []
                                  do_fork: T
                                )
                                (BraceGroup
                                  left: <Id.Lit_LBrace '{'>
                                  children: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <cmp>
                                          more_env: []
                                          words: [
                                            {<cmp>}
                                            {<-s>}
                                            {($ Id.VSub_DollarName i)}
                                            {($ Id.VSub_DollarName OK) <'/'> ($ Id.VSub_DollarName i)}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '2>'>
                                              loc: (redir_loc.Fd fd:2)
                                              arg: {<'/dev/null'>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-f>}
                                                    {($ Id.VSub_DollarName OK) <'/'> 
                                                      ($ Id.VSub_DollarName i)
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$exec'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName exec)}
                                                    {($ Id.VSub_DollarName execrate)}
                                                    {($ Id.VSub_DollarName rm)}
                                                    {($ Id.VSub_DollarName OK) <'/'> 
                                                      ($ Id.VSub_DollarName i)
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Less '<'>
                                                      loc: (redir_loc.Fd fd:0)
                                                      arg: {<'/dev/null'>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-f>}
                                                    {($ Id.VSub_DollarName OK) <'/'> 
                                                      ($ Id.VSub_DollarName i)
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$exec'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName exec)}
                                                    {($ Id.VSub_DollarName execrate)}
                                                    {($ Id.VSub_DollarName mv)}
                                                    {($ Id.VSub_DollarName OK) <'/'> 
                                                      ($ Id.VSub_DollarName i)
                                                    }
                                                    {($ Id.VSub_DollarName OK) <'/'> 
                                                      ($ Id.VSub_DollarName i) <.old>
                                                    }
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Less '<'>
                                                      loc: (redir_loc.Fd fd:0)
                                                      arg: {<'/dev/null'>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-f>}
                                                    {($ Id.VSub_DollarName OK) <'/'> 
                                                      ($ Id.VSub_DollarName i)
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: 
                                                        {($ Id.VSub_DollarName exec) 
                                                          <Id.Lit_Colon ':'> ($ Id.VSub_DollarName i)
                                                        }
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Lit_Colon ':'>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {<Id.Lit_Colon ':'> <nmake>}
                                                            {<Id.Lit_Colon ':'> <ksh>}
                                                          ]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Simple
                                                          blame_tok: <echo>
                                                          more_env: []
                                                          words: [
                                                            {<echo>}
                                                            {
                                                              (DQ ($ Id.VSub_DollarName command) 
                                                                <': '> ($ Id.VSub_DollarName OK) <'/'> ($ Id.VSub_DollarName i) 
                                                                <
': cannot update [may be in use by a running process] remove manually and try again'
                                                                >
                                                              )
                                                            }
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_GreatAnd '>&'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: {<2>}
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                        (command.ControlFlow
                                                          keyword: <Id.ControlFlow_Exit exit>
                                                          arg_word: {<1>}
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName exec)}
                                                {($ Id.VSub_DollarName execrate)}
                                                {($ Id.VSub_DollarName cp)}
                                                {($ Id.VSub_DollarName i)}
                                                {($ Id.VSub_DollarName OK) <'/'> 
                                                  ($ Id.VSub_DollarName i)
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  ]
                                  redirects: []
                                  right: <Id.Lit_RBrace '}'>
                                )
                              ]
                              ops: [<Id.Op_DAmp _>]
                            )
                          ]
                          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.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-f>} {<'../lib/make/makerules.mo'>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <cmp>
                                  more_env: []
                                  words: [
                                    {<cmp>}
                                    {<-s>}
                                    {<'../lib/make/makerules.mo'>}
                                    {($ Id.VSub_DollarName OK) <'/lib/makerules.mo'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$exec'>
                                  more_env: []
                                  words: [
                                    {($ Id.VSub_DollarName exec)}
                                    {($ Id.VSub_DollarName execrate)}
                                    {($ Id.VSub_DollarName cp)}
                                    {<-p>}
                                    {<'../lib/make/makerules.mo'>}
                                    {($ Id.VSub_DollarName OK) <'/lib/makerules.mo'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$exec'>
                                  more_env: []
                                  words: [
                                    {($ Id.VSub_DollarName exec)}
                                    {($ Id.VSub_DollarName execrate)}
                                    {($ Id.VSub_DollarName cp)}
                                    {<'../lib/make/makerules.mo'>}
                                    {($ Id.VSub_DollarName OK) <'/lib/makerules.mo'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                            )
                          ]
                          spids: [41529 41538]
                        )
                      ]
                      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.Simple
                                  blame_tok: <executable>
                                  more_env: []
                                  words: [{<executable>} {($ Id.VSub_DollarName OK) <'/nmake'>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'MAKE='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'MAKE='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAKE='> name:MAKE)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName INSTALLROOT) <'/bin/'> 
                                        ($ Id.VSub_DollarName OK) <'/nmake LOCALRULESPATH='> ($ Id.VSub_DollarName INSTALLROOT) <'/bin/'> ($ Id.VSub_DollarName OK) 
                                        <'/lib'>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [41583 41591]
                        )
                      ]
                      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.Simple
                                  blame_tok: <executable>
                                  more_env: []
                                  words: [{<executable>} {($ Id.VSub_DollarName OK) <'/tee'>}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'TEE='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'TEE='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEE='> name:TEE)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/bin/'> 
                                      ($ Id.VSub_DollarName OK) <'/tee'>
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [41609 41617]
                        )
                      ]
                      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.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {(DQ ($ Id.VSub_DollarName KEEP_SHELL))}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {<1>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <executable>
                                      more_env: []
                                      words: [{<executable>} {($ Id.VSub_DollarName OK) <'/ksh'>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  ops: [<Id.Op_DAmp _>]
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'SHELL='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'SHELL='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SHELL='> name:SHELL)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/bin/'> 
                                      ($ Id.VSub_DollarName OK) <'/ksh'>
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <export>
                              more_env: []
                              words: [{<export>} {<SHELL>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'COSHELL='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'COSHELL='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'COSHELL='>
                                      name: COSHELL
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName SHELL)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <export>
                              more_env: []
                              words: [{<export>} {<COSHELL>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [41629 41650]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName PATH) <Id.Lit_Colon ':'>}
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                                  ($ Id.VSub_DollarName INSTALLROOT) <'/bin/'> ($ Id.VSub_DollarName OK) <Id.Lit_Colon ':'> <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_VarLike 'PATH='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'PATH='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName INSTALLROOT) <'/bin/'> 
                                      ($ Id.VSub_DollarName OK) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName PATH)
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <export>
                              more_env: []
                              words: [{<export>} {<PATH>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$make'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName make)}
                        {<cd>}
                        {($ Id.VSub_DollarName INSTALLROOT) <'/src'>}
                      ]
                      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.Simple
                          blame_tok: <nonmake>
                          more_env: []
                          words: [{<nonmake>} {($ Id.VSub_DollarName MAKE)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <note>
                      more_env: []
                      words: [{<note>} {<make>} {<with>} {<mamake>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName target)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'target='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'target='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target)
                                  op: assign_op.Equal
                                  rhs: {(DQ <install>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<capture>}
                        {<mamake>}
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                          <makeflags>
                        }
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <noexec>}
                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <target>}
                        {($ Id.VSub_DollarName assign)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [41740 41747]
                )
              ]
              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 target)})
                  arms_start: <Id.KW_In in>
                  arms: [
                    (CaseArm
                      left: <Id.Left_SingleQuote '\''>
                      pattern: (pat.Words words:[{(SQ )}])
                      middle: <Id.Right_CasePat _>
                      action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'target='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'target='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target)
                              op: assign_op.Equal
                              rhs: {(DQ <'install cc-'>)}
                            )
                          ]
                          redirects: []
                        )
                      ]
                      right: <Id.Op_DSemi _>
                    )
                  ]
                  arms_end: <Id.KW_Esac esac>
                  redirects: []
                )
                (command.Simple
                  blame_tok: <eval>
                  more_env: []
                  words: [
                    {<eval>}
                    {<capture>}
                    {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <MAKE>}
                    {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <makeflags>}
                    {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <nmakeflags>}
                    {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <noexec>}
                    {<recurse>}
                    {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <target>}
                    {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <nmakesep>}
                    {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <package>}
                    {($ Id.VSub_DollarName assign)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <read>
          pattern: (pat.Words words:[{<read>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: 
                    {
                      (BracedVarSub
                        left: <Id.Left_DollarBrace '${'>
                        token: <Id.VSub_Name PWD>
                        var_name: PWD
                        suffix_op: 
                          (suffix_op.Unary
                            op: <Id.VTest_ColonHyphen _>
                            arg_word: 
                              {
                                (CommandSub
                                  left_token: <Id.Left_Backtick '`'>
                                  child: 
                                    (command.Simple
                                      blame_tok: <pwd>
                                      more_env: []
                                      words: [{<pwd>}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  right: <Id.Backtick_Right '`'>
                                )
                              }
                          )
                        right: <Id.Right_DollarBrace '}'>
                      )
                    }
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.VSub_DollarName '$PACKAGEROOT'>
                  pattern: (pat.Words words:[{($ Id.VSub_DollarName PACKAGEROOT)}])
                  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.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ ($ Id.VSub_DollarName command) <': must be in package root directory'>)}
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      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.ShAssignment
              left: <Id.Lit_VarLike 'PAX='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'PAX='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PAX='> name:PAX)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <onpath>
                          more_env: []
                          words: [{<onpath>} {<pax>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <Id.VSub_DollarName '$_onpath_'>
                                    more_env: []
                                    words: [
                                      {($ Id.VSub_DollarName _onpath_)}
                                      {<-rw>}
                                      {<--> <Id.Lit_QMark '?'> <meter>}
                                    ]
                                    redirects: [
                                      (Redir
                                        op: <Id.Redir_GreatAnd '2>&'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<1>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [{<Id.Lit_Star '*'> <--meter> <Id.Lit_Star '*'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'PAX='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'PAX='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PAX='> name:PAX)
                                  op: assign_op.Equal
                                  rhs: {<pax>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  spids: [41911 41918]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (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: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'i='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'i='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'x='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'x='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'remove='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'remove='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'remove='> name:remove)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'touch='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'touch='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'touch='> name:touch)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName target)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 2)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <lcl>
                  pattern: (pat.Words words:[{<lcl>} {<tgz>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'tgz='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'tgz='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tgz='> name:tgz)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 2)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>} {<2>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'target='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'target='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Star '*')}
                        )
                      ]
                      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 'tgz='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'tgz='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tgz='> name:tgz)
                          op: assign_op.Equal
                          rhs: {<tgz>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName package)} {($ Id.VSub_DollarName target)}]
              redirects: []
              do_fork: T
            )
            (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.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: {<Id.Lit_Colon ':'>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [
                        {<set>}
                        {(SQ )}
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                blame_tok: <ls>
                                more_env: []
                                words: [
                                  {<ls>}
                                  {<'lib/package/'> ($ Id.VSub_DollarName tgz) <'/'> <Id.Lit_Star '*'> 
                                    <Id.Lit_QMark '?'> <Id.Lit_LBracket '['> <_.> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                    <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                    <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                    <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                    <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <_.> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                  }
                                ]
                                redirects: [
                                  (Redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                do_fork: T
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  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 '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: (rhs_word__Empty)
                        )
                      ]
                      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
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'files='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'files='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'files='> name:files)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [f]
              iterable: (for_iter__Args)
              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.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-f>} {(DQ ($ Id.VSub_DollarName f))}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <Id.Lit_Colon ':'>
                              more_env: []
                              words: [{<Id.Lit_Colon ':'>} {<ok>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [42127 42138]
                        )
                        (IfArm
                          keyword: <Id.KW_Elif elif>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {<-f>}
                                    {
                                      (DQ <'lib/package/'> ($ Id.VSub_DollarName tgz) <'/'> 
                                        ($ Id.VSub_DollarName f)
                                      )
                                    }
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'f='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'f='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                                  op: assign_op.Equal
                                  rhs: 
                                    {<'lib/package/'> ($ Id.VSub_DollarName tgz) <'/'> 
                                      ($ Id.VSub_DollarName f)
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [42145 42159]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <set>
                          more_env: []
                          words: [
                            {<set>}
                            {(SQ )}
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <ls>
                                    more_env: []
                                    words: [
                                      {<ls>}
                                      {<-r>}
                                      {(${ Id.VSub_Name f) <Id.Lit_LBracket '['> <_.> 
                                        <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> 
                                        <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> 
                                        <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> 
                                        <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> 
                                        <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <_.> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                      }
                                    ]
                                    redirects: [
                                      (Redir
                                        op: <Id.Redir_Great '2>'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<'/dev/null'>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Simple
                                      blame_tok: <test>
                                      more_env: []
                                      words: [
                                        {<test>}
                                        {(SQ )}
                                        {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                        {(DQ ($ Id.VSub_Number 2))}
                                        {<-a>}
                                        {<-f>}
                                        {(DQ ($ Id.VSub_Number 2))}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.ShAssignment
                                  left: <Id.Lit_VarLike 'f='>
                                  pairs: [
                                    (AssignPair
                                      left: <Id.Lit_VarLike 'f='>
                                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_Number 2)}
                                    )
                                  ]
                                  redirects: []
                                )
                              ]
                              spids: [42224 42247]
                            )
                          ]
                          else_kw: <Id.KW_Else else>
                          else_action: [
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [
                                {<set>}
                                {(SQ )}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        blame_tok: <ls>
                                        more_env: []
                                        words: [
                                          {<ls>}
                                          {<-r>}
                                          {<'lib/package/'> ($ Id.VSub_DollarName tgz) <'/'> 
                                            (${ Id.VSub_Name f) <Id.Lit_LBracket '['> <_.> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                            <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                            <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                            <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                            <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <_.> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                          }
                                        ]
                                        redirects: [
                                          (Redir
                                            op: <Id.Redir_Great '2>'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<'/dev/null'>}
                                          )
                                        ]
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {(SQ )}
                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_Number 2))}
                                            {<-a>}
                                            {<-f>}
                                            {(DQ ($ Id.VSub_Number 2))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'f='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'f='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number 2)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [42312 42335]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {
                                      (DQ ($ Id.VSub_DollarName command) <': '> 
                                        ($ Id.VSub_DollarName f) <': package archive not found'>
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (command.ControlFlow
                                  keyword: <Id.ControlFlow_Continue continue>
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'files='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'files='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'files='> name:files)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName files) <' '> ($ Id.VSub_DollarName f))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName files)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ ($ Id.VSub_DollarName command) <': lib/package/'> 
                            ($ Id.VSub_DollarName tgz) <': no package archives'>
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      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: <set>
              more_env: []
              words: [
                {<set>}
                {(SQ )}
                {
                  (CommandSub
                    left_token: <Id.Left_Backtick '`'>
                    child: 
                      (command.Simple
                        blame_tok: <ls>
                        more_env: []
                        words: [{<ls>} {<-r>} {($ Id.VSub_DollarName files)}]
                        redirects: [
                          (Redir
                            op: <Id.Redir_Great '2>'>
                            loc: (redir_loc.Fd fd:2)
                            arg: {<'/dev/null'>}
                          )
                        ]
                        do_fork: T
                      )
                    right: <Id.Backtick_Right '`'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'f1='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'f1='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f1='> name:f1)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
                (AssignPair
                  left: <Id.Lit_VarLike 'f2='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f2='> name:f2)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
                (AssignPair
                  left: <Id.Lit_VarLike 'f3='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f3='> name:f3)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
                (AssignPair
                  left: <Id.Lit_VarLike 'f4='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f4='> name:f4)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [f]
              iterable: (for_iter__Args)
              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 f)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <ratz.>
                          pattern: 
                            (pat.Words
                              words: [
                                {<ratz.> <Id.Lit_Star '*'>}
                                {<Id.Lit_Star '*'> <'/ratz.'> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'f1='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'f1='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f1='> name:f1)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName f1) <' '> ($ Id.VSub_DollarName f))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <INIT.>
                          pattern: 
                            (pat.Words
                              words: [
                                {<INIT.> <Id.Lit_Star '*'>}
                                {<Id.Lit_Star '*'> <'/INIT.'> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'f2='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'f2='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f2='> name:f2)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName f2) <' '> ($ Id.VSub_DollarName f))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <INIT>
                          pattern: 
                            (pat.Words
                              words: [
                                {<INIT> <Id.Lit_Star '*'>}
                                {<Id.Lit_Star '*'> <'/INIT'> <Id.Lit_Star '*'>}
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'f3='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'f3='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f3='> name:f3)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName f3) <' '> ($ Id.VSub_DollarName f))}
                                )
                              ]
                              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 'f4='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'f4='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f4='> name:f4)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName f4) <' '> ($ Id.VSub_DollarName f))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'gen='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'gen='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'gen='> name:gen)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [
                {<set>}
                {(SQ )}
                {($ Id.VSub_DollarName f1)}
                {($ Id.VSub_DollarName f2)}
                {($ Id.VSub_DollarName f3)}
                {($ Id.VSub_DollarName f4)}
              ]
              redirects: []
              do_fork: T
            )
            (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.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (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 'f='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'f='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
                          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 f)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.gz>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <Id.Lit_Colon ':'>
                              more_env: []
                              words: [
                                {<Id.Lit_Colon ':'>}
                                {<standalone>}
                                {<packages>}
                                {<unbundled>}
                                {<manually>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.md5>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <Id.Lit_Colon ':'>
                              more_env: []
                              words: [{<Id.Lit_Colon ':'>} {<tarball>} {<checksum>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> <Id.Lit_QMark '?'> <Id.Lit_LBracket '['> <_.> 
                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> 
                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> 
                                  <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> 
                                  <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> 
                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <_.> <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.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName f) 
                                    <': not a package archive'>
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              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: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName f)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (command.Simple
                                            blame_tok: <echo>
                                            more_env: []
                                            words: [{<echo>} {(DQ ($ Id.VSub_DollarName f))}]
                                            redirects: []
                                            do_fork: T
                                          )
                                          (command.Simple
                                            blame_tok: <sed>
                                            more_env: []
                                            words: [
                                              {<sed>}
                                              {<-e>}
                                              {(SQ <'s,\\(.*/\\)\\(.*\\),d=\\1 a=\\2,'>)}
                                            ]
                                            redirects: []
                                            do_fork: T
                                          )
                                        ]
                                        ops: [<Id.Op_Pipe _>]
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          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 'd='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'd='> name:d)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                                (AssignPair
                                  left: <Id.Lit_VarLike 'a='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName f)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [{<echo>} {(DQ ($ Id.VSub_DollarName a))}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <sed>
                                    more_env: []
                                    words: [
                                      {<sed>}
                                      {<-e>}
                                      {(SQ <'s,\\.c$,,'>)}
                                      {<-e>}
                                      {(SQ <'s,\\.gz$,,'>)}
                                      {<-e>}
                                      {(SQ <'s,\\.exe$,,'>)}
                                      {<-e>}
                                      {(SQ <'s,\\.tgz$,,'>)}
                                      {<-e>}
                                      {
                                        (SQ 
                                          <
's,\\([^_.]*\\)[_.]\\([0123456789][0123456789][0123456789][0123456789]-[0123456789][0123456789]-[0123456789][0123456789]\\)[_.]\\([0123456789][0123456789][0123456789][0123456789][^_.]*\\)[_.]*\\(.*\\),p=\\1 v=\\2 r=\\3 t=\\4,'
                                          >
                                        )
                                      }
                                      {<-e>}
                                      {
                                        (SQ 
                                          <
's,\\([^_.]*\\)[_.]\\([0123456789][0123456789][0123456789][0123456789]-[0123456789][0123456789]-[0123456789][0123456789]\\)[_.]*\\(.*\\),p=\\1 v=\\2 r=base t=\\3,'
                                          >
                                        )
                                      }
                                    ]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName r)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <base>
                          pattern: (pat.Words words:[{<base>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'y='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'y='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'y='> name:y)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName p) <.base>}
                                )
                              ]
                              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 'y='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'y='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'y='> name:y)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName p) <.delta>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName x) <' '>)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName y) <' '>) 
                                  <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.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName t)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'w='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'w='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w='> name:w)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName PACKAGESRC)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'q='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'q='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'q='> name:q)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Q='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Q='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Q='> name:Q)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'm='> name:m)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              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 'w='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'w='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w='> name:w)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName PACKAGEROOT) <'/arch/'> 
                                      ($ Id.VSub_DollarName t) <'/lib/package'>
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'q='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'q='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'q='> name:q)
                                  op: assign_op.Equal
                                  rhs: {(DQ <.> ($ Id.VSub_DollarName t))}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'Q='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'Q='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Q='> name:Q)
                                  op: assign_op.Equal
                                  rhs: {(DQ <_> ($ Id.VSub_DollarName t))}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'm='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'm='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'm='> name:m)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'[_.]'> ($ Id.VSub_DollarName t))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'u='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'u='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'u='> name:u)
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName d) ($ Id.VSub_DollarName p) 
                              ($ Id.VSub_DollarName q) <.tim>
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [{<test>} {<-s>} {(DQ ($ Id.VSub_DollarName u))}]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)]
                          spids: [43004 43015]
                        )
                      ]
                      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 force)})
                          arms_start: <Id.KW_In in>
                          arms: [
                            (CaseArm
                              left: <0>
                              pattern: (pat.Words words:[{<0>}])
                              middle: <Id.Right_CasePat _>
                              action: [
                                (command.Case
                                  case_kw: <Id.KW_Case case>
                                  to_match: 
                                    (case_arg.Word
                                      w: 
                                        {
                                          (CommandSub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Simple
                                                blame_tok: <ls>
                                                more_env: []
                                                words: [
                                                  {<ls>}
                                                  {<-t>}
                                                  {(DQ ($ Id.VSub_DollarName f))}
                                                  {(DQ ($ Id.VSub_DollarName u))}
                                                ]
                                                redirects: [
                                                  (Redir
                                                    op: <Id.Redir_Great '2>'>
                                                    loc: (redir_loc.Fd fd:2)
                                                    arg: {<'/dev/null'>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                            right: <Id.Backtick_Right '`'>
                                          )
                                        }
                                    )
                                  arms_start: <Id.KW_In in>
                                  arms: [
                                    (CaseArm
                                      left: <Id.Left_DoubleQuote '"'>
                                      pattern: 
                                        (pat.Words
                                          words: [{(DQ ($ Id.VSub_DollarName u)) <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 verbose)})
                                          arms_start: <Id.KW_In in>
                                          arms: [
                                            (CaseArm
                                              left: <1>
                                              pattern: (pat.Words words:[{<1>}])
                                              middle: <Id.Right_CasePat _>
                                              action: [
                                                (command.Simple
                                                  blame_tok: <note>
                                                  more_env: []
                                                  words: [
                                                    {<note>}
                                                    {($ Id.VSub_DollarName p)}
                                                    {<already>}
                                                    {<read>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              right: <Id.Op_DSemi _>
                                            )
                                          ]
                                          arms_end: <Id.KW_Esac esac>
                                          redirects: []
                                        )
                                        (command.ControlFlow
                                          keyword: <Id.ControlFlow_Continue continue>
                                        )
                                      ]
                                      right: <Id.Op_DSemi _>
                                    )
                                  ]
                                  arms_end: <Id.KW_Esac esac>
                                  redirects: []
                                )
                              ]
                              right: <Id.Op_DSemi _>
                            )
                          ]
                          arms_end: <Id.KW_Esac esac>
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName p)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <INIT>
                          pattern: (pat.Words words:[{<INIT>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<-f>}
                                            {($ Id.VSub_DollarName PACKAGEROOT) <'/bin/package'>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$exec'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName exec)}
                                        {<mv>}
                                        {($ Id.VSub_DollarName PACKAGEROOT) <'/bin/package'>}
                                        {($ Id.VSub_DollarName PACKAGEROOT) <'/bin/package.old'>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [43114 43124]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (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: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName r)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <base>
                          pattern: (pat.Words words:[{<base>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<ratz>}
                                            {<Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName p))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName t)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [i]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{<src>} {<'src/cmd'>} {<'src/cmd/INIT'>}]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-d>}
                                                            {($ Id.VSub_DollarName PACKAGEROOT) <'/'> 
                                                              ($ Id.VSub_DollarName i)
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <Id.VSub_DollarName '$exec'>
                                                          more_env: []
                                                          words: [
                                                            {($ Id.VSub_DollarName exec)}
                                                            {<mkdir>}
                                                            {($ Id.VSub_DollarName PACKAGEROOT) <'/'> 
                                                              ($ Id.VSub_DollarName i)
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.ControlFlow
                                                          keyword: <Id.ControlFlow_Exit exit>
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName exec)}
                                                {<cp>}
                                                {($ Id.VSub_DollarName f)}
                                                {($ Id.VSub_DollarName PACKAGEROOT) 
                                                  <'/src/cmd/INIT/'> ($ Id.VSub_DollarName p) <.c>
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [i]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [
                                                    {<arch>}
                                                    {<'arch/'> ($ Id.VSub_DollarName t)}
                                                    {<'arch/'> ($ Id.VSub_DollarName t) <'/bin'>}
                                                  ]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.AndOr
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-d>}
                                                            {($ Id.VSub_DollarName PACKAGEROOT) <'/'> 
                                                              ($ Id.VSub_DollarName i)
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <Id.VSub_DollarName '$exec'>
                                                          more_env: []
                                                          words: [
                                                            {($ Id.VSub_DollarName exec)}
                                                            {<mkdir>}
                                                            {($ Id.VSub_DollarName PACKAGEROOT) <'/'> 
                                                              ($ Id.VSub_DollarName i)
                                                            }
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.ControlFlow
                                                          keyword: <Id.ControlFlow_Exit exit>
                                                        )
                                                      ]
                                                      ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$exec'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName exec)}
                                                    {<cp>}
                                                    {($ Id.VSub_DollarName f)}
                                                    {($ Id.VSub_DollarName PACKAGEROOT) <'/arch/'> 
                                                      ($ Id.VSub_DollarName t) <'/bin/'> ($ Id.VSub_DollarName p)
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$exec'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName exec)}
                                                    {<chmod>}
                                                    {<Id.Lit_Other '+'> <x>}
                                                    {($ Id.VSub_DollarName PACKAGEROOT) <'/arch/'> 
                                                      ($ Id.VSub_DollarName t) <'/bin/'> ($ Id.VSub_DollarName p)
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _>]
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  spids: [43163 43176]
                                )
                                (IfArm
                                  keyword: <Id.KW_Elif elif>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {(DQ )}
                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                            {(DQ ($ Id.VSub_DollarName PAX))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$exec'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName exec)}
                                            {<pax>}
                                            {<-L>}
                                            {<--from> <Id.Lit_Equals '='> <ascii>}
                                            {<--local>}
                                            {<-m>}
                                            {<-ps>}
                                            {<-rvf>}
                                            {(DQ ($ Id.VSub_DollarName f))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (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: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  ]
                                  spids: [43331 43346]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.If
                                  if_kw: <Id.KW_If if>
                                  arms: [
                                    (IfArm
                                      keyword: <Id.KW_If if>
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <onpath>
                                                  more_env: []
                                                  words: [{<onpath>} {<gunzip>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <onpath>
                                                  more_env: []
                                                  words: [{<onpath>} {($ Id.VSub_DollarName TAR)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <isascii>
                                                  more_env: []
                                                  words: [{<isascii>}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.Case
                                          case_kw: <Id.KW_Case case>
                                          to_match: (case_arg.Word w:{($ Id.VSub_DollarName TARPROBE)})
                                          arms_start: <Id.KW_In in>
                                          arms: [
                                            (CaseArm
                                              left: <Id.Lit_QMark '?'>
                                              pattern: 
                                                (pat.Words
                                                  words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                                )
                                              middle: <Id.Right_CasePat _>
                                              action: [
                                                (command.ForEach
                                                  keyword: <Id.KW_For for>
                                                  iter_names: [i]
                                                  iterable: 
                                                    (for_iter.Words
                                                      words: [{($ Id.VSub_DollarName TARPROBE)}]
                                                    )
                                                  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.Simple
                                                                      blame_tok: 
                                                                        <Id.VSub_DollarName '$TAR'>
                                                                      more_env: []
                                                                      words: [
                                                                        {($ Id.VSub_DollarName TAR)}
                                                                        {(${ Id.VSub_Name i) <f>}
                                                                        {<->}
                                                                        {<'/dev/null'>}
                                                                      ]
                                                                      redirects: [
                                                                        (Redir
                                                                          op: <Id.Redir_Great '>'>
                                                                          loc: (redir_loc.Fd fd:1)
                                                                          arg: {<'/dev/null'>}
                                                                        )
                                                                        (Redir
                                                                          op: 
                                                                            <Id.Redir_GreatAnd '2>&'>
                                                                          loc: (redir_loc.Fd fd:2)
                                                                          arg: {<1>}
                                                                        )
                                                                      ]
                                                                      do_fork: T
                                                                    )
                                                                  ]
                                                                )
                                                              then_kw: <Id.KW_Then then>
                                                              action: [
                                                                (command.ShAssignment
                                                                  left: <Id.Lit_VarLike 'TARFLAGS='>
                                                                  pairs: [
                                                                    (AssignPair
                                                                      left: 
                                                                        <Id.Lit_VarLike 'TARFLAGS='>
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'TARFLAGS='
                                                                            >
                                                                          name: TARFLAGS
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
TARFLAGS
                                                                          ) ($ Id.VSub_DollarName i)
                                                                        }
                                                                    )
                                                                  ]
                                                                  redirects: []
                                                                )
                                                              ]
                                                              spids: [43428 43449]
                                                            )
                                                          ]
                                                          else_action: []
                                                          fi_kw: <Id.KW_Fi fi>
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.KW_Done done>
                                                    )
                                                  redirects: []
                                                )
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'TARPROBE='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'TARPROBE='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'TARPROBE='>
                                                          name: TARPROBE
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: (rhs_word__Empty)
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                              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.Simple
                                                      blame_tok: <gunzip>
                                                      more_env: []
                                                      words: [{<gunzip>} {<-l>}]
                                                      redirects: [
                                                        (Redir
                                                          op: <Id.Redir_Less '<'>
                                                          loc: (redir_loc.Fd fd:0)
                                                          arg: {(DQ ($ Id.VSub_DollarName f))}
                                                        )
                                                        (Redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {<'/dev/null'>}
                                                        )
                                                        (Redir
                                                          op: <Id.Redir_GreatAnd '2>&'>
                                                          loc: (redir_loc.Fd fd:2)
                                                          arg: {<1>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  ]
                                                )
                                              then_kw: <Id.KW_Then then>
                                              action: [
                                                (command.AndOr
                                                  children: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName exec)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_SingleQuote '\''>
                                                          pattern: (pat.Words words:[{(SQ )}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.Pipeline
                                                              children: [
                                                                (command.Simple
                                                                  blame_tok: 
                                                                    <Id.VSub_DollarName '$exec'>
                                                                  more_env: []
                                                                  words: [
                                                                    {($ Id.VSub_DollarName exec)}
                                                                    {<gunzip>}
                                                                  ]
                                                                  redirects: [
                                                                    (Redir
                                                                      op: <Id.Redir_Less '<'>
                                                                      loc: (redir_loc.Fd fd:0)
                                                                      arg: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName f)
                                                                          )
                                                                        }
                                                                    )
                                                                  ]
                                                                  do_fork: T
                                                                )
                                                                (command.Simple
                                                                  blame_tok: 
                                                                    <Id.VSub_DollarName '$TAR'>
                                                                  more_env: []
                                                                  words: [
                                                                    {($ Id.VSub_DollarName TAR)}
                                                                    {(${ Id.VSub_Name TARFLAGS) <f>}
                                                                    {<->}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              ops: [<Id.Op_Pipe _>]
                                                            )
                                                          ]
                                                          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: <Id.VSub_DollarName '$exec'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName exec)}
                                                                {
                                                                  (DQ <'gunzip < '> 
                                                                    ($ Id.VSub_DollarName f) <' | '> ($ Id.VSub_DollarName TAR) <' '> (${ Id.VSub_Name TARFLAGS) <'f -'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (BraceGroup
                                                      left: <Id.Lit_LBrace '{'>
                                                      children: [
                                                        (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: []
                                                        )
                                                        (command.ControlFlow
                                                          keyword: <Id.ControlFlow_Continue continue>
                                                        )
                                                      ]
                                                      redirects: []
                                                      right: <Id.Lit_RBrace '}'>
                                                    )
                                                  ]
                                                  ops: [<Id.Op_DPipe _>]
                                                )
                                              ]
                                              spids: [43471 43491]
                                            )
                                          ]
                                          else_kw: <Id.KW_Else else>
                                          else_action: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$exec'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName exec)}
                                                    {($ Id.VSub_DollarName TAR)}
                                                    {(${ Id.VSub_Name TARFLAGS) <f>}
                                                    {(DQ ($ Id.VSub_DollarName f))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (BraceGroup
                                                  left: <Id.Lit_LBrace '{'>
                                                  children: [
                                                    (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: []
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  redirects: []
                                                  right: <Id.Lit_RBrace '}'>
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                          ]
                                          fi_kw: <Id.KW_Fi fi>
                                          redirects: []
                                        )
                                      ]
                                      spids: [43387 43404]
                                    )
                                  ]
                                  else_kw: <Id.KW_Else else>
                                  else_action: [
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <checkaout>
                                          more_env: []
                                          words: [{<checkaout>} {<ratz>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <onpath>
                                          more_env: []
                                          words: [{<onpath>} {<ratz>}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (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: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _> <Id.Op_DPipe _>]
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'RATZ='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'RATZ='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'RATZ='>
                                              name: RATZ
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName _onpath_)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Case
                                          case_kw: <Id.KW_Case case>
                                          to_match: (case_arg.Word w:{($ Id.VSub_DollarName exec)})
                                          arms_start: <Id.KW_In in>
                                          arms: [
                                            (CaseArm
                                              left: <Id.Left_SingleQuote '\''>
                                              pattern: (pat.Words words:[{(SQ )}])
                                              middle: <Id.Right_CasePat _>
                                              action: [
                                                (command.Simple
                                                  blame_tok: <echo>
                                                  more_env: []
                                                  words: [
                                                    {<echo>}
                                                    {($ Id.VSub_DollarName f) <Id.Lit_Colon ':'>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$exec'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName exec)}
                                                    {($ Id.VSub_DollarName RATZ)}
                                                    {<-lm>}
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Id.Redir_Less '<'>
                                                      loc: (redir_loc.Fd fd:0)
                                                      arg: {(DQ ($ Id.VSub_DollarName f))}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                              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: <Id.VSub_DollarName '$exec'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName exec)}
                                                    {
                                                      (DQ ($ Id.VSub_DollarName RATZ) <' -lm < '> 
                                                        ($ Id.VSub_DollarName f)
                                                      )
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              right: <Id.Op_DSemi _>
                                            )
                                          ]
                                          arms_end: <Id.KW_Esac esac>
                                          redirects: []
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (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: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  ]
                                  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.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [
                                                {<test>}
                                                {<-f>}
                                                {($ Id.VSub_DollarName PACKAGEBIN) <'/gen/'> 
                                                  ($ Id.VSub_DollarName p) <.sum>
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                        )
                                      then_kw: <Id.KW_Then then>
                                      action: [
                                        (command.WhileUntil
                                          keyword: <Id.KW_While while>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <read>
                                                  more_env: []
                                                  words: [
                                                    {<read>}
                                                    {<md5>}
                                                    {<mode>}
                                                    {<usr>}
                                                    {<grp>}
                                                    {<file>}
                                                  ]
                                                  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 file)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <->
                                                      pattern: 
                                                        (pat.Words
                                                          words: [{<-> <Id.Lit_Star '*'>}]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.ShAssignment
                                                          left: <Id.Lit_VarLike 'file='>
                                                          pairs: [
                                                            (AssignPair
                                                              left: <Id.Lit_VarLike 'file='>
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'file='>
                                                                  name: file
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {<'./'> ($ Id.VSub_DollarName file)}
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                                (command.Case
                                                  case_kw: <Id.KW_Case case>
                                                  to_match: 
                                                    (case_arg.Word
                                                      w: {($ Id.VSub_DollarName mode)}
                                                    )
                                                  arms_start: <Id.KW_In in>
                                                  arms: [
                                                    (CaseArm
                                                      left: <Id.Lit_LBracket '['>
                                                      pattern: 
                                                        (pat.Words
                                                          words: [
                                                            {<Id.Lit_LBracket '['> <01234567> 
                                                              <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <01234567> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <01234567> 
                                                              <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <01234567> <Id.Lit_RBracket ']'>
                                                            }
                                                          ]
                                                        )
                                                      middle: <Id.Right_CasePat _>
                                                      action: [
                                                        (command.Case
                                                          case_kw: <Id.KW_Case case>
                                                          to_match: 
                                                            (case_arg.Word
                                                              w: {($ Id.VSub_DollarName grp)}
                                                            )
                                                          arms_start: <Id.KW_In in>
                                                          arms: [
                                                            (CaseArm
                                                              left: <->
                                                              pattern: (pat.Words words:[{<->}])
                                                              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.Simple
                                                                  blame_tok: 
                                                                    <Id.VSub_DollarName '$exec'>
                                                                  more_env: []
                                                                  words: [
                                                                    {($ Id.VSub_DollarName exec)}
                                                                    {<chgrp>}
                                                                    {($ Id.VSub_DollarName grp)}
                                                                    {(DQ ($ Id.VSub_DollarName file))}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                          ]
                                                          arms_end: <Id.KW_Esac esac>
                                                          redirects: []
                                                        )
                                                        (command.Case
                                                          case_kw: <Id.KW_Case case>
                                                          to_match: 
                                                            (case_arg.Word
                                                              w: {($ Id.VSub_DollarName usr)}
                                                            )
                                                          arms_start: <Id.KW_In in>
                                                          arms: [
                                                            (CaseArm
                                                              left: <->
                                                              pattern: (pat.Words words:[{<->}])
                                                              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.Simple
                                                                  blame_tok: 
                                                                    <Id.VSub_DollarName '$exec'>
                                                                  more_env: []
                                                                  words: [
                                                                    {($ Id.VSub_DollarName exec)}
                                                                    {<chown>}
                                                                    {($ Id.VSub_DollarName usr)}
                                                                    {(DQ ($ Id.VSub_DollarName file))}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              right: <Id.Op_DSemi _>
                                                            )
                                                          ]
                                                          arms_end: <Id.KW_Esac esac>
                                                          redirects: []
                                                        )
                                                        (command.Simple
                                                          blame_tok: <Id.VSub_DollarName '$exec'>
                                                          more_env: []
                                                          words: [
                                                            {($ Id.VSub_DollarName exec)}
                                                            {<chmod>}
                                                            {($ Id.VSub_DollarName mode)}
                                                            {(DQ ($ Id.VSub_DollarName file))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      right: <Id.Op_DSemi _>
                                                    )
                                                  ]
                                                  arms_end: <Id.KW_Esac esac>
                                                  redirects: []
                                                )
                                              ]
                                              right: <Id.KW_Done done>
                                            )
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Less '<'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: 
                                                {($ Id.VSub_DollarName PACKAGEBIN) <'/gen/'> 
                                                  ($ Id.VSub_DollarName p) <.sum>
                                                }
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [43697 43709]
                                    )
                                  ]
                                  else_action: []
                                  fi_kw: <Id.KW_Fi fi>
                                  redirects: []
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <test>
                                  more_env: []
                                  words: [
                                    {<test>}
                                    {(DQ )}
                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                    {(DQ ($ Id.VSub_DollarName PAX))}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (BraceGroup
                                  left: <Id.Lit_LBrace '{'>
                                  children: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName command) <': '> 
                                            ($ Id.VSub_DollarName f) <': pax required to read delta archive'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      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: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  redirects: []
                                  right: <Id.Lit_RBrace '}'>
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (command.Simple
                                                blame_tok: <echo>
                                                more_env: []
                                                words: [
                                                  {<echo>}
                                                  {
                                                    (DQ ($ Id.VSub_DollarName v) <':\n'> 
                                                      ($ Id.VSub_DollarName r) <':'>
                                                    )
                                                  }
                                                ]
                                                redirects: []
                                                do_fork: T
                                              )
                                              (command.Simple
                                                blame_tok: <sort>
                                                more_env: []
                                                words: [{<sort>}]
                                                redirects: []
                                                do_fork: T
                                              )
                                            ]
                                            ops: [<Id.Op_Pipe _>]
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.VSub_DollarName '$r'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {($ Id.VSub_DollarName r) <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'y='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'y='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'y='> name:y)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName p) <.base>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'b='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'b='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b='> name:b)
                                          op: assign_op.Equal
                                          rhs: 
                                            {(${ Id.VSub_Name d) (${ Id.VSub_Name p) 
                                              <Id.Lit_Underscore _> (${ Id.VSub_Name r) (${ Id.VSub_Name Q) <.tgz>
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-f>} {(DQ ($ Id.VSub_DollarName b))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'b='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'b='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'b='>
                                                  name: b
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {(${ Id.VSub_Name d) (${ Id.VSub_Name p) <.> 
                                                  (${ Id.VSub_Name r) (${ Id.VSub_Name q) <.tgz>
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-f>} {(DQ ($ Id.VSub_DollarName b))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {(DQ <' '> ($ Id.VSub_DollarName gen) <' '>)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName b) <' '>) <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.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: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName command) 
                                                                    <': '> ($ Id.VSub_DollarName f) <': base archive '> ($ Id.VSub_DollarName b) <' required to read delta'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: [
                                                                (Redir
                                                                  op: <Id.Redir_GreatAnd '>&'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: {<2>}
                                                                )
                                                              ]
                                                              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: []
                                                            )
                                                          ]
                                                          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: <shift>
                                                              more_env: []
                                                              words: [{<shift>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'y='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'y='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'y='>
                                                                      name: y
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_Number 1)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <shift>
                                                              more_env: []
                                                              words: [{<shift>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <set>
                                                              more_env: []
                                                              words: [
                                                                {<set>}
                                                                {(SQ )}
                                                                {($ Id.VSub_DollarName y)}
                                                                {($ Id.VSub_DollarName f)}
                                                                {(DQ ($ Id.VSub_At '@'))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$exec'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName exec)}
                                            {<pax>}
                                            {<-L>}
                                            {<--from> <Id.Lit_Equals '='> <ascii>}
                                            {<--local>}
                                            {<-ps>}
                                            {<-rvf>}
                                            {(DQ ($ Id.VSub_DollarName f))}
                                            {<-z>}
                                            {(DQ ($ Id.VSub_DollarName b))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (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: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.Simple
                                      blame_tok: <note>
                                      more_env: []
                                      words: [
                                        {<note>}
                                        {($ Id.VSub_DollarName f) <Id.Lit_Colon ':'>}
                                        {<generate>}
                                        {<new>}
                                        {<base>}
                                        {($ Id.VSub_DollarName d) ($ Id.VSub_DollarName p) <.> 
                                          ($ Id.VSub_DollarName v) ($ Id.VSub_DollarName q) <.tgz>
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$exec'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName exec)}
                                            {<pax>}
                                            {<-rf>}
                                            {(DQ ($ Id.VSub_DollarName f))}
                                            {<-z>}
                                            {(DQ ($ Id.VSub_DollarName b))}
                                            {<-wf>}
                                            {($ Id.VSub_DollarName d) ($ Id.VSub_DollarName p) <.> 
                                              ($ Id.VSub_DollarName v) ($ Id.VSub_DollarName q) <.tgz>
                                            }
                                            {<-x>}
                                            {<tgz>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (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: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName exec)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Left_SingleQuote '\''>
                                          pattern: (pat.Words words:[{(SQ )}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {($ Id.VSub_DollarName p)}
                                                {($ Id.VSub_DollarName v)}
                                                {($ Id.VSub_DollarName v)}
                                                {<1>}
                                              ]
                                              redirects: [
                                                (Redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {($ Id.VSub_DollarName w) <'/gen/'> 
                                                      ($ Id.VSub_DollarName p) <.ver>
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          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 '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: 
                                                    {($ Id.VSub_DollarName d) (${ Id.VSub_Name p) 
                                                      <Id.Lit_LBracket '['> <_.> <Id.Lit_RBracket ']'> ($ Id.VSub_DollarName v) ($ Id.VSub_DollarName q) <.tgz>
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName exec)}
                                                {
                                                  (DQ <'echo '> ($ Id.VSub_DollarName p) <' '> 
                                                    ($ Id.VSub_DollarName v) <' '> ($ Id.VSub_DollarName v) <' 1 > '> ($ Id.VSub_DollarName w) <'/gen/'> ($ Id.VSub_DollarName p) <.ver>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'gen='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'gen='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'gen='>
                                                      name: gen
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName gen) <' '> 
                                                        ($ Id.VSub_DollarName d) ($ Id.VSub_DollarName p) <.> ($ Id.VSub_DollarName v) ($ Id.VSub_DollarName q) <.tgz>
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName remove) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName f) <' '>) <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_VarLike 'remove='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'remove='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'remove='>
                                                      name: remove
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName remove) <' '> 
                                                        ($ Id.VSub_DollarName f)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      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 'b='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'b='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b='> name:b)
                                          op: assign_op.Equal
                                          rhs: 
                                            {(${ Id.VSub_Name d) (${ Id.VSub_Name p) 
                                              <Id.Lit_Underscore _> (${ Id.VSub_Name v) (${ Id.VSub_Name Q) <.tgz>
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-f>} {(DQ ($ Id.VSub_DollarName b))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'b='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'b='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'b='>
                                                  name: b
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {(${ Id.VSub_Name d) (${ Id.VSub_Name p) <.> 
                                                  (${ Id.VSub_Name v) (${ Id.VSub_Name q) <.tgz>
                                                }
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-f>} {(DQ ($ Id.VSub_DollarName b))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {(DQ <' '> ($ Id.VSub_DollarName gen) <' '>)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName b) <' '>) <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.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: <echo>
                                                              more_env: []
                                                              words: [
                                                                {<echo>}
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName command) 
                                                                    <': '> ($ Id.VSub_DollarName f) <': base archive '> ($ Id.VSub_DollarName b) <' required to read delta'>
                                                                  )
                                                                }
                                                              ]
                                                              redirects: [
                                                                (Redir
                                                                  op: <Id.Redir_GreatAnd '>&'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: {<2>}
                                                                )
                                                              ]
                                                              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: []
                                                            )
                                                          ]
                                                          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: <shift>
                                                              more_env: []
                                                              words: [{<shift>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'y='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'y='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'y='>
                                                                      name: y
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {($ Id.VSub_Number 1)}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <shift>
                                                              more_env: []
                                                              words: [{<shift>}]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              blame_tok: <set>
                                                              more_env: []
                                                              words: [
                                                                {<set>}
                                                                {(SQ )}
                                                                {($ Id.VSub_DollarName y)}
                                                                {($ Id.VSub_DollarName f)}
                                                                {(DQ ($ Id.VSub_At '@'))}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <Id.VSub_DollarName '$exec'>
                                          more_env: []
                                          words: [
                                            {($ Id.VSub_DollarName exec)}
                                            {<pax>}
                                            {<-L>}
                                            {<--from> <Id.Lit_Equals '='> <ascii>}
                                            {<--local>}
                                            {<-ps>}
                                            {<-rvf>}
                                            {(DQ ($ Id.VSub_DollarName f))}
                                            {<-z>}
                                            {(DQ ($ Id.VSub_DollarName b))}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (BraceGroup
                                          left: <Id.Lit_LBrace '{'>
                                          children: [
                                            (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: []
                                            )
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          redirects: []
                                          right: <Id.Lit_RBrace '}'>
                                        )
                                      ]
                                      ops: [<Id.Op_DPipe _>]
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              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: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName f) 
                                    <': unknown archive type'>
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              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: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          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.Simple
                                  blame_tok: <executable>
                                  more_env: []
                                  words: [
                                    {<executable>}
                                    {($ Id.VSub_DollarName w) <'/'> ($ Id.VSub_DollarName p) <.ini>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.VSub_DollarName '$exec'>
                                  more_env: []
                                  words: [
                                    {($ Id.VSub_DollarName exec)}
                                    {($ Id.VSub_DollarName w) <'/'> ($ Id.VSub_DollarName p) <.ini>}
                                    {<read>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (BraceGroup
                                  left: <Id.Lit_LBrace '{'>
                                  children: [
                                    (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: []
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  redirects: []
                                  right: <Id.Lit_RBrace '}'>
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          ]
                          spids: [44593 44603]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'k='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'k='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [i]
                      iterable: 
                        (for_iter.Words
                          words: [
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <ls>
                                    more_env: []
                                    words: [
                                      {<ls>}
                                      {($ Id.VSub_DollarName d) ($ Id.VSub_DollarName p) 
                                        <Id.Lit_LBracket '['> <_.> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> 
                                        <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> 
                                        <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> 
                                        <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> 
                                        <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <_.> <Id.Lit_RBracket ']'> <Id.Lit_QMark '?'> 
                                        <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> ($ Id.VSub_DollarName m) <Id.Lit_Star '*'>
                                      }
                                      {($ Id.VSub_DollarName z)}
                                    ]
                                    redirects: [
                                      (Redir
                                        op: <Id.Redir_Great '2>'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<'/dev/null'>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          ]
                        )
                      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 i)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.md5>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.VSub_DollarName '$d'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {($ Id.VSub_DollarName d) (${ Id.VSub_Name p) 
                                          <Id.Lit_LBracket '['> <_.> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> 
                                          <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> 
                                          <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> 
                                          <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> 
                                          <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <_.> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> 
                                          <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> ($ Id.VSub_DollarName m) <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.VSub_DollarName '$d'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {($ Id.VSub_DollarName d) (${ Id.VSub_Name p) 
                                          <Id.Lit_LBracket '['> <_.> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> 
                                          <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> 
                                          <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> 
                                          <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> 
                                          <0123456789> <Id.Lit_RBracket ']'> ($ Id.VSub_DollarName m) <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.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName k)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_QMark '?'>
                                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName remove) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName k) <' '>) <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_VarLike 'remove='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'remove='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'remove='>
                                                      name: remove
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName remove) <' '> 
                                                        ($ Id.VSub_DollarName k)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'k='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'k='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName i)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'x='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'x='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName x) <' '> ($ Id.VSub_DollarName y))}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName touch) <' '>)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName u) <' '>) 
                                  <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_VarLike 'touch='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'touch='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'touch='> name:touch)
                                  op: assign_op.Equal
                                  rhs: 
                                    {(DQ ($ Id.VSub_DollarName touch) <' '> ($ Id.VSub_DollarName u))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      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.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<Id.KW_Bang '!'>}
                            {<-f>}
                            {($ Id.VSub_DollarName PACKAGEROOT) <'/bin/package'>}
                            {<-a>}
                            {<-f>}
                            {($ Id.VSub_DollarName PACKAGEROOT) <'/bin/package.old'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$exec'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName exec)}
                        {<cp>}
                        {($ Id.VSub_DollarName PACKAGEROOT) <'/bin/package.old'>}
                        {($ Id.VSub_DollarName PACKAGEROOT) <'/bin/package'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [44949 44968]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName remove)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$exec'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName exec)} {<rm>} {<-f>} {($ Id.VSub_DollarName remove)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName touch)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <sleep>
                          more_env: []
                          words: [{<sleep>} {<1>}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$exec'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName exec)} {<touch>} {($ Id.VSub_DollarName touch)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName code) ($ Id.VSub_DollarName exec)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <requirements>
                      more_env: []
                      words: [{<requirements>} {<->} {($ Id.VSub_DollarName x)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName code)}
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <regress>
          pattern: (pat.Words words:[{<regress>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<Id.KW_Bang '!'>}
                            {<-d>}
                            {($ Id.VSub_DollarName PACKAGEBIN) <'/gen'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ ($ Id.VSub_DollarName command) 
                            <': \'package make\' and \'package test\' required for regression'>
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [45088 45100]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'dir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'dir='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName PACKAGEBIN) <'/gen'>}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <cd>
              more_env: []
              words: [{<cd>} {($ Id.VSub_DollarName dir)}]
              redirects: []
              do_fork: T
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [s]
              iterable: (for_iter.Words words:[{<out>} {<old>}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: 
                        (case_arg.Word
                          w: 
                            {
                              (CommandSub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Simple
                                    blame_tok: <ls>
                                    more_env: []
                                    words: [
                                      {<ls>}
                                      {<-t>}
                                      {<regress.> ($ Id.VSub_DollarName s)}
                                      {<test.> ($ Id.VSub_DollarName s)}
                                    ]
                                    redirects: [
                                      (Redir
                                        op: <Id.Redir_Great '2>'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<'/dev/null'>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                        )
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <regress>
                          pattern: (pat.Words words:[{<regress> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: []
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <test>
                          pattern: (pat.Words words:[{<test> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-f>} {<regress.> ($ Id.VSub_DollarName s)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <Id.VSub_DollarName '$exec'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName exec)}
                                        {<mv>}
                                        {<regress.> ($ Id.VSub_DollarName s)}
                                        {<regress.old>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [45178 45188]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName exec)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Pipeline
                                      children: [
                                        (command.Simple
                                          blame_tok: <egrep>
                                          more_env: []
                                          words: [
                                            {<egrep>}
                                            {<-i>}
                                            {
                                              (SQ 
                                                <
'\\*\\*\\*|FAIL|^TEST.* [123456789][0123456789]* error|core.*dump'
                                                >
                                              )
                                            }
                                            {<test.> ($ Id.VSub_DollarName s)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <sed>
                                          more_env: []
                                          words: [
                                            {<sed>}
                                            {<-e>}
                                            {(SQ <'/\\*\\*\\* [0123456789]/d'>)}
                                            {<-e>}
                                            {(SQ <'/^TEST.\\//s,/[^ ]*/,,'>)}
                                            {<-e>}
                                            {(SQ <'s,[ \t][ \t]*$,,'>)}
                                            {<-e>}
                                            {
                                              (SQ 
                                                <
's/[0123456789][0123456789]*:* \\([abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789 ]*([abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789 ]*[Cc][Oo][Rr][Ee][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789 ]*)\\)/\\1/'
                                                >
                                              )
                                            }
                                            {<-e>}
                                            {(SQ <'s/\\.sh failed at .* with /.sh failed /'>)}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<regress.> ($ Id.VSub_DollarName s)}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_Pipe _>]
                                    )
                                  ]
                                  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: <Id.VSub_DollarName '$exec'>
                                      more_env: []
                                      words: [
                                        {($ Id.VSub_DollarName exec)}
                                        {<filter>}
                                        {<test>}
                                        {<failures>}
                                        {<from>}
                                        {($ Id.VSub_DollarName dir) <'/test.'> 
                                          ($ Id.VSub_DollarName s)
                                        }
                                        {<to>}
                                        {($ Id.VSub_DollarName dir) <'/regress.'> 
                                          ($ Id.VSub_DollarName s)
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      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.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [{<test>} {<-f>} {<regress.out>} {<-a>} {<-f>} {<regress.old>}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$exec'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName exec)}
                        {<diff>}
                        {<-b>}
                        {<regress.out>}
                        {<regress.old>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [45318 45333]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {
                      (DQ ($ Id.VSub_DollarName command) 
                        <': at least 2 test runs required for regression'>
                      )
                    }
                  ]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <release>
          pattern: (pat.Words words:[{<release>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'count='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'count='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'count='> name:count)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
                (AssignPair
                  left: <Id.Lit_VarLike 'lo='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lo='> name:lo)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
                (AssignPair
                  left: <Id.Lit_VarLike 'hi='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'hi='> name:hi)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <checksrc>
              more_env: []
              words: [{<checksrc>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <checkaout>
                  more_env: []
                  words: [{<checkaout>} {<release>}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <requirements>
              more_env: []
              words: [{<requirements>} {<source>} {($ Id.VSub_DollarName package)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <components>
              more_env: []
              words: [{<components>} {($ Id.VSub_DollarName package)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName _components_)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName target)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (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: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <->
                          pattern: 
                            (pat.Words
                              words: [
                                {<->}
                                {<Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <->
                                  pattern: (pat.Words words:[{<->}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'lo='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'lo='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lo='> name:lo)
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'release='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'release='>
                                              name: release
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      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 'lo='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'lo='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lo='> name:lo)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_Number 1)}
                                        )
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'release='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'release='>
                                              name: release
                                            )
                                          op: assign_op.Equal
                                          rhs: {(DQ <'-f '> ($ Id.VSub_Number 1))}
                                        )
                                      ]
                                      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
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <->
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<->}
                                        {<Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                        }
                                        {<Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <-> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                          <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <->
                                          pattern: (pat.Words words:[{<->}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'hi='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'hi='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'hi='>
                                                      name: hi
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              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 'hi='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'hi='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'hi='>
                                                      name: hi
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_Number 1)}
                                                )
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'release='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'release='>
                                                      name: release
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName release) <' -t '> 
                                                        ($ Id.VSub_Number 1)
                                                      )
                                                    }
                                                )
                                              ]
                                              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.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_LBracket '['>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>}
                                {<Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0123456789> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_Star '*'>
                                }
                              ]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'count='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'count='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'count='> name:count)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'release='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'release='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'release='>
                                      name: release
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ <'-r '> ($ Id.VSub_DollarName count))}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (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.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName package)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'package='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'package='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'package='>
                                      name: package
                                    )
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Star '*'>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<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 package)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'package='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'package='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'package='>
                                      name: package
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Star '*')}
                                )
                              ]
                              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: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                {($ Id.VSub_Star '*') <Id.Lit_Colon ':'>}
                                {<lo-date>}
                                {<hi-date>}
                                {<arguments>}
                                {<expected>}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: 
                    {($ Id.VSub_DollarName count) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName lo) 
                      <Id.Lit_Colon ':'> ($ Id.VSub_DollarName hi)
                    }
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'All recorded changes follow.'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <1>
                  pattern: (pat.Words words:[{<1> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Changes since the last release follow.'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_QMark '?'> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'Changes since the last '> ($ Id.VSub_DollarName count) 
                            <' releases follow.'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <1>
                  pattern: 
                    (pat.Words
                      words: [
                        {<1> <Id.Lit_Colon ':'> <Id.Lit_QMark '?'> <Id.Lit_Star '*'> <Id.Lit_Colon ':'>}
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'Changes since '> ($ Id.VSub_DollarName lo) 
                            <' or the last release follow.'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_QMark '?'> <Id.Lit_Star '*'> 
                          <Id.Lit_Colon ':'> <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Changes since '> ($ Id.VSub_DollarName lo) <' follow.'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <Id.Lit_QMark '?'> 
                          <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Changes before '> ($ Id.VSub_DollarName hi) <' follow.'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  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: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'Changes between '> ($ Id.VSub_DollarName lo) <' and '> 
                            ($ Id.VSub_DollarName hi) <' follow.'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'x='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'x='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [r]
              iterable: 
                (for_iter.Words
                  words: [{($ Id.VSub_DollarName INSTALLROOT)} {($ Id.VSub_DollarName PACKAGEROOT)}]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [s]
                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName package_src)}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'd='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'd='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'd='> name:d)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName r) <'/src/'> ($ Id.VSub_DollarName s)}
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-d>} {($ Id.VSub_DollarName d)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <cd>
                                      more_env: []
                                      words: [{<cd>} {($ Id.VSub_DollarName d)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [i]
                                      iterable: 
                                        (for_iter.Words
                                          words: [{($ Id.VSub_DollarName package)}]
                                        )
                                      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.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-h>}
                                                            {($ Id.VSub_DollarName i)}
                                                          ]
                                                          redirects: [
                                                            (Redir
                                                              op: <Id.Redir_Great '2>'>
                                                              loc: (redir_loc.Fd fd:2)
                                                              arg: {<'/dev/null'>}
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ControlFlow
                                                      keyword: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  spids: [46001 46013]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {(DQ <' '> ($ Id.VSub_DollarName x) <' '>)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName i) <' '>) <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.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [f]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [{<RELEASE>} {<CHANGES>} {<ChangeLog>}]
                                                )
                                              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.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<-f>}
                                                                    {($ Id.VSub_DollarName i) <'/'> 
                                                                      ($ Id.VSub_DollarName f)
                                                                    }
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.Simple
                                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                                              more_env: []
                                                              words: [
                                                                {($ Id.VSub_DollarName exec)}
                                                                {<release>}
                                                                {($ Id.VSub_DollarName release)}
                                                                {($ Id.VSub_DollarName i) <'/'> 
                                                                  ($ Id.VSub_DollarName f)
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'x='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'x='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'x='>
                                                                      name: x
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ ($ Id.VSub_DollarName x) 
                                                                        <' '> ($ Id.VSub_DollarName i)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ForEach
                                                              keyword: <Id.KW_For for>
                                                              iter_names: [f]
                                                              iterable: 
                                                                (for_iter.Words
                                                                  words: [
                                                                    {($ Id.VSub_DollarName i) <'/'> 
                                                                      <Id.Lit_Star '*'> <'/'> ($ Id.VSub_DollarName f)
                                                                    }
                                                                  ]
                                                                )
                                                              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.Simple
                                                                                  blame_tok: <test>
                                                                                  more_env: []
                                                                                  words: [
                                                                                    {<test>}
                                                                                    {<-f>}
                                                                                    {
                                                                                      ($ 
Id.VSub_DollarName f
                                                                                      )
                                                                                    }
                                                                                  ]
                                                                                  redirects: []
                                                                                  do_fork: T
                                                                                )
                                                                              ]
                                                                            )
                                                                          then_kw: <Id.KW_Then then>
                                                                          action: [
                                                                            (command.Simple
                                                                              blame_tok: 
                                                                                <Id.VSub_DollarName 
'$exec'
                                                                                >
                                                                              more_env: []
                                                                              words: [
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName exec
                                                                                  )
                                                                                }
                                                                                {<release>}
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName release
                                                                                  )
                                                                                }
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName f
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: []
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          spids: [46111 46120]
                                                                        )
                                                                      ]
                                                                      else_action: []
                                                                      fi_kw: <Id.KW_Fi fi>
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  right: <Id.KW_Done done>
                                                                )
                                                              redirects: []
                                                            )
                                                            (command.ControlFlow
                                                              keyword: <Id.ControlFlow_Break break>
                                                            )
                                                          ]
                                                          spids: [46064 46075]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.KW_Done done>
                                                )
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  spids: [45974 45983]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <remove>
          pattern: (pat.Words words:[{<remove>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName action) 
                    <': not implemented yet'>
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <results>
          pattern: (pat.Words words:[{<results>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName target)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'def='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'def='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'def='> name:def)
                  op: assign_op.Equal
                  rhs: {<make>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'dir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'dir='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName PACKAGEBIN) <'/gen'>}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName verbose)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'filter='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'filter='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'filter='> name:filter)
                          op: assign_op.Equal
                          rhs: {<yes>}
                        )
                      ]
                      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 'filter='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'filter='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'filter='> name:filter)
                          op: assign_op.Equal
                          rhs: {<cat>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'path='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'path='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'path='> name:path)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'suf='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'suf='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'suf='> name:suf)
                  op: assign_op.Equal
                  rhs: {<out>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'on='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'on='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'on='> name:on)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              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.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <-->
                          pattern: (pat.Words words:[{<-->}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <admin>
                          pattern: (pat.Words words:[{<admin>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'dir='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'dir='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName PACKAGESRC) <'/admin'>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <error>
                          pattern: 
                            (pat.Words
                              words: [{<error> <Id.Lit_Star '*'>} {<fail> <Id.Lit_Star '*'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'filter='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'filter='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'filter='> name:filter)
                                  op: assign_op.Equal
                                  rhs: {<errors>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <make>
                          pattern: (pat.Words words:[{<make>} {<test>} {<view>} {<write>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'def='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'def='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'def='> name:def)
                                  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 filter) <Id.Lit_Colon ':'> 
                                      ($ Id.VSub_Number 1) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName SHELL)
                                    }
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <errors>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<errors> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> 
                                          <Id.Lit_Colon ':'> <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_Colon ':'> <test> <Id.Lit_Colon ':'> 
                                          <Id.Lit_Star '*'> <'/ksh'> <Id.Lit_Star '*'>
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'filter='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'filter='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'filter='>
                                              name: filter
                                            )
                                          op: assign_op.Equal
                                          rhs: {<rt>}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <old>
                          pattern: (pat.Words words:[{<old>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'suf='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'suf='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'suf='> name:suf)
                                  op: assign_op.Equal
                                  rhs: {<old>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <on>
                          pattern: (pat.Words words:[{<on>}])
                          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: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                        {($ Id.VSub_DollarName action) <Id.Lit_Colon ':'>}
                                        {($ Id.VSub_Number 1) <Id.Lit_Colon ':'>}
                                        {<host>}
                                        {<pattern>}
                                        {<argument>}
                                        {<expected>}
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      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.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName on)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_QMark '?'>
                                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'on='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'on='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'on='> name:on)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName on) <'|'>)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'on='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'on='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'on='> name:on)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName on) ($ Id.VSub_Number 1))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <path>
                          pattern: (pat.Words words:[{<path>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'path='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'path='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'path='> name:path)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <test>
                          pattern: (pat.Words words:[{<test>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'def='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'def='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'def='> name:def)
                                  op: assign_op.Equal
                                  rhs: {<test>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'filter='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'filter='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'filter='> name:filter)
                                  op: assign_op.Equal
                                  rhs: {<rt>}
                                )
                              ]
                              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_Break break>)]
                          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.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName dir)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'> <'/admin'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName on)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'on='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'on='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'on='> name:on)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'*'>)}
                                )
                              ]
                              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 'on='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'on='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'on='> name:on)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'@('> ($ Id.VSub_DollarName on) <')'>)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'def='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'def='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'def='> name:def)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName def) <'.log/'> ($ Id.VSub_DollarName on)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (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.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {(DQ ($ Id.VSub_DollarName def))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'm='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'm='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'm='> name:m)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 't='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 't='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 't='> name:t)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter__Args)
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'k='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'k='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'k='> name:k)
                          op: assign_op.Equal
                          rhs: {<0>}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <eval>
                      more_env: []
                      words: [
                        {<eval>}
                        {<set>}
                        {(SQ <'""'>)}
                        {($ Id.VSub_DollarName i)}
                        {<->}
                        {($ Id.VSub_DollarName i) <.> ($ Id.VSub_DollarName suf)}
                        {<->}
                        {($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName i)}
                        {<->}
                        {($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName i) <.> 
                          ($ Id.VSub_DollarName suf)
                        }
                        {<->}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [j]
                      iterable: (for_iter__Args)
                      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 j)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <->
                                  pattern: (pat.Words words:[{<->}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName k)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <1>
                                          pattern: (pat.Words words:[{<1>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                              arg_word: {<2>}
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [{<test>} {<-f>} {($ Id.VSub_DollarName j)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'k='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'k='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'k='>
                                                      name: k
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {<'/'> ($ Id.VSub_DollarName j)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> <'/test.'> 
                                                          <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 't='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 't='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 't='>
                                                              name: t
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName t) <' '> 
                                                                ($ Id.VSub_DollarName j)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      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 'm='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'm='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'm='>
                                                              name: m
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName m) <' '> 
                                                                ($ Id.VSub_DollarName j)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          spids: [46682 46691]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName i) 
                            <' action output not found'>
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'sep='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'sep='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sep='> name:sep)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName t)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <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 path)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [j]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName t)}])
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ ($ Id.VSub_DollarName sep) <'==> '> 
                                            ($ Id.VSub_DollarName j) <' <=='>
                                          )
                                        }
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'sep='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'sep='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'sep='>
                                              name: sep
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName nl)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName filter)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <cat>
                                          pattern: (pat.Words words:[{<cat>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName exec)}
                                                {<cat>}
                                                {($ Id.VSub_DollarName j)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <errors>
                                          pattern: (pat.Words words:[{<errors>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Pipeline
                                              children: [
                                                (command.Simple
                                                  blame_tok: <Id.VSub_DollarName '$exec'>
                                                  more_env: []
                                                  words: [
                                                    {($ Id.VSub_DollarName exec)}
                                                    {<egrep>}
                                                    {<-i>}
                                                    {
                                                      (SQ 
                                                        <
'\\*\\*\\*|FAIL[ES]|^TEST.* [123456789][0123456789]* error|core.*dump'
                                                        >
                                                      )
                                                    }
                                                    {($ Id.VSub_DollarName j)}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  blame_tok: <sed>
                                                  more_env: []
                                                  words: [
                                                    {<sed>}
                                                    {<-e>}
                                                    {(SQ <'/^TEST.\\//s,/[^ ]*/,,'>)}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: [<Id.Op_Pipe _>]
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <rt>
                                          pattern: (pat.Words words:[{<rt>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Simple
                                              blame_tok: <Id.VSub_DollarName '$exec'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName exec)}
                                                {($ Id.VSub_DollarName KSH)}
                                                {<rt>}
                                                {<->}
                                                {($ Id.VSub_DollarName j)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          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: <Id.VSub_DollarName '$exec'>
                                              more_env: []
                                              words: [
                                                {($ Id.VSub_DollarName exec)}
                                                {<egrep>}
                                                {<-i>}
                                                {(SQ <'^TEST|FAIL'>)}
                                                {($ Id.VSub_DollarName j)}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {($ Id.VSub_DollarName t)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName m)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <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 path)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName filter)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <cat>
                                  pattern: (pat.Words words:[{<cat>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <cat>
                                      more_env: []
                                      words: [{<cat>} {($ Id.VSub_DollarName m)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-f>}
                                                    {($ Id.VSub_DollarName HOME) <'/.pkgresults'>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'i='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'i='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'i='>
                                                      name: i
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ 
                                                        (CommandSub
                                                          left_token: <Id.Left_Backtick '`'>
                                                          child: 
                                                            (command.Simple
                                                              blame_tok: <cat>
                                                              more_env: []
                                                              words: [
                                                                {<cat>}
                                                                {($ Id.VSub_DollarName HOME) 
                                                                  <'/.pkgresults'>
                                                                }
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          right: <Id.Backtick_Right '`'>
                                                        )
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName i)})
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Left_SingleQuote '\''>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [{(SQ <'|'>) <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_VarLike 'i='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'i='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'i='>
                                                              name: i
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ <'|'> ($ Id.VSub_DollarName i))}
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          spids: [46974 46984]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'i='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'i='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'i='>
                                                  name: i
                                                )
                                              op: assign_op.Equal
                                              rhs: (rhs_word__Empty)
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [j]
                                      iterable: (for_iter.Words words:[{($ Id.VSub_DollarName m)}])
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.Simple
                                              blame_tok: <echo>
                                              more_env: []
                                              words: [
                                                {<echo>}
                                                {
                                                  (DQ ($ Id.VSub_DollarName sep) <'==> '> 
                                                    ($ Id.VSub_DollarName j) <' <=='>
                                                  )
                                                }
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'sep='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'sep='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'sep='>
                                                      name: sep
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName nl)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {($ Id.VSub_DollarName filter)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <errors>
                                                  pattern: (pat.Words words:[{<errors>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <Id.VSub_DollarName '$exeg'>
                                                      more_env: []
                                                      words: [
                                                        {($ Id.VSub_DollarName exeg)}
                                                        {<egrep>}
                                                        {(SQ <'^pax:|\\*\\*\\*'>)}
                                                        {($ Id.VSub_DollarName j)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.Pipeline
                                                      children: [
                                                        (command.Simple
                                                          blame_tok: <Id.VSub_DollarName '$exec'>
                                                          more_env: []
                                                          words: [
                                                            {($ Id.VSub_DollarName exec)}
                                                            {<egrep>}
                                                            {<-iv>}
                                                            {
                                                              (SQ 
                                                                <
'^($|\x1b|[\\+\\[]|cc[^-:]|kill |make.*(file system time|has been replaced)|so|[0123456789]+ error|uncrate |[0123456789]+ block|ar: creat|iffe: test: |conf: (check|generate|test)|[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]*=|gsf@research|ar:.*warning|cpio:|ld:.*(duplicate symbol|to obtain more information)|[0123456789]*$|(checking|creating|touch) [/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789])| obsolete predefined symbol | is (almost always misused|dangerous|deprecated|not implemented)| trigraph| assigned to | cast .* different size| integer overflow .*<<| optimization may be attained | passed as |::__builtin|pragma.*prototyped|^creating.*\\.a$|warning.*not optimized|exceeds size thresh|ld:.*preempts|is unchanged|with value >=|(-l|lib)\\*|/(ast|sys)/(dir|limits|param|stropts)\\.h.*redefined|usage|base registers|`\\.\\.\\.` obsolete'
                                                                >
                                                              ) (DQ ($ Id.VSub_DollarName i))
                                                            }
                                                            {($ Id.VSub_DollarName j)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          blame_tok: <Id.VSub_DollarName '$exec'>
                                                          more_env: []
                                                          words: [
                                                            {($ Id.VSub_DollarName exec)}
                                                            {<grep>}
                                                            {<Id.Lit_Colon ':'>}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                      ops: [<Id.Op_Pipe _>]
                                                    )
                                                  ]
                                                  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: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {($ Id.VSub_DollarName m)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <test>
          pattern: (pat.Words words:[{<test>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <requirements>
              more_env: []
              words: [{<requirements>} {<source>} {($ Id.VSub_DollarName package)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <components>
              more_env: []
              words: [{<components>} {($ Id.VSub_DollarName package)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'package='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'package='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'package='> name:package)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName _components_)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName only)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'only='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'only='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'only='> name:only)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <1>
                  pattern: (pat.Words words:[{<1>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'only='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'only='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'only='> name:only)
                          op: assign_op.Equal
                          rhs: {<--recurse> <Id.Lit_Equals '='> <only>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  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.Simple
                          blame_tok: <nonmake>
                          more_env: []
                          words: [{<nonmake>} {($ Id.VSub_DollarName MAKE)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                        {($ Id.VSub_DollarName action) <Id.Lit_Colon ':'>}
                        {<must>}
                        {<have>}
                        {($ Id.VSub_DollarName MAKE)}
                        {<to>}
                        {<test>}
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [47207 47214]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$make'>
              more_env: []
              words: [{($ Id.VSub_DollarName make)} {<cd>} {($ Id.VSub_DollarName INSTALLROOT) <'/src'>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Subshell
                  left: <Id.Op_LParen _>
                  child: 
                    (command.Simple
                      blame_tok: <ulimit>
                      more_env: []
                      words: [{<ulimit>} {<-c>} {<0>}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Right_Subshell _>
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/dev/null'>}
                    )
                    (Redir
                      op: <Id.Redir_GreatAnd '2>&'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<1>}
                    )
                  ]
                )
                (command.Simple
                  blame_tok: <ulimit>
                  more_env: []
                  words: [{<ulimit>} {<-c>} {<0>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {<capture>}
                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <MAKE>}
                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <makeflags>}
                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <noexec>}
                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <only>}
                {<recurse>}
                {<test>}
                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <target>}
                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <nmakesep>}
                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <package>}
                {($ Id.VSub_DollarName assign)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <update>
          pattern: (pat.Words words:[{<update>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {<Id.KW_Bang '!'>}
                            {<-d>}
                            {($ Id.VSub_DollarName PACKAGEROOT) <'/lib/package/tgz'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.VSub_DollarName '$exec'>
                          more_env: []
                          words: [
                            {($ Id.VSub_DollarName exec)}
                            {<mkdir>}
                            {<-p>}
                            {($ Id.VSub_DollarName PACKAGEROOT) <'/lib/package/tgz'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Exit exit>
                        )
                      ]
                      ops: [<Id.Op_DPipe _>]
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$exec'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName exec)}
                        {<cd>}
                        {($ Id.VSub_DollarName PACKAGEROOT) <'/lib/package/tgz'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [47344 47356]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <cd>
                  more_env: []
                  words: [{<cd>} {($ Id.VSub_DollarName PACKAGEROOT) <'/lib/package/tgz'>}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName args)}]
              redirects: []
              do_fork: T
            )
            (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: {<update>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'tgz='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'tgz='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tgz='> name:tgz)
                  op: assign_op.Equal
                  rhs: {<tgz>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'source='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'source='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'source='> name:source)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'binary='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'binary='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'binary='> name:binary)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'setup='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'setup='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'setup='> name:setup)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'types='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'types='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'types='> name:types)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'url='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'url='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'url='> name:url)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'urlfile='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'urlfile='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'urlfile='> name:urlfile)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName default_url)}
                )
              ]
              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.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (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.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <-->
                          pattern: (pat.Words words:[{<-->}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <beta>
                          pattern: (pat.Words words:[{<beta>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (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: {<beta>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'tgz='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'tgz='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tgz='> name:tgz)
                                  op: assign_op.Equal
                                  rhs: {<beta>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <binary>
                          pattern: (pat.Words words:[{<binary>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'binary='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'binary='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'binary='> name:binary)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <setup>
                          pattern: (pat.Words words:[{<setup>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'setup='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'setup='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'setup='> name:setup)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <source>
                          pattern: (pat.Words words:[{<source>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'source='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'source='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'source='> name:source)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [{<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <'//'> <Id.Lit_Star '*'>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'url='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'url='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'url='> name:url)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'> <.url>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'urlfile='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'urlfile='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'urlfile='>
                                      name: urlfile
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<Id.KW_Bang '!'>}
                                            {<-s>}
                                            {($ Id.VSub_DollarName urlfile)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [
                                            {<echo>}
                                            {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                            {($ Id.VSub_DollarName urlfile) <Id.Lit_Colon ':'>}
                                            {<not>}
                                            {<found>}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_GreatAnd '>&'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<2>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [47550 47561]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.VSub_DollarName '$all_types'>
                          pattern: (pat.Words words:[{($ Id.VSub_DollarName all_types)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'binary='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'binary='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'binary='> name:binary)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'types='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'types='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'types='> name:types)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName types) <' '> ($ Id.VSub_Number 1))}
                                )
                              ]
                              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_Break break>)]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: {($ Id.VSub_DollarName source) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName binary)}
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'source='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'source='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'source='> name:source)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                        (AssignPair
                          left: <Id.Lit_VarLike 'binary='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'binary='> name:binary)
                          op: assign_op.Equal
                          rhs: {<1>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Colon ':'>
                  pattern: (pat.Words words:[{<Id.Lit_Colon ':'> <1>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName types)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'types='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'types='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'types='> name:types)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName HOSTTYPE)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName url)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName urlfile)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.VSub_DollarName '$default_url'>
                          pattern: (pat.Words words:[{($ Id.VSub_DollarName default_url)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [
                                            {<test>}
                                            {<Id.KW_Bang '!'>}
                                            {<-s>}
                                            {($ Id.VSub_DollarName urlfile)}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [
                                            {<echo>}
                                            {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                            {<url>}
                                            {<argument>}
                                            {<expected>}
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_GreatAnd '>&'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<2>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [47701 47712]
                                )
                              ]
                              else_action: []
                              fi_kw: <Id.KW_Fi fi>
                              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 'default_url='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'default_url='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'default_url='>
                                      name: default_url
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'url='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'url='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'url='> name:url)
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Simple
                                  blame_tok: <grep>
                                  more_env: []
                                  words: [{<grep>} {(SQ <'^url='>)} {($ Id.VSub_DollarName urlfile)}]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'a='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'a='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName authorize)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName password)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName urlfile)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [{<Id.Lit_Star '*'> <'/'> <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_VarLike 'urlfile='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'urlfile='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'urlfile='>
                                              name: urlfile
                                            )
                                          op: assign_op.Equal
                                          rhs: {<'./'> ($ Id.VSub_DollarName urlfile)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <.>
                              more_env: []
                              words: [{<.>} {($ Id.VSub_DollarName urlfile)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: 
                                    {($ Id.VSub_DollarName a) <Id.Lit_Colon ':'> 
                                      ($ Id.VSub_DollarName p)
                                    }
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.VSub_DollarName '$authorize'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {($ Id.VSub_DollarName authorize) <Id.Lit_Colon ':'> 
                                          ($ Id.VSub_DollarName password)
                                        }
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'default_url='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'default_url='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'default_url='>
                                              name: default_url
                                            )
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<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 a)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_QMark '?'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'authorize='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'authorize='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'authorize='>
                                                      name: authorize
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName a)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName p)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_QMark '?'>
                                          pattern: 
                                            (pat.Words
                                              words: [{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'password='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'password='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'password='>
                                                      name: password
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName p)}
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          spids: [47755 47769]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'url='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'url='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'url='> name:url)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        blame_tok: <cat>
                                        more_env: []
                                        words: [{<cat>} {($ Id.VSub_DollarName urlfile)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                            )
                          ]
                          redirects: []
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName exec)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'default_url='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'default_url='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'default_url='>
                              name: default_url
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [
                {<eval>}
                {
                  (CommandSub
                    left_token: <Id.Left_Backtick '`'>
                    child: 
                      (command.Pipeline
                        children: [
                          (command.Simple
                            blame_tok: <echo>
                            more_env: []
                            words: [{<echo>} {($ Id.VSub_DollarName url)}]
                            redirects: []
                            do_fork: T
                          )
                          (command.Simple
                            blame_tok: <sed>
                            more_env: []
                            words: [
                              {<sed>}
                              {
                                (SQ 
                                  <
's,\\(.*\\)://\\([^/]*\\)/\\(.*\\),prot=\\"\\1\\" host=\\"\\2\\" dir=\\"\\3\\",'
                                  >
                                )
                              }
                            ]
                            redirects: []
                            do_fork: T
                          )
                        ]
                        ops: [<Id.Op_Pipe _>]
                      )
                    right: <Id.Backtick_Right '`'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <get>
              more_env: []
              words: [
                {<get>}
                {($ Id.VSub_DollarName host)}
                {($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName op) <.html>}
              ]
              redirects: []
              do_fork: T
            )
            (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 '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName source)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'source_packages='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'source_packages='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'source_packages='>
                                      name: source_packages
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Star '*')}
                                )
                              ]
                              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 'source_packages='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'source_packages='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'source_packages='>
                                      name: source_packages
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName binary)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'binary_packages='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'binary_packages='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'binary_packages='>
                                      name: binary_packages
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Star '*')}
                                )
                              ]
                              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 'binary_packages='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'binary_packages='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'binary_packages='>
                                      name: binary_packages
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'package_hit='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'package_hit='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'package_hit='>
                              name: package_hit
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Star '*')}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Left_DoubleQuote '"'>
                  pattern: (pat.Words words:[{(DQ <'  '>)}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'nl='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'nl='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'nl='> name:nl)
                          op: assign_op.Equal
                          rhs: {(DQ <'\n'>)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName source)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [f]
                              iterable: 
                                (for_iter.Words
                                  words: [
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <ls>
                                            more_env: []
                                            words: [
                                              {<ls>}
                                              {<Id.Lit_Star '*'> <.> <Id.Lit_QMark '?'> 
                                                <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> 
                                                <Id.Lit_QMark '?'> <.> <Id.Lit_Star '*'>
                                              }
                                            ]
                                            redirects: [
                                              (Redir
                                                op: <Id.Redir_Great '2>'>
                                                loc: (redir_loc.Fd fd:2)
                                                arg: {<'/dev/null'>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  ]
                                )
                              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 f)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <.> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <.> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <.> <Id.Lit_Star '*'> <.> <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_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <.> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <.> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p='>
                                                      name: p
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName p) 
                                                      ($ Id.VSub_DollarName nl) ($ Id.VSub_DollarName f)
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <.> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <.> <Id.Lit_Star '*'> <.> <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_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <.> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p='>
                                                      name: p
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName p) 
                                                      ($ Id.VSub_DollarName nl) ($ Id.VSub_DollarName f)
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [
                                {<set>}
                                {(SQ )}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (command.Simple
                                            blame_tok: <echo>
                                            more_env: []
                                            words: [{<echo>} {(DQ ($ Id.VSub_DollarName p))}]
                                            redirects: []
                                            do_fork: T
                                          )
                                          (command.Simple
                                            blame_tok: <sed>
                                            more_env: []
                                            words: [{<sed>} {(SQ <'s,\\..*,,'>)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                          (command.Simple
                                            blame_tok: <sort>
                                            more_env: []
                                            words: [{<sort>} {<-u>}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        ]
                                        ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'source_packages='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'source_packages='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'source_packages='>
                                      name: source_packages
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Star '*')}
                                )
                              ]
                              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 'source_packages='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'source_packages='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'source_packages='>
                                      name: source_packages
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName binary)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'p='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'p='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p)
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [f]
                              iterable: 
                                (for_iter.Words
                                  words: [
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            blame_tok: <ls>
                                            more_env: []
                                            words: [
                                              {<ls>}
                                              {<Id.Lit_Star '*'> <.> <Id.Lit_QMark '?'> 
                                                <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> 
                                                <Id.Lit_QMark '?'> <.> <Id.Lit_Star '*'>
                                              }
                                            ]
                                            redirects: [
                                              (Redir
                                                op: <Id.Redir_Great '2>'>
                                                loc: (redir_loc.Fd fd:2)
                                                arg: {<'/dev/null'>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                        right: <Id.Backtick_Right '`'>
                                      )
                                    }
                                  ]
                                )
                              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 f)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <.> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <.> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <.> <Id.Lit_Star '*'> <.> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p='>
                                                      name: p
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName p) 
                                                      ($ Id.VSub_DollarName nl) ($ Id.VSub_DollarName f)
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <.> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <.> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <.> <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_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <.> <Id.Lit_Star '*'> <.> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'p='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'p='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'p='>
                                                      name: p
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName p) 
                                                      ($ Id.VSub_DollarName nl) ($ Id.VSub_DollarName f)
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <.> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> 
                                                  <Id.Lit_QMark '?'> <.> <Id.Lit_Star '*'>
                                                }
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [
                                {<set>}
                                {(SQ )}
                                {
                                  (CommandSub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (command.Simple
                                            blame_tok: <echo>
                                            more_env: []
                                            words: [{<echo>} {(DQ ($ Id.VSub_DollarName p))}]
                                            redirects: []
                                            do_fork: T
                                          )
                                          (command.Simple
                                            blame_tok: <sed>
                                            more_env: []
                                            words: [{<sed>} {(SQ <'s,\\..*,,'>)}]
                                            redirects: []
                                            do_fork: T
                                          )
                                          (command.Simple
                                            blame_tok: <sort>
                                            more_env: []
                                            words: [{<sort>} {<-u>}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        ]
                                        ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                      )
                                    right: <Id.Backtick_Right '`'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'binary_packages='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'binary_packages='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'binary_packages='>
                                      name: binary_packages
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Star '*')}
                                )
                              ]
                              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 'binary_packages='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'binary_packages='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'binary_packages='>
                                      name: binary_packages
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'package_hit='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'package_hit='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'package_hit='>
                              name: package_hit
                            )
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName source_packages) <' '> 
                                ($ Id.VSub_DollarName binary_packages)
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<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 source)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'source_packages='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'source_packages='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'source_packages='>
                                      name: source_packages
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Star '*')}
                                )
                              ]
                              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 'source_packages='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'source_packages='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'source_packages='>
                                      name: source_packages
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName binary)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'binary_packages='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'binary_packages='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'binary_packages='>
                                      name: binary_packages
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Star '*')}
                                )
                              ]
                              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 'binary_packages='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'binary_packages='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'binary_packages='>
                                      name: binary_packages
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'package_hit='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'package_hit='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'package_hit='>
                              name: package_hit
                            )
                          op: assign_op.Equal
                          rhs: (rhs_word__Empty)
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'types_test='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'types_test='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'types_test='> name:types_test)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'types_local='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'types_local='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'types_local='> name:types_local)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'dir='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'dir='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName dir) <'/'> ($ Id.VSub_DollarName tgz)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName default_url)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ <'url=\''> ($ Id.VSub_DollarName url) <'\' authorize=\''> 
                            ($ Id.VSub_DollarName authorize) <'\' password=\''> ($ Id.VSub_DollarName password) <'\''>
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {($ Id.VSub_DollarName default_url)}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName authorize)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <chmod>
                              more_env: []
                              words: [{<chmod>} {<go-rwx>} {($ Id.VSub_DollarName default_url)}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ ($ Id.VSub_DollarName got))}]
              redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<got.tmp>})]
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName only)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <exec>
                      more_env: []
                      words: [{<exec>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Less '<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {<got.tmp>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'covered='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'covered='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'covered='> name:covered)
                          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>}
                                {<name>}
                                {<suffix>}
                                {<type>}
                                {<base>}
                                {<base_size>}
                                {<delta>}
                                {<delta_size>}
                                {<sync>}
                                {<sync_size>}
                                {<requires>}
                                {<covers>}
                                {<base_sum>}
                                {<delta_sum>}
                                {<sync_sum>}
                                {<comment>}
                              ]
                              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 requires)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Left_SingleQuote '\''>
                                  pattern: (pat.Words words:[{(SQ )} {<-> <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 'IFS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName requires)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'IFS='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'IFS='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName ifs)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName type)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <->
                                  pattern: (pat.Words words:[{<->}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName source_packages) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName name) <' '>) <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> (DQ <' - '>) <Id.Lit_Star '*'>}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [name]
                                              iterable: (for_iter__Args)
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName source_packages) <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName name) <' '>
                                                                  ) <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_VarLike 'source_packages='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'source_packages='
                                                                    >
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'source_packages='
                                                                        >
                                                                      name: source_packages
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
source_packages
                                                                        ) <' '> ($ Id.VSub_DollarName name)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'covered='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'covered='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'covered='>
                                                                      name: covered
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {($ Id.VSub_DollarName covered) 
                                                                      <Id.Lit_Colon ':'> ($ Id.VSub_DollarName covers)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          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: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName binary_packages) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName name) <' '>) <Id.Lit_Star '*'>
                                                }
                                                {<Id.Lit_Star '*'> (DQ <' - '>) <Id.Lit_Star '*'>}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.ForEach
                                              keyword: <Id.KW_For for>
                                              iter_names: [name]
                                              iterable: (for_iter__Args)
                                              body: 
                                                (command.DoGroup
                                                  left: <Id.KW_Do do>
                                                  children: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName binary_packages) <' '>
                                                              )
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Star '*'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Star '*'> 
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName name) <' '>
                                                                  ) <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_VarLike 'binary_packages='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: 
                                                                    <Id.Lit_VarLike 
'binary_packages='
                                                                    >
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'binary_packages='
                                                                        >
                                                                      name: binary_packages
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
binary_packages
                                                                        ) <' '> ($ Id.VSub_DollarName name)
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'covered='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'covered='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: 
                                                                        <Id.Lit_VarLike 'covered='>
                                                                      name: covered
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {($ Id.VSub_DollarName covered) 
                                                                      <Id.Lit_Colon ':'> ($ Id.VSub_DollarName covers)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          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: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName covered)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_QMark '?'>
                          pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'x='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'x='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName source_packages)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'source_packages='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'source_packages='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'source_packages='>
                                      name: source_packages
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [name]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName x)}])
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName covered) 
                                              <Id.Lit_Colon ':'>
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                                                  ($ Id.VSub_DollarName name) <Id.Lit_Colon ':'> <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_VarLike 'source_packages='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'source_packages='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'source_packages='>
                                                      name: source_packages
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName source_packages) <' '> 
                                                        ($ Id.VSub_DollarName name)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'x='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'x='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName binary_packages)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'binary_packages='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'binary_packages='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'binary_packages='>
                                      name: binary_packages
                                    )
                                  op: assign_op.Equal
                                  rhs: (rhs_word__Empty)
                                )
                              ]
                              redirects: []
                            )
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [name]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName x)}])
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName covered) 
                                              <Id.Lit_Colon ':'>
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                                                  ($ Id.VSub_DollarName name) <Id.Lit_Colon ':'> <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_VarLike 'binary_packages='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'binary_packages='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'binary_packages='>
                                                      name: binary_packages
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName binary_packages) <' '> 
                                                        ($ Id.VSub_DollarName name)
                                                      )
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                          ]
                                          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: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'checksum='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'checksum='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'checksum='> name:checksum)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [i]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName checksum_commands)}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (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.Simple
                                        blame_tok: <Id.VSub_DollarName '$i'>
                                        more_env: []
                                        words: [{($ Id.VSub_DollarName i)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    right: <Id.Right_Subshell _>
                                    redirects: [
                                      (Redir
                                        op: <Id.Redir_Less '<'>
                                        loc: (redir_loc.Fd fd:0)
                                        arg: {<'/dev/null'>}
                                      )
                                      (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: <Id.Left_DollarBrace '${'>
                          pattern: 
                            (pat.Words
                              words: [
                                {(${ Id.VSub_Name checksum_empty)}
                                {(${ Id.VSub_Name checksum_empty) <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.ShAssignment
                              left: <Id.Lit_VarLike 'checksum='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'checksum='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'checksum='>
                                      name: checksum
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName i)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Break break>
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName checksum)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                        {<warning> <Id.Lit_Colon ':'>}
                        {(SQ <'{'>)}
                        {($ Id.VSub_DollarName checksum_commands)}
                        {(SQ <'}'>)}
                        {<command>}
                        {<not>}
                        {<found>}
                        {<-->}
                        {<only>}
                        {<download>}
                        {<sizes>}
                        {<will>}
                        {<be>}
                        {<checked>}
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <exec>
              more_env: []
              words: [{<exec>}]
              redirects: [(Redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<got.tmp>})]
              do_fork: T
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Simple
                      blame_tok: <read>
                      more_env: []
                      words: [
                        {<read>}
                        {<name>}
                        {<suffix>}
                        {<type>}
                        {<base>}
                        {<base_size>}
                        {<delta>}
                        {<delta_size>}
                        {<sync>}
                        {<sync_size>}
                        {<requires>}
                        {<covers>}
                        {<base_sum>}
                        {<delta_sum>}
                        {<sync_sum>}
                        {<comment>}
                      ]
                      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 verbose)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <1>
                          pattern: (pat.Words words:[{<1>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName type)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <->
                                  pattern: (pat.Words words:[{<->}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'i='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'i='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                                          op: assign_op.Equal
                                          rhs: (rhs_word__Empty)
                                        )
                                      ]
                                      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 'i='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'i='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                                          op: assign_op.Equal
                                          rhs: {<.> ($ Id.VSub_DollarName type)}
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'j='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'j='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'j='> name:j)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName name) <.> ($ Id.VSub_DollarName base) 
                                        ($ Id.VSub_DollarName i) <.> ($ Id.VSub_DollarName suffix)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName delta)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <->
                                  pattern: (pat.Words words:[{<->}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'j='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'j='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'j='> name:j)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName j) <' -'>)}
                                        )
                                      ]
                                      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 'j='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'j='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'j='> name:j)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName j) <' '> 
                                                ($ Id.VSub_DollarName name) <.> ($ Id.VSub_DollarName base) <.> ($ Id.VSub_DollarName delta) ($ Id.VSub_DollarName i) <.> 
                                                ($ Id.VSub_DollarName suffix)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{($ Id.VSub_DollarName sync)})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <->
                                  pattern: (pat.Words words:[{<->}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'j='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'j='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'j='> name:j)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName j) <' -'>)}
                                        )
                                      ]
                                      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 'j='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'j='>
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'j='> name:j)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName j) <' '> 
                                                ($ Id.VSub_DollarName name) <.> ($ Id.VSub_DollarName base) <.> ($ Id.VSub_DollarName sync) ($ Id.VSub_DollarName i) <.> 
                                                ($ Id.VSub_DollarName suffix)
                                              )
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                {($ Id.VSub_DollarName j)}
                                {($ Id.VSub_DollarName base_size) <Id.Lit_Colon ':'> 
                                  ($ Id.VSub_DollarName base_sum)
                                }
                                {($ Id.VSub_DollarName delta_size) <Id.Lit_Colon ':'> 
                                  ($ Id.VSub_DollarName delta_sum)
                                }
                                {($ Id.VSub_DollarName sync_size) <Id.Lit_Colon ':'> 
                                  ($ Id.VSub_DollarName sync_sum)
                                }
                                {($ Id.VSub_DollarName requires)}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName package_hit) <' '>)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: 
                            (pat.Words
                              words: [
                                {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName name) <' '>) 
                                  <Id.Lit_Star '*'>
                                }
                                {<Id.Lit_Star '*'> (DQ <' - '>) <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_VarLike 'package_hit='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'package_hit='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'package_hit='>
                                      name: package_hit
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName package_hit) <' '> 
                                        ($ Id.VSub_DollarName name)
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName type)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <->
                          pattern: (pat.Words words:[{<->}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: {(DQ <' '> ($ Id.VSub_DollarName source_packages) <' '>)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> 
                                          (DQ <' '> ($ Id.VSub_DollarName name) <' '>) <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_Star '*'> (DQ <' - '>) <Id.Lit_Star '*'>}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-s>}
                                                    {($ Id.VSub_DollarName name) <.tim>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [49554 49564]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'lcl='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'lcl='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lcl='>
                                              name: lcl
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName name) <.> 
                                              ($ Id.VSub_DollarName base) <.> ($ Id.VSub_DollarName suffix)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [{<test>} {<-f>} {($ Id.VSub_DollarName lcl)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {($ Id.VSub_DollarName checksum) 
                                                      <Id.Lit_Colon ':'> ($ Id.VSub_DollarName base_sum)
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Colon ':'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Colon ':'> <Id.Lit_Star '*'>}
                                                        {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <->}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'size='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'size='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'size='>
                                                              name: size
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: <wc>
                                                                        more_env: []
                                                                        words: [{<wc>} {<-c>}]
                                                                        redirects: [
                                                                          (Redir
                                                                            op: <Id.Redir_Less '<'>
                                                                            loc: (redir_loc.Fd fd:0)
                                                                            arg: 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName lcl
                                                                                )
                                                                              }
                                                                          )
                                                                        ]
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: <sed>
                                                                        more_env: []
                                                                        words: [
                                                                          {<sed>}
                                                                          {(SQ <'s, ,,g'>)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'sum='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'sum='>
                                                              name: sum
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName base_sum)}
                                                        )
                                                      ]
                                                      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 'size='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'size='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'size='>
                                                              name: size
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName base_size)}
                                                        )
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'sum='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'sum='>
                                                              name: sum
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: 
                                                                          <Id.VSub_DollarName 
'$checksum'
                                                                          >
                                                                        more_env: []
                                                                        words: [
                                                                          {
                                                                            ($ Id.VSub_DollarName 
checksum
                                                                            )
                                                                          }
                                                                        ]
                                                                        redirects: [
                                                                          (Redir
                                                                            op: <Id.Redir_Less '<'>
                                                                            loc: (redir_loc.Fd fd:0)
                                                                            arg: 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName lcl
                                                                                )
                                                                              }
                                                                          )
                                                                        ]
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: <sed>
                                                                        more_env: []
                                                                        words: [
                                                                          {<sed>}
                                                                          {<-e>}
                                                                          {(SQ <'s,^[ \t][ \t]*,,'>)}
                                                                          {<-e>}
                                                                          {(SQ <'s,[ \t].*,,'>)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          spids: [49580 49589]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'size='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'size='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'size='>
                                                  name: size
                                                )
                                              op: assign_op.Equal
                                              rhs: {<X>}
                                            )
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'sum='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'sum='>
                                                  name: sum
                                                )
                                              op: assign_op.Equal
                                              rhs: {<X>}
                                            )
                                          ]
                                          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.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {(DQ <0>)}
                                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName force))}
                                                    {<-a>}
                                                    {(DQ <X->)}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ <X> ($ Id.VSub_DollarName delta))}
                                                    {<-o>}
                                                    {(DQ ($ Id.VSub_DollarName base_size))}
                                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName size))}
                                                    {<-o>}
                                                    {(DQ ($ Id.VSub_DollarName base_sum))}
                                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName sum))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'rmt='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'rmt='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rmt='>
                                                      name: rmt
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {($ Id.VSub_DollarName sync) <Id.Lit_Colon ':'> 
                                                      ($ Id.VSub_DollarName sync_size)
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <->
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<-> <Id.Lit_Star '*'>}
                                                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <-> 
                                                          <Id.Lit_Colon ':'> <Id.Lit_RBracket ']'>
                                                        }
                                                      ]
                                                    )
                                                  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_VarLike 'lcl='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'lcl='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'lcl='>
                                                              name: lcl
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName name) <.> 
                                                              ($ Id.VSub_DollarName base) <.> ($ Id.VSub_DollarName sync) <.> ($ Id.VSub_DollarName suffix)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<-f>}
                                                                    {($ Id.VSub_DollarName lcl)}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'rmt='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'rmt='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'rmt='>
                                                                      name: rmt
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<1>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <get>
                                                              more_env: []
                                                              words: [
                                                                {<get>}
                                                                {($ Id.VSub_DollarName host)}
                                                                {($ Id.VSub_DollarName dir)}
                                                                {($ Id.VSub_DollarName lcl)}
                                                                {($ Id.VSub_DollarName sync_size)}
                                                                {($ Id.VSub_DollarName sync_sum)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          spids: [49782 49791]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {($ Id.VSub_DollarName base) <Id.Lit_Colon ':'> 
                                                      ($ Id.VSub_DollarName base_size)
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <->
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<-> <Id.Lit_Star '*'>}
                                                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <-> 
                                                          <Id.Lit_Colon ':'> <Id.Lit_RBracket ']'>
                                                        }
                                                      ]
                                                    )
                                                  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.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName rmt)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_SingleQuote '\''>
                                                          pattern: (pat.Words words:[{(SQ )}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'lcl='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'lcl='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'lcl='>
                                                                      name: lcl
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {($ Id.VSub_DollarName name) <.> 
                                                                      ($ Id.VSub_DollarName base) <.> ($ Id.VSub_DollarName suffix)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <get>
                                                              more_env: []
                                                              words: [
                                                                {<get>}
                                                                {($ Id.VSub_DollarName host)}
                                                                {($ Id.VSub_DollarName dir)}
                                                                {($ Id.VSub_DollarName lcl)}
                                                                {($ Id.VSub_DollarName base_size)}
                                                                {($ Id.VSub_DollarName base_sum)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          spids: [49686 49741]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {($ Id.VSub_DollarName delta) <Id.Lit_Colon ':'> 
                                              ($ Id.VSub_DollarName delta_size)
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <->
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<-> <Id.Lit_Star '*'>}
                                                {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <-> 
                                                  <Id.Lit_Colon ':'> <Id.Lit_RBracket ']'>
                                                }
                                              ]
                                            )
                                          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_VarLike 'lcl='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'lcl='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lcl='>
                                                      name: lcl
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName name) <.> 
                                                      ($ Id.VSub_DollarName delta) <.> ($ Id.VSub_DollarName base) <.> ($ Id.VSub_DollarName suffix)
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-f>}
                                                            {($ Id.VSub_DollarName lcl)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {($ Id.VSub_DollarName checksum) 
                                                              <Id.Lit_Colon ':'> ($ Id.VSub_DollarName delta_sum)
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Colon ':'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Colon ':'> <Id.Lit_Star '*'>}
                                                                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                                                                  <->
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'size='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'size='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'size='>
                                                                      name: size
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Pipeline
                                                                            children: [
                                                                              (command.Simple
                                                                                blame_tok: <wc>
                                                                                more_env: []
                                                                                words: [{<wc>} {<-c>}]
                                                                                redirects: [
                                                                                  (Redir
                                                                                    op: 
                                                                                      <
Id.Redir_Less '<'
                                                                                      >
                                                                                    loc: 
                                                                                      (redir_loc.Fd
                                                                                        fd: 0
                                                                                      )
                                                                                    arg: 
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName lcl
                                                                                        )
                                                                                      }
                                                                                  )
                                                                                ]
                                                                                do_fork: T
                                                                              )
                                                                              (command.Simple
                                                                                blame_tok: <sed>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<sed>}
                                                                                  {(SQ <'s, ,,g'>)}
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                            ]
                                                                            ops: [<Id.Op_Pipe _>]
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'sum='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'sum='>
                                                                      name: sum
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName delta_sum)
                                                                    }
                                                                )
                                                              ]
                                                              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 'size='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'size='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'size='>
                                                                      name: size
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName base_size)
                                                                    }
                                                                )
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'sum='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'sum='>
                                                                      name: sum
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Pipeline
                                                                            children: [
                                                                              (command.Simple
                                                                                blame_tok: 
                                                                                  <
Id.VSub_DollarName '$checksum'
                                                                                  >
                                                                                more_env: []
                                                                                words: [
                                                                                  {
                                                                                    ($ 
Id.VSub_DollarName checksum
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: [
                                                                                  (Redir
                                                                                    op: 
                                                                                      <
Id.Redir_Less '<'
                                                                                      >
                                                                                    loc: 
                                                                                      (redir_loc.Fd
                                                                                        fd: 0
                                                                                      )
                                                                                    arg: 
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName lcl
                                                                                        )
                                                                                      }
                                                                                  )
                                                                                ]
                                                                                do_fork: T
                                                                              )
                                                                              (command.Simple
                                                                                blame_tok: <sed>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<sed>}
                                                                                  {<-e>}
                                                                                  {
                                                                                    (SQ 
                                                                                      <
's,^[ \t][ \t]*,,'
                                                                                      >
                                                                                    )
                                                                                  }
                                                                                  {<-e>}
                                                                                  {
                                                                                    (SQ 
                                                                                      <
's,[ \t].*,,'
                                                                                      >
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                            ]
                                                                            ops: [<Id.Op_Pipe _>]
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [49928 49937]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'size='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'size='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'size='>
                                                          name: size
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<X>}
                                                    )
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'sum='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'sum='>
                                                          name: sum
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<X>}
                                                    )
                                                  ]
                                                  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.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {(DQ <0>)}
                                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName force))}
                                                            {<-o>}
                                                            {(DQ ($ Id.VSub_DollarName delta_size))}
                                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName size))}
                                                            {<-o>}
                                                            {(DQ ($ Id.VSub_DollarName delta_sum))}
                                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName sum))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <get>
                                                      more_env: []
                                                      words: [
                                                        {<get>}
                                                        {($ Id.VSub_DollarName host)}
                                                        {($ Id.VSub_DollarName dir)}
                                                        {($ Id.VSub_DollarName lcl)}
                                                        {($ Id.VSub_DollarName delta_size)}
                                                        {($ Id.VSub_DollarName delta_sum)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [50034 50076]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: {(DQ <' '> ($ Id.VSub_DollarName binary_packages) <' '>)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> 
                                          (DQ <' '> ($ Id.VSub_DollarName name) <' '>) <Id.Lit_Star '*'>
                                        }
                                        {<Id.Lit_Star '*'> (DQ <' - '>) <Id.Lit_Star '*'>}
                                      ]
                                    )
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-s>}
                                                    {($ Id.VSub_DollarName name) <.> 
                                                      ($ Id.VSub_DollarName type) <.tim>
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ControlFlow
                                              keyword: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [50139 50151]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: {(DQ <' '> ($ Id.VSub_DollarName types) <' '>)}
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<Id.Lit_Star '*'> (DQ <' - '>) <Id.Lit_Star '*'>}
                                              ]
                                            )
                                          middle: <Id.Right_CasePat _>
                                          action: []
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Left_DoubleQuote '"'>
                                          pattern: (pat.Words words:[{(DQ <'  '>)}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {
                                                      (DQ <' '> ($ Id.VSub_DollarName types_test) <' '>)
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName type) <' '>) <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_VarLike 'types_test='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'types_test='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'types_test='>
                                                              name: types_test
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName types_test) 
                                                                <' '> ($ Id.VSub_DollarName type)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.ForEach
                                                      keyword: <Id.KW_For for>
                                                      iter_names: [i]
                                                      iterable: 
                                                        (for_iter.Words
                                                          words: [
                                                            {<Id.Lit_Star '*'> <.> <Id.Lit_QMark '?'> 
                                                              <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> 
                                                              <Id.Lit_QMark '?'> <.> ($ Id.VSub_DollarName type) <.> <Id.Lit_Star '*'>
                                                            }
                                                            {<Id.Lit_Star '*'> <.> <Id.Lit_QMark '?'> 
                                                              <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> 
                                                              <Id.Lit_QMark '?'> <.> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> 
                                                              <Id.Lit_QMark '?'> <-> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <.> ($ Id.VSub_DollarName type) <.> <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                        )
                                                      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.Simple
                                                                          blame_tok: <test>
                                                                          more_env: []
                                                                          words: [
                                                                            {<test>}
                                                                            {<-f>}
                                                                            {
                                                                              ($ Id.VSub_DollarName i)
                                                                            }
                                                                          ]
                                                                          redirects: []
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                    )
                                                                  then_kw: <Id.KW_Then then>
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      left: 
                                                                        <Id.Lit_VarLike 
'types_local='
                                                                        >
                                                                      pairs: [
                                                                        (AssignPair
                                                                          left: 
                                                                            <Id.Lit_VarLike 
'types_local='
                                                                            >
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              left: 
                                                                                <Id.Lit_VarLike 
'types_local='
                                                                                >
                                                                              name: types_local
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName types_local
                                                                                ) <' '> ($ Id.VSub_DollarName type)
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      redirects: []
                                                                    )
                                                                  ]
                                                                  spids: [50273 50282]
                                                                )
                                                              ]
                                                              else_action: []
                                                              fi_kw: <Id.KW_Fi fi>
                                                              redirects: []
                                                            )
                                                            (command.ControlFlow
                                                              keyword: <Id.ControlFlow_Break break>
                                                            )
                                                          ]
                                                          right: <Id.KW_Done done>
                                                        )
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {
                                                      (DQ <' '> ($ Id.VSub_DollarName types_local) 
                                                        <' '>
                                                      )
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName type) <' '>) <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: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                        (CaseArm
                                          left: <Id.Lit_Star '*'>
                                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {(DQ <' '> ($ Id.VSub_DollarName types) <' '>)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName type) <' '>) <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: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'lcl='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'lcl='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'lcl='>
                                              name: lcl
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName name) <.> 
                                              ($ Id.VSub_DollarName base) <.> ($ Id.VSub_DollarName type) <.> ($ Id.VSub_DollarName suffix)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      if_kw: <Id.KW_If if>
                                      arms: [
                                        (IfArm
                                          keyword: <Id.KW_If if>
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [{<test>} {<-f>} {($ Id.VSub_DollarName lcl)}]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {($ Id.VSub_DollarName checksum) 
                                                      <Id.Lit_Colon ':'> ($ Id.VSub_DollarName base_sum)
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Colon ':'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Colon ':'> <Id.Lit_Star '*'>}
                                                        {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <->}
                                                      ]
                                                    )
                                                  middle: <Id.Right_CasePat _>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'size='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'size='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'size='>
                                                              name: size
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: <wc>
                                                                        more_env: []
                                                                        words: [{<wc>} {<-c>}]
                                                                        redirects: [
                                                                          (Redir
                                                                            op: <Id.Redir_Less '<'>
                                                                            loc: (redir_loc.Fd fd:0)
                                                                            arg: 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName lcl
                                                                                )
                                                                              }
                                                                          )
                                                                        ]
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: <sed>
                                                                        more_env: []
                                                                        words: [
                                                                          {<sed>}
                                                                          {(SQ <'s, ,,g'>)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'sum='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'sum='>
                                                              name: sum
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName base_sum)}
                                                        )
                                                      ]
                                                      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 'size='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'size='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'size='>
                                                              name: size
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName base_size)}
                                                        )
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'sum='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'sum='>
                                                              name: sum
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: 
                                                                          <Id.VSub_DollarName 
'$checksum'
                                                                          >
                                                                        more_env: []
                                                                        words: [
                                                                          {
                                                                            ($ Id.VSub_DollarName 
checksum
                                                                            )
                                                                          }
                                                                        ]
                                                                        redirects: [
                                                                          (Redir
                                                                            op: <Id.Redir_Less '<'>
                                                                            loc: (redir_loc.Fd fd:0)
                                                                            arg: 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName lcl
                                                                                )
                                                                              }
                                                                          )
                                                                        ]
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: <sed>
                                                                        more_env: []
                                                                        words: [
                                                                          {<sed>}
                                                                          {<-e>}
                                                                          {(SQ <'s,^[ \t][ \t]*,,'>)}
                                                                          {<-e>}
                                                                          {(SQ <'s,[ \t].*,,'>)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          spids: [50401 50410]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.ShAssignment
                                          left: <Id.Lit_VarLike 'size='>
                                          pairs: [
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'size='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'size='>
                                                  name: size
                                                )
                                              op: assign_op.Equal
                                              rhs: {<X>}
                                            )
                                            (AssignPair
                                              left: <Id.Lit_VarLike 'sum='>
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'sum='>
                                                  name: sum
                                                )
                                              op: assign_op.Equal
                                              rhs: {<X>}
                                            )
                                          ]
                                          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.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {(DQ <0>)}
                                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName force))}
                                                    {<-a>}
                                                    {(DQ <X->)}
                                                    {<Id.Lit_Equals '='>}
                                                    {(DQ <X> ($ Id.VSub_DollarName delta))}
                                                    {<-o>}
                                                    {(DQ ($ Id.VSub_DollarName base_size))}
                                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName size))}
                                                    {<-o>}
                                                    {(DQ ($ Id.VSub_DollarName base_sum))}
                                                    {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                    {(DQ ($ Id.VSub_DollarName sum))}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.ShAssignment
                                              left: <Id.Lit_VarLike 'rmt='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'rmt='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'rmt='>
                                                      name: rmt
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (rhs_word__Empty)
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {($ Id.VSub_DollarName sync) <Id.Lit_Colon ':'> 
                                                      ($ Id.VSub_DollarName sync_size)
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <->
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<-> <Id.Lit_Star '*'>}
                                                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <-> 
                                                          <Id.Lit_Colon ':'> <Id.Lit_RBracket ']'>
                                                        }
                                                      ]
                                                    )
                                                  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_VarLike 'lcl='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'lcl='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'lcl='>
                                                              name: lcl
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {($ Id.VSub_DollarName name) <.> 
                                                              ($ Id.VSub_DollarName base) <.> ($ Id.VSub_DollarName sync) <.> ($ Id.VSub_DollarName type) <.> ($ Id.VSub_DollarName suffix)
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                    (command.If
                                                      if_kw: <Id.KW_If if>
                                                      arms: [
                                                        (IfArm
                                                          keyword: <Id.KW_If if>
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Simple
                                                                  blame_tok: <test>
                                                                  more_env: []
                                                                  words: [
                                                                    {<test>}
                                                                    {<-f>}
                                                                    {($ Id.VSub_DollarName lcl)}
                                                                  ]
                                                                  redirects: []
                                                                  do_fork: T
                                                                )
                                                              ]
                                                            )
                                                          then_kw: <Id.KW_Then then>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'rmt='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'rmt='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'rmt='>
                                                                      name: rmt
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<1>}
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <get>
                                                              more_env: []
                                                              words: [
                                                                {<get>}
                                                                {($ Id.VSub_DollarName host)}
                                                                {($ Id.VSub_DollarName dir)}
                                                                {($ Id.VSub_DollarName lcl)}
                                                                {($ Id.VSub_DollarName sync_size)}
                                                                {($ Id.VSub_DollarName sync_sum)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          spids: [50605 50614]
                                                        )
                                                      ]
                                                      else_action: []
                                                      fi_kw: <Id.KW_Fi fi>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: 
                                                    {($ Id.VSub_DollarName base) <Id.Lit_Colon ':'> 
                                                      ($ Id.VSub_DollarName base_size)
                                                    }
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <->
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<-> <Id.Lit_Star '*'>}
                                                        {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <-> 
                                                          <Id.Lit_Colon ':'> <Id.Lit_RBracket ']'>
                                                        }
                                                      ]
                                                    )
                                                  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.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: {($ Id.VSub_DollarName rmt)}
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Left_SingleQuote '\''>
                                                          pattern: (pat.Words words:[{(SQ )}])
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'lcl='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'lcl='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'lcl='>
                                                                      name: lcl
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {($ Id.VSub_DollarName name) <.> 
                                                                      ($ Id.VSub_DollarName base) <.> ($ Id.VSub_DollarName type) <.> ($ Id.VSub_DollarName suffix)
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                            (command.Simple
                                                              blame_tok: <get>
                                                              more_env: []
                                                              words: [
                                                                {<get>}
                                                                {($ Id.VSub_DollarName host)}
                                                                {($ Id.VSub_DollarName dir)}
                                                                {($ Id.VSub_DollarName lcl)}
                                                                {($ Id.VSub_DollarName base_size)}
                                                                {($ Id.VSub_DollarName base_sum)}
                                                              ]
                                                              redirects: []
                                                              do_fork: T
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          spids: [50507 50562]
                                        )
                                      ]
                                      else_action: []
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                    (command.Case
                                      case_kw: <Id.KW_Case case>
                                      to_match: 
                                        (case_arg.Word
                                          w: 
                                            {($ Id.VSub_DollarName delta) <Id.Lit_Colon ':'> 
                                              ($ Id.VSub_DollarName delta_size)
                                            }
                                        )
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <->
                                          pattern: 
                                            (pat.Words
                                              words: [
                                                {<-> <Id.Lit_Star '*'>}
                                                {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <-> 
                                                  <Id.Lit_Colon ':'> <Id.Lit_RBracket ']'>
                                                }
                                              ]
                                            )
                                          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_VarLike 'lcl='>
                                              pairs: [
                                                (AssignPair
                                                  left: <Id.Lit_VarLike 'lcl='>
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'lcl='>
                                                      name: lcl
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName name) <.> 
                                                      ($ Id.VSub_DollarName delta) <.> ($ Id.VSub_DollarName base) <.> ($ Id.VSub_DollarName type) <.> ($ Id.VSub_DollarName suffix)
                                                    }
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              if_kw: <Id.KW_If if>
                                              arms: [
                                                (IfArm
                                                  keyword: <Id.KW_If if>
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-f>}
                                                            {($ Id.VSub_DollarName lcl)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.ShAssignment
                                                      left: <Id.Lit_VarLike 'sum='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'sum='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'sum='>
                                                              name: sum
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (CommandSub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (command.Simple
                                                                        blame_tok: 
                                                                          <Id.VSub_DollarName 
'$checksum'
                                                                          >
                                                                        more_env: []
                                                                        words: [
                                                                          {
                                                                            ($ Id.VSub_DollarName 
checksum
                                                                            )
                                                                          }
                                                                        ]
                                                                        redirects: [
                                                                          (Redir
                                                                            op: <Id.Redir_Less '<'>
                                                                            loc: (redir_loc.Fd fd:0)
                                                                            arg: 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName lcl
                                                                                )
                                                                              }
                                                                          )
                                                                        ]
                                                                        do_fork: T
                                                                      )
                                                                      (command.Simple
                                                                        blame_tok: <sed>
                                                                        more_env: []
                                                                        words: [
                                                                          {<sed>}
                                                                          {<-e>}
                                                                          {(SQ <'s,^[ \t][ \t]*,,'>)}
                                                                          {<-e>}
                                                                          {(SQ <'s,[ \t].*,,'>)}
                                                                        ]
                                                                        redirects: []
                                                                        do_fork: T
                                                                      )
                                                                    ]
                                                                    ops: [<Id.Op_Pipe _>]
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [50755 50764]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'sum='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'sum='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'sum='>
                                                          name: sum
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<X>}
                                                    )
                                                  ]
                                                  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.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {<-f>}
                                                            {($ Id.VSub_DollarName lcl)}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Case
                                                      case_kw: <Id.KW_Case case>
                                                      to_match: 
                                                        (case_arg.Word
                                                          w: 
                                                            {($ Id.VSub_DollarName checksum) 
                                                              <Id.Lit_Colon ':'> ($ Id.VSub_DollarName delta_sum)
                                                            }
                                                        )
                                                      arms_start: <Id.KW_In in>
                                                      arms: [
                                                        (CaseArm
                                                          left: <Id.Lit_Colon ':'>
                                                          pattern: 
                                                            (pat.Words
                                                              words: [
                                                                {<Id.Lit_Colon ':'> <Id.Lit_Star '*'>}
                                                                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> 
                                                                  <->
                                                                }
                                                              ]
                                                            )
                                                          middle: <Id.Right_CasePat _>
                                                          action: [
                                                            (command.ShAssignment
                                                              left: <Id.Lit_VarLike 'size='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'size='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'size='>
                                                                      name: size
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Pipeline
                                                                            children: [
                                                                              (command.Simple
                                                                                blame_tok: <wc>
                                                                                more_env: []
                                                                                words: [{<wc>} {<-c>}]
                                                                                redirects: [
                                                                                  (Redir
                                                                                    op: 
                                                                                      <
Id.Redir_Less '<'
                                                                                      >
                                                                                    loc: 
                                                                                      (redir_loc.Fd
                                                                                        fd: 0
                                                                                      )
                                                                                    arg: 
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName lcl
                                                                                        )
                                                                                      }
                                                                                  )
                                                                                ]
                                                                                do_fork: T
                                                                              )
                                                                              (command.Simple
                                                                                blame_tok: <sed>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<sed>}
                                                                                  {(SQ <'s, ,,g'>)}
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                            ]
                                                                            ops: [<Id.Op_Pipe _>]
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'sum='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'sum='>
                                                                      name: sum
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName delta_sum)
                                                                    }
                                                                )
                                                              ]
                                                              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 'size='>
                                                              pairs: [
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'size='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'size='>
                                                                      name: size
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName base_size)
                                                                    }
                                                                )
                                                                (AssignPair
                                                                  left: <Id.Lit_VarLike 'sum='>
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      left: <Id.Lit_VarLike 'sum='>
                                                                      name: sum
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (CommandSub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Pipeline
                                                                            children: [
                                                                              (command.Simple
                                                                                blame_tok: 
                                                                                  <
Id.VSub_DollarName '$checksum'
                                                                                  >
                                                                                more_env: []
                                                                                words: [
                                                                                  {
                                                                                    ($ 
Id.VSub_DollarName checksum
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: [
                                                                                  (Redir
                                                                                    op: 
                                                                                      <
Id.Redir_Less '<'
                                                                                      >
                                                                                    loc: 
                                                                                      (redir_loc.Fd
                                                                                        fd: 0
                                                                                      )
                                                                                    arg: 
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName lcl
                                                                                        )
                                                                                      }
                                                                                  )
                                                                                ]
                                                                                do_fork: T
                                                                              )
                                                                              (command.Simple
                                                                                blame_tok: <sed>
                                                                                more_env: []
                                                                                words: [
                                                                                  {<sed>}
                                                                                  {<-e>}
                                                                                  {
                                                                                    (SQ 
                                                                                      <
's,^[ \t][ \t]*,,'
                                                                                      >
                                                                                    )
                                                                                  }
                                                                                  {<-e>}
                                                                                  {
                                                                                    (SQ 
                                                                                      <
's,[ \t].*,,'
                                                                                      >
                                                                                    )
                                                                                  }
                                                                                ]
                                                                                redirects: []
                                                                                do_fork: T
                                                                              )
                                                                            ]
                                                                            ops: [<Id.Op_Pipe _>]
                                                                          )
                                                                        right: 
                                                                          <Id.Backtick_Right '`'>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              redirects: []
                                                            )
                                                          ]
                                                          right: <Id.Op_DSemi _>
                                                        )
                                                      ]
                                                      arms_end: <Id.KW_Esac esac>
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [50803 50812]
                                                )
                                              ]
                                              else_kw: <Id.KW_Else else>
                                              else_action: [
                                                (command.ShAssignment
                                                  left: <Id.Lit_VarLike 'size='>
                                                  pairs: [
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'size='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'size='>
                                                          name: size
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<X>}
                                                    )
                                                    (AssignPair
                                                      left: <Id.Lit_VarLike 'sum='>
                                                      lhs: 
                                                        (sh_lhs_expr.Name
                                                          left: <Id.Lit_VarLike 'sum='>
                                                          name: sum
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: {<X>}
                                                    )
                                                  ]
                                                  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.Simple
                                                          blame_tok: <test>
                                                          more_env: []
                                                          words: [
                                                            {<test>}
                                                            {(DQ <0>)}
                                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName force))}
                                                            {<-o>}
                                                            {(DQ ($ Id.VSub_DollarName delta_size))}
                                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName size))}
                                                            {<-o>}
                                                            {(DQ ($ Id.VSub_DollarName delta_sum))}
                                                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                                                            {(DQ ($ Id.VSub_DollarName sum))}
                                                          ]
                                                          redirects: []
                                                          do_fork: T
                                                        )
                                                      ]
                                                    )
                                                  then_kw: <Id.KW_Then then>
                                                  action: [
                                                    (command.Simple
                                                      blame_tok: <get>
                                                      more_env: []
                                                      words: [
                                                        {<get>}
                                                        {($ Id.VSub_DollarName host)}
                                                        {($ Id.VSub_DollarName dir)}
                                                        {($ Id.VSub_DollarName lcl)}
                                                        {($ Id.VSub_DollarName delta_size)}
                                                        {($ Id.VSub_DollarName delta_sum)}
                                                      ]
                                                      redirects: []
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [50909 50951]
                                                )
                                              ]
                                              else_action: []
                                              fi_kw: <Id.KW_Fi fi>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'closure='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'closure='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'closure='> name:closure)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [name]
              iterable: 
                (for_iter.Words
                  words: [
                    {($ Id.VSub_DollarName source_packages)}
                    {($ Id.VSub_DollarName binary_packages)}
                  ]
                )
              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 name)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <->
                          pattern: (pat.Words words:[{<->}])
                          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.Case
                              case_kw: <Id.KW_Case case>
                              to_match: 
                                (case_arg.Word
                                  w: {(DQ <' '> ($ Id.VSub_DollarName package_hit) <' '>)}
                                )
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: 
                                    (pat.Words
                                      words: [
                                        {<Id.Lit_Star '*'> 
                                          (DQ <' '> ($ Id.VSub_DollarName name) <' '>) <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 setup)})
                                      arms_start: <Id.KW_In in>
                                      arms: [
                                        (CaseArm
                                          left: <1>
                                          pattern: (pat.Words words:[{<1>}])
                                          middle: <Id.Right_CasePat _>
                                          action: [
                                            (command.Case
                                              case_kw: <Id.KW_Case case>
                                              to_match: 
                                                (case_arg.Word
                                                  w: {(DQ <' '> ($ Id.VSub_DollarName closure) <' '>)}
                                                )
                                              arms_start: <Id.KW_In in>
                                              arms: [
                                                (CaseArm
                                                  left: <Id.Lit_Star '*'>
                                                  pattern: 
                                                    (pat.Words
                                                      words: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ <' '> ($ Id.VSub_DollarName name) <' '>) <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_VarLike 'closure='>
                                                      pairs: [
                                                        (AssignPair
                                                          left: <Id.Lit_VarLike 'closure='>
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'closure='>
                                                              name: closure
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName closure) <' '> 
                                                                ($ Id.VSub_DollarName name)
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  right: <Id.Op_DSemi _>
                                                )
                                              ]
                                              arms_end: <Id.KW_Esac esac>
                                              redirects: []
                                            )
                                          ]
                                          right: <Id.Op_DSemi _>
                                        )
                                      ]
                                      arms_end: <Id.KW_Esac esac>
                                      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: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {($ Id.VSub_DollarName command) <Id.Lit_Colon ':'>}
                                        {($ Id.VSub_DollarName name) <Id.Lit_Colon ':'>}
                                        {<unknown>}
                                        {<package>}
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <exec>
              more_env: []
              words: [{<exec>}]
              redirects: [(Redir op:<Id.Redir_LessAnd '<&'> loc:(redir_loc.Fd fd:0) arg:{<->})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<-f>} {<got.tmp>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName closure)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {($ Id.VSub_DollarName closure)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <use>
          pattern: (pat.Words words:[{<use>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'x='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'x='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'> <..>}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [d]
              iterable: 
                (for_iter.Words
                  words: [
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Subshell
                            left: <Id.Op_LParen _>
                            child: 
                              (command.CommandList
                                children: [
                                  (command.Sentence
                                    child: 
                                      (command.Simple
                                        blame_tok: <cd>
                                        more_env: []
                                        words: [{<cd>} {($ Id.VSub_DollarName PACKAGEROOT)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    terminator: <Id.Op_Semi _>
                                  )
                                  (command.Pipeline
                                    children: [
                                      (command.Simple
                                        blame_tok: <ls>
                                        more_env: []
                                        words: [
                                          {<ls>}
                                          {<'src/'> <Id.Lit_Star '*'> <'/Makefile'>}
                                          {<'src/'> <Id.Lit_Star '*'> <'/Nmakefile'>}
                                        ]
                                        redirects: [
                                          (Redir
                                            op: <Id.Redir_Great '2>'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<'/dev/null'>}
                                          )
                                        ]
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sed>
                                        more_env: []
                                        words: [{<sed>} {(SQ <'s,/[^/]*$,,'>)}]
                                        redirects: []
                                        do_fork: T
                                      )
                                      (command.Simple
                                        blame_tok: <sort>
                                        more_env: []
                                        words: [{<sort>} {<-u>}]
                                        redirects: []
                                        do_fork: T
                                      )
                                    ]
                                    ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
                                  )
                                ]
                              )
                            right: <Id.Right_Subshell _>
                            redirects: []
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'x='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'x='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName x) <Id.Lit_Colon ':'> 
                              ($ Id.VSub_DollarName INSTALLROOT) <'/'> ($ Id.VSub_DollarName d)
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'x='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'x='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x)
                  op: assign_op.Equal
                  rhs: 
                    {($ Id.VSub_DollarName x) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName INSTALLROOT)}
                )
              ]
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName CDPATH) <Id.Lit_Colon ':'>})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.VSub_DollarName '$x'>
                  pattern: 
                    (pat.Words
                      words: [{($ Id.VSub_DollarName x) <Id.Lit_Colon ':'> <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_VarLike 'CDPATH='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'CDPATH='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CDPATH='> name:CDPATH)
                          op: assign_op.Equal
                          rhs: 
                            {($ Id.VSub_DollarName x) <Id.Lit_Colon ':'> ($ Id.VSub_DollarName CDPATH)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$show'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName show)}
                        {<Id.Lit_VarLike 'CDPATH='> ($ Id.VSub_DollarName CDPATH)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$show'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName show)} {<export>} {<CDPATH>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <export>
                      more_env: []
                      words: [{<export>} {<CDPATH>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'P='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'P='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P='> name:P)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName PACKAGEROOT)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$show'>
              more_env: []
              words: [{($ Id.VSub_DollarName show)} {<Id.Lit_VarLike 'P='> ($ Id.VSub_DollarName P)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$show'>
              more_env: []
              words: [{($ Id.VSub_DollarName show)} {<export>} {<P>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<P>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'A='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'A='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'A='> name:A)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName INSTALLROOT)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$show'>
              more_env: []
              words: [{($ Id.VSub_DollarName show)} {<Id.Lit_VarLike 'A='> ($ Id.VSub_DollarName A)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$show'>
              more_env: []
              words: [{($ Id.VSub_DollarName show)} {<export>} {<A>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<A>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName NPROC)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <hostinfo>
                      more_env: []
                      words: [{<hostinfo>} {<cpu>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName _hostinfo_)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <0>
                          pattern: (pat.Words words:[{<0>} {<1>}])
                          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_VarLike 'NPROC='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'NPROC='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NPROC='> name:NPROC)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName _hostinfo_)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$show'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName show)}
                                {<Id.Lit_VarLike 'NPROC='> ($ Id.VSub_DollarName NPROC)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$show'>
                              more_env: []
                              words: [{($ Id.VSub_DollarName show)} {<export>} {<NPROC>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <export>
                              more_env: []
                              words: [{<export>} {<NPROC>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <eval>
              more_env: []
              words: [{<eval>} {<Id.Lit_VarLike 'PACKAGE_USE='> ($ Id.VSub_DollarName package_use)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<PACKAGE_USE>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName run)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Case
                      case_kw: <Id.KW_Case case>
                      to_match: (case_arg.Word w:{($ Id.VSub_DollarName show)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ <':'>)}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <Id.VSub_DollarName '$exec'>
                              more_env: []
                              words: [
                                {($ Id.VSub_DollarName exec)}
                                {<exec>}
                                {($ Id.VSub_DollarName SHELL)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      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: <Id.VSub_DollarName '$exec'>
                      more_env: []
                      words: [
                        {($ Id.VSub_DollarName exec)}
                        {<exec>}
                        {($ Id.VSub_DollarName SHELL)}
                        {<-c>}
                        {(DQ ($ Id.VSub_DollarName run))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <verify>
          pattern: (pat.Words words:[{<verify>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <cd>
              more_env: []
              words: [{<cd>} {($ Id.VSub_DollarName PACKAGEROOT)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <requirements>
              more_env: []
              words: [{<requirements>} {<binary>} {($ Id.VSub_DollarName package)}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <executable>
                          more_env: []
                          words: [{<executable>} {<Id.KW_Bang '!'>} {($ Id.VSub_DollarName SUM)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName action) <': '> 
                            ($ Id.VSub_DollarName SUM) <' command required'>
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [51509 51518]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName target)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <cd>
                      more_env: []
                      words: [{<cd>} {<arch>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [{<set>} {(SQ )} {<Id.Lit_Star '*'>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'target='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'target='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Star '*')}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <cd>
                      more_env: []
                      words: [{<cd>} {<..>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (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: {<0>}
                )
              ]
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [a]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName target)}])
              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 package)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <Id.Left_SingleQuote '\''>
                          pattern: (pat.Words words:[{(SQ )}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.Simple
                              blame_tok: <set>
                              more_env: []
                              words: [
                                {<set>}
                                {(SQ )}
                                {<'arch/'> ($ Id.VSub_DollarName a) <'/lib/package/gen/'> 
                                  <Id.Lit_Star '*'> <.sum>
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Simple
                                          blame_tok: <test>
                                          more_env: []
                                          words: [{<test>} {<-f>} {($ Id.VSub_Number 1)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.ForEach
                                      keyword: <Id.KW_For for>
                                      iter_names: [i]
                                      iterable: (for_iter__Args)
                                      body: 
                                        (command.DoGroup
                                          left: <Id.KW_Do do>
                                          children: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <package_verify>
                                                  more_env: []
                                                  words: [{<package_verify>} {($ Id.VSub_DollarName i)}]
                                                  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: []
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                          ]
                                          right: <Id.KW_Done done>
                                        )
                                      redirects: []
                                    )
                                  ]
                                  spids: [51626 51635]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {
                                      (DQ ($ Id.VSub_DollarName command) <': warning: '> 
                                        ($ Id.VSub_DollarName a) <': no binary packages'>
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <Id.Lit_Star '*'>
                          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [i]
                              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName package)}])
                              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.Simple
                                                  blame_tok: <test>
                                                  more_env: []
                                                  words: [
                                                    {<test>}
                                                    {<-f>}
                                                    {<'arch/'> ($ Id.VSub_DollarName a) 
                                                      <'/lib/package/gen/'> ($ Id.VSub_DollarName i) <.sum>
                                                    }
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          then_kw: <Id.KW_Then then>
                                          action: [
                                            (command.AndOr
                                              children: [
                                                (command.Simple
                                                  blame_tok: <package_verify>
                                                  more_env: []
                                                  words: [
                                                    {<package_verify>}
                                                    {<'arch/'> ($ Id.VSub_DollarName a) 
                                                      <'/lib/package/gen/'> ($ Id.VSub_DollarName i) <.sum>
                                                    }
                                                  ]
                                                  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: []
                                                )
                                              ]
                                              ops: [<Id.Op_DPipe _>]
                                            )
                                          ]
                                          spids: [51692 51705]
                                        )
                                      ]
                                      else_kw: <Id.KW_Else else>
                                      else_action: [
                                        (command.Simple
                                          blame_tok: <echo>
                                          more_env: []
                                          words: [
                                            {<echo>}
                                            {
                                              (DQ ($ Id.VSub_DollarName command) <': warning: '> 
                                                ($ Id.VSub_DollarName a) <': no binary package for '> ($ Id.VSub_DollarName i)
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op: <Id.Redir_GreatAnd '>&'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {<2>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                      fi_kw: <Id.KW_Fi fi>
                                      redirects: []
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                      ]
                      arms_end: <Id.KW_Esac esac>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.ControlFlow
              keyword: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName code)}
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <write>
          pattern: (pat.Words words:[{<write>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName target)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'action='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'action='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'action='> name:action)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'list='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'list='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'list='> name:list)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'qualifier='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'qualifier='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'qualifier='> name:qualifier)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              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_Number 1)})
                      arms_start: <Id.KW_In in>
                      arms: [
                        (CaseArm
                          left: <base>
                          pattern: 
                            (pat.Words
                              words: [{<base>} {<closure>} {<delta>} {<exp>} {<lcl>} {<pkg>} {<rpm>} {<tgz>}]
                            )
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'qualifier='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'qualifier='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'qualifier='>
                                      name: qualifier
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {(DQ ($ Id.VSub_DollarName qualifier) <' '> ($ Id.VSub_Number 1))}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <binary>
                          pattern: (pat.Words words:[{<binary>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'action='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'action='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'action='> name:action)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'type='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'type='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'type='> name:type)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName HOSTTYPE)}
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<Id.Lit_VarLike 'list='> ($ Id.VSub_DollarName PACKAGESRC) <'/tgz/'> 
                                  ($ Id.VSub_DollarName admin_list)
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <cyg>
                          pattern: (pat.Words words:[{<cyg>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'qualifier='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'qualifier='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'qualifier='>
                                      name: qualifier
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {(DQ ($ Id.VSub_DollarName qualifier) <' '> ($ Id.VSub_Number 1))}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'assign='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'assign='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'assign='> name:assign)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName assign) <' closure=1'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'only='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'only='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'only='> name:only)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <runtime>
                          pattern: (pat.Words words:[{<runtime>} {<source>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'action='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'action='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'action='> name:action)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number 1)}
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <tst>
                          pattern: (pat.Words words:[{<tst>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'qualifier='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'qualifier='>
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'qualifier='>
                                      name: qualifier
                                    )
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName qualifier) <' tgz'>)}
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'assign='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'assign='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'assign='> name:assign)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName assign) <' copyright=0 \'PACKAGEDIR='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                          ch: '$'
                                        ) <'(PACKAGESRC)/tst\''>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                          ]
                          right: <Id.Op_DSemi _>
                        )
                        (CaseArm
                          left: <nocopyright>
                          pattern: (pat.Words words:[{<nocopyright>}])
                          middle: <Id.Right_CasePat _>
                          action: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'assign='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'assign='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'assign='> name:assign)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName assign) <' copyright=0'>)}
                                )
                              ]
                              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_Break break>)]
                          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.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName action)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ ($ Id.VSub_DollarName command) <': binary or source operand expected'>)}
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      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: <set>
              more_env: []
              words: [{<set>} {(SQ )} {(DQ ($ Id.VSub_At '@'))} {($ Id.VSub_DollarName package)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName only)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <0>
                  pattern: (pat.Words words:[{<0>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <set>
                      more_env: []
                      words: [
                        {<set>}
                        {(SQ )}
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                blame_tok: <order>
                                more_env: []
                                words: [{<order>} {(DQ ($ Id.VSub_At '@'))}]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (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.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ ($ Id.VSub_DollarName command) <': at least one package name expected'>)}
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      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.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <nonmake>
                          more_env: []
                          words: [{<nonmake>} {($ Id.VSub_DollarName MAKE)}]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ ($ Id.VSub_DollarName command) <': must have '> 
                            ($ Id.VSub_DollarName MAKE) <' to generate archives'>
                          )
                        }
                      ]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [52055 52062]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <Id.VSub_DollarName '$make'>
              more_env: []
              words: [{($ Id.VSub_DollarName make)} {<cd>} {($ Id.VSub_DollarName PACKAGEBIN)}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_DollarName list)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_QMark '?'>
                  pattern: (pat.Words words:[{<Id.Lit_QMark '?'> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.VSub_DollarName '$exec'>
                      more_env: []
                      words: [{($ Id.VSub_DollarName exec)} {<rm>} {<-f>} {($ Id.VSub_DollarName list)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [package]
              iterable: (for_iter__Args)
              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.AndOr
                                  children: [
                                    (command.Simple
                                      blame_tok: <view>
                                      more_env: []
                                      words: [
                                        {<view>}
                                        {<->}
                                        {<all>}
                                        {($ Id.VSub_DollarName package) <.pkg>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                    (command.Simple
                                      blame_tok: <view>
                                      more_env: []
                                      words: [
                                        {<view>}
                                        {<->}
                                        {<all>}
                                        {<'lib/package/'> ($ Id.VSub_DollarName package) <.pkg>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  ops: [<Id.Op_DPipe _>]
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <eval>
                              more_env: []
                              words: [
                                {<eval>}
                                {<capture>}
                                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                  <MAKE>
                                }
                                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                  <makeflags>
                                }
                                {<-X>}
                                {<ignore>}
                                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                  <noexec>
                                }
                                {<-f>}
                                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                  <package.pkg>
                                }
                                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                  <qualifier>
                                }
                                {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') 
                                  <action>
                                }
                                {($ Id.VSub_DollarName assign)}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [52136 52160]
                        )
                      ]
                      else_kw: <Id.KW_Else else>
                      else_action: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {
                              (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName package) 
                                <': not a package'>
                              )
                            }
                          ]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <TEST>
          pattern: (pat.Words words:[{<TEST>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <set>
              more_env: []
              words: [{<set>} {(SQ )} {($ Id.VSub_DollarName target)} {($ Id.VSub_DollarName package)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <binary>
                  pattern: (pat.Words words:[{<binary>} {<source>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'action='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'action='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'action='> name:action)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number 1)}
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <shift>
                      more_env: []
                      words: [{<shift>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Simple
              blame_tok: <order>
              more_env: []
              words: [{<order>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: []
              do_fork: T
            )
          ]
          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: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ ($ Id.VSub_DollarName command) <': '> ($ Id.VSub_DollarName action) 
                    <': internal error'>
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
  ]
)