(command.CommandList
  children: [
    (command.ShFunction
      name: usage
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_Number 1))} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<echo>} {(DQ <'umountall: '> ($ Id.VSub_Number 1))}]
                      redirects: [
                        (redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      more_env: []
                      do_fork: T
                    )
                  ]
                  spids: [93 106]
                )
              ]
              else_action: []
              redirects: []
            )
            (command.Simple
              words: [
                {<echo>}
                {
                  (DQ <'Usage:'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> 
                    <'tumountall [-k] [-s] [-F FSType] [-l|-r] [-Z] [-n]'>
                  )
                }
              ]
              redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              more_env: []
              do_fork: T
            )
            (command.Simple
              words: [
                {<echo>}
                {(DQ <Id.Lit_BadBackslash '\\'> <'tumountall [-k] [-s] [-h host] [-Z] [-n]'>)}
              ]
              redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<2>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MNTTAB='> name:MNTTAB)
          op: assign_op.Equal
          rhs: {<'/etc/mnttab'>}
          spids: [155]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
          op: assign_op.Equal
          rhs: {<'/sbin'> <Id.Lit_Colon ':'> <'/usr/sbin'> <Id.Lit_Colon ':'> <'/usr/bin'>}
          spids: [247]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FSType='> name:FSType)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [258]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FFLAG='> name:FFLAG)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [260]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOST='> name:HOST)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [262]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HFLAG='> name:HFLAG)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [264]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RFLAG='> name:RFLAG)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [266]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LFLAG='> name:LFLAG)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [268]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SFLAG='> name:SFLAG)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [270]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KFLAG='> name:KFLAG)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [272]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ZFLAG='> name:ZFLAG)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [274]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NFLAG='> name:NFLAG)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [276]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LOCALNAME='> name:LOCALNAME)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [278]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UMOUNTFLAG='> name:UMOUNTFLAG)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [280]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RemoteFSTypes='> name:RemoteFSTypes)
          op: assign_op.Equal
          rhs: (rhs_word.Empty)
          spids: [282]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: isremote
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ForEach
              iter_names: [t]
              iterable: (for_iter.Words words:[{($ Id.VSub_DollarName RemoteFSTypes)}])
              body: 
                (command.DoGroup
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName t))} {<Id.Lit_Equals '='>} 
                          {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_RBracket ']'>}
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Return return>
                          arg_word: {<0>}
                        )
                      ]
                    )
                  ]
                )
              redirects: []
            )
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RemoteFSTypes='> name:RemoteFSTypes)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.WhileUntil
                    keyword: <Id.KW_While while>
                    cond: 
                      (condition.Shell
                        commands: [
                          (command.Sentence
                            child: (C {<read>} {<t>} {<junk>})
                            terminator: <Id.Op_Semi _>
                          )
                        ]
                      )
                    body: 
                      (command.DoGroup
                        children: [
                          (command.Sentence
                            child: (C {<echo>} {($ Id.VSub_DollarName t)})
                            terminator: <Id.Op_Semi _>
                          )
                        ]
                      )
                    redirects: [
                      (redir
                        op: <Id.Redir_Less '<'>
                        loc: (redir_loc.Fd fd:0)
                        arg: {<'/etc/dfs/fstypes'>}
                      )
                    ]
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
          spids: [344]
        )
      ]
      redirects: []
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: 
        (condition.Shell
          commands: [
            (C {<getopts>} {<Id.Lit_QMark '?'> <rslkF> <Id.Lit_Colon ':'> <h> <Id.Lit_Colon ':'> <Zn>} 
              {<c>}
            )
          ]
        )
      body: 
        (command.DoGroup
          children: [
            (command.Case
              to_match: {($ Id.VSub_DollarName c)}
              arms: [
                (case_arm
                  pat_list: [{<r>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RFLAG='> name:RFLAG)
                          op: assign_op.Equal
                          rhs: {(DQ <r>)}
                          spids: [408]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [405 406 412 -1]
                )
                (case_arm
                  pat_list: [{<l>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LFLAG='> name:LFLAG)
                          op: assign_op.Equal
                          rhs: {(DQ <l>)}
                          spids: [418]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [415 416 422 -1]
                )
                (case_arm
                  pat_list: [{<s>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SFLAG='> name:SFLAG)
                          op: assign_op.Equal
                          rhs: {(DQ <s>)}
                          spids: [428]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [425 426 432 -1]
                )
                (case_arm
                  pat_list: [{<k>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KFLAG='> name:KFLAG)
                          op: assign_op.Equal
                          rhs: {(DQ <k>)}
                          spids: [438]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [435 436 442 -1]
                )
                (case_arm
                  pat_list: [{<h>}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName HFLAG))} 
                                      {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<usage>} {(DQ <'more than one host specified'>)})]
                          spids: [448 461]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOST='> name:HOST)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName OPTARG)}
                          spids: [474]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HFLAG='> name:HFLAG)
                          op: assign_op.Equal
                          rhs: {(DQ <h>)}
                          spids: [478]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LOCALNAME='> name:LOCALNAME)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: (C {<uname>} {<-n>})
                                right: <Id.Backtick_Right '`'>
                              )
                            }
                          spids: [484]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [445 446 494 -1]
                )
                (case_arm
                  pat_list: [{<F>}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName FFLAG))} 
                                      {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<usage>} {(DQ <'more than one FStype specified'>)})]
                          spids: [501 514]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FSType='> name:FSType)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName OPTARG)}
                          spids: [527]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FFLAG='> name:FFLAG)
                          op: assign_op.Equal
                          rhs: {(DQ <f>)}
                          spids: [532]
                        )
                      ]
                      redirects: []
                    )
                    (command.Sentence
                      child: 
                        (command.Case
                          to_match: {($ Id.VSub_DollarName FSType)}
                          arms: [
                            (case_arm
                              pat_list: [
                                {<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 '*'>
                                }
                              ]
                              action: [
                                (C {<usage>} 
                                  {
                                    (DQ <'FSType '> (${ Id.VSub_Name FSType) <' exceeds 8 characters'>)
                                  }
                                )
                              ]
                              spids: [545 555 -1 570]
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [498 499 574 -1]
                )
                (case_arm
                  pat_list: [{<Z>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ZFLAG='> name:ZFLAG)
                          op: assign_op.Equal
                          rhs: {(DQ <z>)}
                          spids: [580]
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [577 578 584 -1]
                )
                (case_arm
                  pat_list: [{<n>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NFLAG='> name:NFLAG)
                          op: assign_op.Equal
                          rhs: {(DQ <n>)}
                          spids: [590]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UMOUNTFLAG='> name:UMOUNTFLAG)
                          op: assign_op.Equal
                          rhs: {(DQ <-V>)}
                          spids: [604]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShFunction
                      name: fuser
                      body: 
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.Simple
                              words: [{<echo>} {(DQ <'fuser '> ($ Id.VSub_Star '*'))}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                    )
                    (command.ShFunction
                      name: sleep
                      body: 
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [(C {<Id.Lit_Colon ':'>})]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                    )
                  ]
                  spids: [587 588 649 -1]
                )
                (case_arm
                  pat_list: [{(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')}]
                  action: [(C {<usage>} {(DQ )})]
                  spids: [652 653 661 -1]
                )
              ]
              redirects: []
            )
          ]
        )
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<-ge>} 
                      {($ Id.VSub_DollarName OPTIND)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<usage>} {(DQ <'additional arguments not supported'>)})]
          spids: [694 707]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName RFLAG))} {<-a>} {<-n>} 
                      {(DQ ($ Id.VSub_DollarName LFLAG))} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<usage>} {(DQ <'options -r and -l are incompatible'>)})]
          spids: [722 743]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} 
                      {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('> ch:'(')} {<-n>} {(DQ ($ Id.VSub_DollarName RFLAG))} {<-o>} {<-n>} {(DQ ($ Id.VSub_DollarName LFLAG))} 
                      {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'> ch:')')} {<-a>} {(DQ ($ Id.VSub_DollarName HFLAG))} {<Id.Lit_Equals '='>} {(DQ <h>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<usage>} 
              {
                (DQ <'option -'> (${ Id.VSub_Name RFLAG) (${ Id.VSub_Name LFLAG) 
                  <' incompatible with -h option'>
                )
              }
            )
          ]
          spids: [758 795]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName FFLAG))} {<-a>} 
                      {(DQ ($ Id.VSub_DollarName HFLAG))} {<Id.Lit_Equals '='>} {(DQ <h>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<usage>} {(DQ <'Specifying FStype incompatible with -h option'>)})]
          spids: [817 842]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName HFLAG))} {<-a>} 
                      {(DQ ($ Id.VSub_DollarName HOST))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName LOCALNAME))} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<usage>} {(DQ <'Specifying local host illegal for -h option'>)})]
          spids: [857 882]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName LFLAG))} {<Id.Lit_Equals '='>} 
                      {(DQ <l>)} {<-a>} {<-n>} {(DQ ($ Id.VSub_DollarName FSType))} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<isremote>} {(DQ ($ Id.VSub_DollarName FSType))})
                (C {<usage>} 
                  {(DQ <'option -l and FSType '> (${ Id.VSub_Name FSType) <' are incompatible'>)}
                )
              ]
            )
          ]
          spids: [897 922]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName RFLAG))} {<Id.Lit_Equals '='>} 
                      {(DQ <r>)} {<-a>} {<-n>} {(DQ ($ Id.VSub_DollarName FSType))} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<isremote>} {(DQ ($ Id.VSub_DollarName FSType))})
                (C {<usage>} 
                  {(DQ <'option -r and FSType '> (${ Id.VSub_Name FSType) <' are incompatible'>)}
                )
              ]
            )
          ]
          spids: [954 979]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ZONENAME='> name:ZONENAME)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: (C {<zonename>})
                right: <Id.Backtick_Right '`'>
              )
            }
          spids: [1011]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-z>} 
                      {
                        (DQ (${ Id.VSub_Name SFLAG) (${ Id.VSub_Name LFLAG) (${ Id.VSub_Name RFLAG) 
                          (${ Id.VSub_Name HFLAG) (${ Id.VSub_Name KFLAG) (${ Id.VSub_Name FFLAG) (${ Id.VSub_Name ZFLAG)
                        )
                      } {<-a>} {(DQ ($ Id.VSub_DollarName ZONENAME))} {<Id.Lit_Equals '='>} {(DQ <global>)} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<umount>} {<-a>} {(${ Id.VSub_Name UMOUNTFLAG)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit>)
          ]
          spids: [1031 1078]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName KFLAG))} {<-a>} {<-z>} 
                      {(DQ ($ Id.VSub_DollarName NFLAG))} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-x>} {<'/usr/sbin/fuser'>} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShFunction
                      name: fuser
                      body: 
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [
                            (command.Simple
                              words: [{<echo>} {(DQ <'umountall: fuser -k skipped (no /usr)'>)}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                          ]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                    )
                    (command.ShFunction
                      name: sleep
                      body: 
                        (BraceGroup
                          left: <Id.Lit_LBrace '{'>
                          children: [(C {<Id.Lit_Colon ':'>})]
                          redirects: []
                          right: <Id.Lit_RBrace '}'>
                        )
                    )
                  ]
                  spids: [1128 1141]
                )
              ]
              else_action: [
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-x>} {<'/usr/bin/sleep'>} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShFunction
                          name: sleep
                          body: 
                            (BraceGroup
                              left: <Id.Lit_LBrace '{'>
                              children: [
                                (command.Simple
                                  words: [
                                    {<echo>}
                                    {(DQ <'umountall: sleep after fuser -k skipped (no /usr)'>)}
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_GreatAnd '1>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  more_env: []
                                  do_fork: T
                                )
                              ]
                              redirects: []
                              right: <Id.Lit_RBrace '}'>
                            )
                        )
                      ]
                      spids: [1189 1202]
                    )
                  ]
                  else_action: []
                  redirects: []
                )
              ]
              redirects: []
            )
          ]
          spids: [1104 1125]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShFunction
      name: print_nfs_host
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OIFS='> name:OIFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName IFS)}
                  spids: [1258]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {(DQ <':'>)}
                  spids: [1262]
                )
              ]
              redirects: []
            )
            (C {<set>} {<-->} {($ Id.VSub_Star '*')})
            (C {<echo>} {($ Id.VSub_Number 1)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName OIFS)}
                  spids: [1280]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: print_smbfs_host
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OIFS='> name:OIFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName IFS)}
                  spids: [1305]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {(DQ <'/@'>)}
                  spids: [1309]
                )
              ]
              redirects: []
            )
            (C {<set>} {<-->} {($ Id.VSub_Star '*')})
            (command.Case
              to_match: {($ Id.VSub_Pound '#')}
              arms: [
                (case_arm
                  pat_list: [{<3>}]
                  action: [(C {<echo>} {(DQ ($ Id.VSub_Number 2))})]
                  spids: [1329 1330 1337 -1]
                )
                (case_arm
                  pat_list: [{<2>}]
                  action: [(C {<echo>} {(DQ ($ Id.VSub_Number 1))})]
                  spids: [1340 1341 1348 -1]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName OIFS)}
                  spids: [1354]
                )
              ]
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name: doumounts
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Subshell
              child: 
                (command.CommandList
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rc='> name:rc)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [1380]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fslist='> name:fslist)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                          spids: [1384]
                        )
                      ]
                      redirects: []
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: 
                        (condition.Shell
                          commands: [(C {<read>} {<dev>} {<mountp>} {<fstype>} {<mode>} {<dummy>})]
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {(DQ (${ Id.VSub_Name mountp))}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<'/'>}
                                    {<'/dev'>}
                                    {<'/dev/fd'>}
                                    {<'/devices'>}
                                    {<'/etc/mnttab'>}
                                    {<'/etc/svc/volatile'>}
                                    {<'/lib'>}
                                    {<'/proc'>}
                                    {<'/sbin'>}
                                    {<'/system/contract'>}
                                    {<'/system/object'>}
                                    {<'/tmp'>}
                                    {<'/tmp/.libgrubmgmt'> <Id.Lit_Star '*'>}
                                    {<'/usr'>}
                                    {<'/var'>}
                                    {<'/var/adm'>}
                                    {<'/var/run'>}
                                    {(SQ )}
                                  ]
                                  action: [
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [1418 1524 1550 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<Id.Lit_LBracket '['>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName HFLAG))} {<Id.Lit_RBracket ']'>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'thishost='>
                                                      name: thishost
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(SQ <->)}
                                                  spids: [1574]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<Id.Lit_LBracket '['>} 
                                                              {(DQ ($ Id.VSub_DollarName fstype))} {<Id.Lit_Equals '='>} {(DQ <nfs>)} {<Id.Lit_RBracket ']'>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'thishost='>
                                                              name: thishost
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (command_sub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (C {<print_nfs_host>} 
                                                                    {($ Id.VSub_DollarName dev)}
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                          spids: [1600]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [1580 1597]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<Id.Lit_LBracket '['>} 
                                                              {(DQ ($ Id.VSub_DollarName fstype))} {<Id.Lit_Equals '='>} {(DQ <smbfs>)} {<Id.Lit_RBracket ']'>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'thishost='>
                                                              name: thishost
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (command_sub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (C {<print_smbfs_host>} 
                                                                    {($ Id.VSub_DollarName dev)}
                                                                  )
                                                                right: <Id.Backtick_Right '`'>
                                                              )
                                                            }
                                                          spids: [1633]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [1613 1630]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<Id.Lit_LBracket '['>} 
                                                              {(DQ ($ Id.VSub_DollarName HOST))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName thishost))} {<Id.Lit_RBracket ']'>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  spids: [1646 1664]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                          ]
                                          spids: [1558 1571]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<Id.Lit_LBracket '['>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName FFLAG))} {<-a>} {(DQ ($ Id.VSub_DollarName FSType))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                                                      {(DQ ($ Id.VSub_DollarName fstype))} {<Id.Lit_RBracket ']'>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [1676 1702]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<Id.Lit_LBracket '['>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName LFLAG))} {<Id.Lit_RBracket ']'>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<isremote>} {(DQ ($ Id.VSub_DollarName fstype))})
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [1712 1725]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<Id.Lit_LBracket '['>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName RFLAG))} {<Id.Lit_RBracket ']'>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {<isremote>} {(DQ ($ Id.VSub_DollarName fstype))})
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [1795 1808]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<Id.Lit_LBracket '['>} 
                                                      {(DQ ($ Id.VSub_DollarName ZONENAME))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <global>)} {<Id.Lit_RBracket ']'>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ForEach
                                              iter_names: [option]
                                              iterable: 
                                                (for_iter.Words
                                                  words: [
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {<echo>} {($ Id.VSub_DollarName mode)})
                                                              (C {<tr>} {<Id.Lit_Comma ','>} 
                                                                {(SQ <'\\012'>)}
                                                              )
                                                            ]
                                                            negated: F
                                                            stderr_indices: []
                                                          )
                                                        right: <Id.Backtick_Right '`'>
                                                      )
                                                    }
                                                  ]
                                                )
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<Id.Lit_LBracket '['>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
option
                                                                          )
                                                                        )
                                                                      } {<Id.Lit_Equals '='>} {(DQ <'zone='> ($ Id.VSub_DollarName ZONENAME))} {<Id.Lit_RBracket ']'>}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ControlFlow
                                                              token: <Id.ControlFlow_Break break>
                                                            )
                                                          ]
                                                          spids: [1896 1914]
                                                        )
                                                      ]
                                                      else_action: []
                                                      redirects: []
                                                    )
                                                  ]
                                                )
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<Id.Lit_LBracket '['>} 
                                                              {(DQ ($ Id.VSub_DollarName option))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'zone='> ($ Id.VSub_DollarName ZONENAME))} 
                                                              {<Id.Lit_RBracket ']'>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  spids: [1926 1945]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                          ]
                                          spids: [1829 1847]
                                        )
                                      ]
                                      else_action: [
                                        (command.ForEach
                                          iter_names: [option]
                                          iterable: 
                                            (for_iter.Words
                                              words: [
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (C {<echo>} {($ Id.VSub_DollarName mode)})
                                                          (C {<tr>} {<Id.Lit_Comma ','>} {(SQ <'\\012'>)})
                                                        ]
                                                        negated: F
                                                        stderr_indices: []
                                                      )
                                                    right: <Id.Backtick_Right '`'>
                                                  )
                                                }
                                              ]
                                            )
                                          body: 
                                            (command.DoGroup
                                              children: [
                                                (command.Case
                                                  to_match: {(DQ ($ Id.VSub_DollarName option))}
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [
                                                        {<Id.Lit_VarLike 'zone='> <Id.Lit_Star '*'>}
                                                      ]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  left: <Id.Lit_VarLike 'option='>
                                                                  name: option
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {(DQ <'zone='>)}
                                                              spids: [2006]
                                                            )
                                                          ]
                                                          redirects: []
                                                        )
                                                        (command.ControlFlow
                                                          token: <Id.ControlFlow_Break break>
                                                        )
                                                      ]
                                                      spids: [2001 2003 2015 -1]
                                                    )
                                                  ]
                                                  redirects: []
                                                )
                                              ]
                                            )
                                          redirects: []
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<Id.Lit_LBracket '['>} 
                                                          {(DQ ($ Id.VSub_DollarName option))} {<Id.Lit_Equals '='>} {(DQ <'zone='>)} {<-a>} {<-z>} {(DQ ($ Id.VSub_DollarName ZFLAG))} 
                                                          {<Id.Lit_RBracket ']'>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                              spids: [2028 2053]
                                            )
                                          ]
                                          else_action: []
                                          redirects: []
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: 
                                                (condition.Shell
                                                  commands: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<Id.Lit_LBracket '['>} 
                                                          {(DQ ($ Id.VSub_DollarName option))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'zone='>)} {<-a>} {<-n>} {(DQ ($ Id.VSub_DollarName ZFLAG))} 
                                                          {<Id.Lit_RBracket ']'>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                )
                                              action: [
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Continue continue>
                                                )
                                              ]
                                              spids: [2066 2092]
                                            )
                                          ]
                                          else_action: []
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<Id.Lit_LBracket '['>} {<-n>} 
                                                      {(DQ (${ Id.VSub_Name KFLAG))} {<Id.Lit_RBracket ']'>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.Simple
                                              words: [
                                                {<fuser>}
                                                {<-c>}
                                                {<-k>}
                                                {($ Id.VSub_DollarName mountp)}
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_GreatAnd '1>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<2>}
                                                )
                                              ]
                                              more_env: []
                                              do_fork: T
                                            )
                                            (C {<sleep>} {<2>})
                                          ]
                                          spids: [2104 2119]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<Id.Lit_LBracket '['>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName SFLAG))} {<Id.Lit_RBracket ']'>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.Simple
                                              words: [
                                                {<umount>}
                                                {(${ Id.VSub_Name UMOUNTFLAG)}
                                                {(${ Id.VSub_Name mountp)}
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_GreatAnd '1>&'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<2>}
                                                )
                                              ]
                                              more_env: []
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'trc='>
                                                      name: trc
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_QMark '?')}
                                                  spids: [2172]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<Id.Lit_LBracket '['>} 
                                                              {($ Id.VSub_DollarName trc)} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>}
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              left: <Id.Lit_VarLike 'rc='>
                                                              name: rc
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName trc)}
                                                          spids: [2192]
                                                        )
                                                      ]
                                                      redirects: []
                                                    )
                                                  ]
                                                  spids: [2176 2189]
                                                )
                                              ]
                                              else_action: []
                                              redirects: []
                                            )
                                          ]
                                          spids: [2142 2155]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: 
                                                (sh_lhs_expr.Name
                                                  left: <Id.Lit_VarLike 'fslist='>
                                                  name: fslist
                                                )
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName fslist) <' '> 
                                                    ($ Id.VSub_DollarName mountp)
                                                  )
                                                }
                                              spids: [2206]
                                            )
                                          ]
                                          redirects: []
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [1553 1555 -1 2217]
                                )
                              ]
                              redirects: []
                            )
                          ]
                        )
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-n>} 
                                      {(DQ ($ Id.VSub_DollarName fslist))} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Simple
                              words: [
                                {<umount>}
                                {<-a>}
                                {(${ Id.VSub_Name UMOUNTFLAG)}
                                {($ Id.VSub_DollarName fslist)}
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_GreatAnd '1>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              more_env: []
                              do_fork: T
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'trc='> name:trc)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '?')}
                                  spids: [2254]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName trc)} 
                                              {<-ne>} {<0>} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rc='> name:rc)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName trc)}
                                          spids: [2274]
                                        )
                                      ]
                                      redirects: []
                                    )
                                  ]
                                  spids: [2258 2271]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [2224 2237]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                    (C {<echo>} {($ Id.VSub_DollarName rc)})
                  ]
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-x>} {<'/usr/bin/tail'>} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<exec>}]
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {($ Id.VSub_DollarName MNTTAB)}
                )
              ]
              more_env: []
              do_fork: T
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REVERSED='> name:REVERSED)
                  op: assign_op.Equal
                  rhs: (rhs_word.Empty)
                  spids: [2331]
                )
              ]
              redirects: []
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [(command.Sentence child:(C {<read>} {<line>}) terminator:<Id.Op_Semi _>)]
                )
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-n>} 
                                      {(DQ ($ Id.VSub_DollarName REVERSED))} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'REVERSED='>
                                      name: REVERSED
                                    )
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName line) <Id.Lit_BadBackslash '\\'> <n> 
                                        ($ Id.VSub_DollarName REVERSED)
                                      )
                                    }
                                  spids: [2360]
                                )
                              ]
                              redirects: []
                            )
                          ]
                          spids: [2344 2357]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REVERSED='> name:REVERSED)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_DollarName line))}
                              spids: [2372]
                            )
                          ]
                          redirects: []
                        )
                      ]
                      redirects: []
                    )
                  ]
                )
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'error='> name:error)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [(C {<echo>} {($ Id.VSub_DollarName REVERSED)}) (C {<doumounts>})]
                            negated: F
                            stderr_indices: []
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                  spids: [2385]
                )
              ]
              redirects: []
            )
          ]
          spids: [2308 2321]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'error='> name:error)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: 
                      (command.Pipeline
                        children: [(C {<tail>} {<-r>} {($ Id.VSub_DollarName MNTTAB)}) (C {<doumounts>})]
                        negated: F
                        stderr_indices: []
                      )
                    right: <Id.Backtick_Right '`'>
                  )
                }
              spids: [2401]
            )
          ]
          redirects: []
        )
      ]
      redirects: []
    )
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{($ Id.VSub_DollarName error)})
  ]
)