(command.CommandList
  children: [
    (command.ShFunction
      name: usage
      body: 
        (BraceGroup
          children: [
            (C {<echo>} {(DQ <'usage: crashinfo [-d crashdir] [-n dumpnr] [-k kernel] [core]'>)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
        )
    )
    (command.ShFunction
      name: gdb_command
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<k>})
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:k)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number '$1')}
                      spids: [134]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (C {<shift>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-x>} {<'/usr/local/bin/gdb'>} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<'/usr/local/bin/gdb'>} {<-batch>} {<-ex>} {(DQ ($ Id.VSub_At '$@'))} 
                      {($ Id.VSub_DollarName '$k')}
                    )
                  ]
                  spids: [143 154]
                )
              ]
              else_action: [
                (command.Pipeline
                  children: [
                    (C {<echo>} {<-e>} {(DQ ($ Id.VSub_At '$@'))})
                    (C {<'/usr/bin/gdb'>} {<-x>} {<'/dev/stdin'>} {<-batch>} {($ Id.VSub_DollarName '$k')})
                  ]
                  negated: F
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: find_kernel
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<ivers>} {<k>} {<kvers>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ivers)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (C {<awk>} 
                            {
                              (SQ <'\n'> <'\t/Version String/ {\n'> <'\t\tprint\n'> <'\t\tnextline=1\n'> 
                                <'\t\tnext\n'> <'\t}\n'> <'\tnextline==1 {\n'> <'\t\tif ($0 ~ "^  [A-Za-z ]+: ") {\n'> <'\t\t\tnextline=0\n'> 
                                <'\t\t} else {\n'> <'\t\t\tprint\n'> <'\t\t}\n'> <'\t}'>
                              )
                            } {($ Id.VSub_DollarName '$INFO')}
                          )
                      )
                    }
                  spids: [216]
                )
              ]
            )
            (command.ForEach
              iter_name: k
              iter_words: [
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: (C {<sysctl>} {<-n>} {<kern.bootfile>})
                  )
                }
                {
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: (C {<ls>} {<-t>} {<'/boot/'> <Id.Lit_Star '*'> <'/kernel'>})
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:kvers)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<gdb_command>} {($ Id.VSub_DollarName '$k')} 
                                        {(SQ <'printf "  Version String: %s", version'>)}
                                      )
                                      (command.Simple
                                        words: [
                                          {<awk>}
                                          {
                                            (DQ <'{line=line'> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\$'>
                                              ) <0> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <Id.Lit_BadBackslash '\\'> <n> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                              ) <'} END{print substr(line,1,'> (braced_var_sub token:<Id.VSub_Name ivers> prefix_op:(Id.VSub_Pound)) 
                                              <')}'>
                                            )
                                          }
                                        ]
                                        redirects: [
                                          (redir
                                            op: <Id.Redir_Great '2>'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<'/dev/null'>}
                                          )
                                        ]
                                        do_fork: T
                                      )
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [279]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$ivers'))} 
                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$kvers'))} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:KERNEL)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$k')}
                                  spids: [338]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [318 335]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CRASHDIR)
          op: assign_op.Equal
          rhs: {<'/var/crash'>}
          spids: [353]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DUMPNR)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [356]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:KERNEL)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [358]
        )
      ]
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: 
        (condition.Shell
          commands: [
            (command.Sentence
              child: (C {<getopts>} {(DQ <'d:n:k:'>)} {<opt>})
              terminator: <Id.Op_Semi _>
            )
          ]
        )
      body: 
        (command.DoGroup
          children: [
            (command.Case
              to_match: {(DQ ($ Id.VSub_DollarName '$opt'))}
              arms: [
                (case_arm
                  pat_list: [{<d>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CRASHDIR)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$OPTARG')}
                          spids: [388]
                        )
                      ]
                    )
                  ]
                  spids: [384 385 392 -1]
                )
                (case_arm
                  pat_list: [{<n>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:DUMPNR)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$OPTARG')}
                          spids: [399]
                        )
                      ]
                    )
                  ]
                  spids: [395 396 403 -1]
                )
                (case_arm
                  pat_list: [{<k>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:KERNEL)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$OPTARG')}
                          spids: [410]
                        )
                      ]
                    )
                  ]
                  spids: [406 407 414 -1]
                )
                (case_arm
                  pat_list: [{(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'>)}]
                  action: [(C {<usage>})]
                  spids: [417 418 424 -1]
                )
              ]
            )
          ]
        )
    )
    (C {<shift>} 
      {
        (word_part.ArithSub
          anode: 
            (arith_expr.Binary
              op_id: Id.Arith_Minus
              left: <Id.Lit_ArithVarLike OPTIND>
              right: {<Id.Lit_Digits 1>}
            )
        )
      }
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-eq>} {<1>} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$DUMPNR'))} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} {(DQ <'-n and an explicit vmcore are mutually exclusive'>)})
                    (C {<usage>})
                  ]
                  spids: [460 473]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CRASHDIR)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: (C {<dirname>} {($ Id.VSub_Number '$1')})
                      )
                    }
                  spids: [494]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:DUMPNR)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (C {<expr>} 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: (C {<basename>} {($ Id.VSub_Number '$1')})
                              )
                            } {<Id.Lit_Colon ':'>} {(SQ <'vmcore\\.\\([0-9]*\\)$'>)}
                          )
                      )
                    }
                  spids: [504]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$DUMPNR'))} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} 
                      {
                        (DQ <'Unable to determine dump number from vmcore file '> 
                          ($ Id.VSub_Number '$1') <.>
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [522 535]
                )
              ]
            )
          ]
          spids: [444 457]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-gt>} {<1>} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<usage>})]
          spids: [554 567]
        )
      ]
      else_action: [
        (command.If
          arms: [
            (if_arm
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$DUMPNR'))} 
                          {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              action: [
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.Pipeline
                                  children: [
                                    (C {<Id.Lit_LBracket '['>} {<-r>} 
                                      {($ Id.VSub_DollarName '$CRASHDIR') <'/bounds'>} {<Id.Lit_RBracket ']'>}
                                    )
                                  ]
                                  negated: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<echo>} {(DQ <'No crash dumps in '> ($ Id.VSub_DollarName '$CRASHDIR') <.>)})
                        (command.ControlFlow
                          token: <Id.ControlFlow_Exit exit>
                          arg_word: {<1>}
                        )
                      ]
                      spids: [599 613]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:next)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: (C {<cat>} {($ Id.VSub_DollarName '$CRASHDIR') <'/bounds'>})
                          )
                        }
                      spids: [634]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.AndOr
                                  ops: [Id.Op_DPipe]
                                  children: [
                                    (C {<Id.Lit_LBracket '['>} {<-z>} 
                                      {(DQ ($ Id.VSub_DollarName '$next'))} {<Id.Lit_RBracket ']'>}
                                    )
                                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$next'))} 
                                      {<-eq>} {<0>} {<Id.Lit_RBracket ']'>}
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<echo>} {(DQ <'No crash dumps in '> ($ Id.VSub_DollarName '$CRASHDIR') <.>)})
                        (command.ControlFlow
                          token: <Id.ControlFlow_Exit exit>
                          arg_word: {<1>}
                        )
                      ]
                      spids: [645 672]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:DUMPNR)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (word_part.ArithSub
                            anode: 
                              (arith_expr.Binary
                                op_id: Id.Arith_Minus
                                left: {($ Id.VSub_DollarName '$next')}
                                right: {<Id.Lit_Digits 1>}
                              )
                          )
                        }
                      spids: [692]
                    )
                  ]
                )
              ]
              spids: [583 596]
            )
          ]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:VMCORE)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName '$CRASHDIR') <'/vmcore.'> ($ Id.VSub_DollarName '$DUMPNR')}
          spids: [708]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INFO)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName '$CRASHDIR') <'/info.'> ($ Id.VSub_DollarName '$DUMPNR')}
          spids: [713]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FILE)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName '$CRASHDIR') <'/core.txt.'> ($ Id.VSub_DollarName '$DUMPNR')}
          spids: [718]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:HOSTNAME)
          op: assign_op.Equal
          rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<hostname>}))}
          spids: [723]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-e>} 
                      {($ Id.VSub_DollarName '$VMCORE')} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<echo>} {(DQ ($ Id.VSub_DollarName '$VMCORE') <' not found'>)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [731 744]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-e>} {($ Id.VSub_DollarName '$INFO')} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<echo>} {(DQ ($ Id.VSub_DollarName '$INFO') <' not found'>)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [762 775]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$KERNEL'))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<find_kernel>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$KERNEL'))} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} 
                      {(DQ <'Unable to find matching kernel for '> ($ Id.VSub_DollarName '$VMCORE'))}
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [815 828]
                )
              ]
            )
          ]
          spids: [796 809]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-e>} 
                      {($ Id.VSub_DollarName '$KERNEL')} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<echo>} {(DQ ($ Id.VSub_DollarName '$KERNEL') <' not found'>)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [846 859]
        )
      ]
    )
    (C {<echo>} {(DQ <'Writing crash summary to '> ($ Id.VSub_DollarName '$FILE') <.>)})
    (C {<umask>} {<077>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ostype)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (C {<gdb_command>} {($ Id.VSub_DollarName '$KERNEL')} {(SQ <'printf "%s", ostype'>)})
              )
            }
          spids: [894]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:osrelease)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (C {<gdb_command>} {($ Id.VSub_DollarName '$KERNEL')} {(SQ <'printf "%s", osrelease'>)})
              )
            }
          spids: [905]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:version)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<gdb_command>} {($ Id.VSub_DollarName '$KERNEL')} 
                        {(SQ <'printf "%s", version'>)}
                      )
                      (C {<tr>} {(SQ <'\\t\\n'>)} {(SQ <'  '>)})
                    ]
                    negated: F
                  )
              )
            }
          spids: [916]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:machine)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (C {<gdb_command>} {($ Id.VSub_DollarName '$KERNEL')} {(SQ <'printf "%s", machine'>)})
              )
            }
          spids: [939]
        )
      ]
    )
    (command.Simple
      words: [{<exec>}]
      redirects: [
        (redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName '$FILE')}
        )
        (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
      ]
      do_fork: T
    )
    (C {<echo>} 
      {
        (DQ ($ Id.VSub_DollarName '$HOSTNAME') <' dumped core - see '> ($ Id.VSub_DollarName '$VMCORE'))
      }
    )
    (C {<echo>})
    (C {<date>})
    (C {<echo>})
    (C {<echo>} 
      {
        (DQ ($ Id.VSub_DollarName '$ostype') <' '> ($ Id.VSub_DollarName '$HOSTNAME') <' '> 
          ($ Id.VSub_DollarName '$osrelease') <' '> ($ Id.VSub_DollarName '$version') <' '> ($ Id.VSub_DollarName '$machine')
        )
      }
    )
    (C {<echo>})
    (C {<sed>} {<-ne>} {(SQ <'/^  Panic String: /{s//panic: /;p;}'>)} {($ Id.VSub_DollarName '$INFO')})
    (C {<echo>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:file)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: (C {<mktemp>} {<'/tmp/crashinfo.XXXXXX'>})
              )
            }
          spids: [1010]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<echo>} {(DQ <bt>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName '$file')}
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {(DQ <quit>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName '$file')}
                )
              ]
              do_fork: T
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-x>} {<'/usr/local/bin/kgdb'>} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [
                        {<'/usr/local/bin/kgdb'>}
                        {($ Id.VSub_DollarName '$KERNEL')}
                        {($ Id.VSub_DollarName '$VMCORE')}
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_Less '<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {($ Id.VSub_DollarName '$file')}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [1057 1068]
                )
              ]
              else_action: [
                (command.Simple
                  words: [{<kgdb>} {($ Id.VSub_DollarName '$KERNEL')} {($ Id.VSub_DollarName '$VMCORE')}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Less '<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: {($ Id.VSub_DollarName '$file')}
                    )
                  ]
                  do_fork: T
                )
              ]
            )
            (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$file')})
            (C {<echo>})
          ]
          spids: [1019 1032]
        )
      ]
    )
    (C {<echo>})
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <'ps -axlww'>)})
    (C {<echo>})
    (C {<ps>} {<-M>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} {($ Id.VSub_DollarName '$KERNEL')} 
      {<-axlww>}
    )
    (C {<echo>})
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <'vmstat -s'>)})
    (C {<echo>})
    (C {<vmstat>} {<-M>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} {($ Id.VSub_DollarName '$KERNEL')} 
      {<-s>}
    )
    (C {<echo>})
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <'vmstat -m'>)})
    (C {<echo>})
    (C {<vmstat>} {<-M>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} {($ Id.VSub_DollarName '$KERNEL')} 
      {<-m>}
    )
    (C {<echo>})
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <'vmstat -z'>)})
    (C {<echo>})
    (C {<vmstat>} {<-M>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} {($ Id.VSub_DollarName '$KERNEL')} 
      {<-z>}
    )
    (C {<echo>})
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <'vmstat -i'>)})
    (C {<echo>})
    (C {<vmstat>} {<-M>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} {($ Id.VSub_DollarName '$KERNEL')} 
      {<-i>}
    )
    (C {<echo>})
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <'pstat -T'>)})
    (C {<echo>})
    (C {<pstat>} {<-M>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} {($ Id.VSub_DollarName '$KERNEL')} {<-T>})
    (C {<echo>})
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <'pstat -s'>)})
    (C {<echo>})
    (C {<pstat>} {<-M>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} {($ Id.VSub_DollarName '$KERNEL')} {<-s>})
    (C {<echo>})
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <iostat>)})
    (C {<echo>})
    (C {<iostat>} {<-M>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} {($ Id.VSub_DollarName '$KERNEL')})
    (C {<echo>})
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <'ipcs -a'>)})
    (C {<echo>})
    (C {<ipcs>} {<-C>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} {($ Id.VSub_DollarName '$KERNEL')} {<-a>})
    (C {<echo>})
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <'ipcs -T'>)})
    (C {<echo>})
    (C {<ipcs>} {<-C>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} {($ Id.VSub_DollarName '$KERNEL')} {<-T>})
    (C {<echo>})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [(command.Sentence child:(C {<false>}) terminator:<Id.Op_Semi _>)]
            )
          action: [
            (C {<echo>} 
              {(DQ <------------------------------------------------------------------------>)}
            )
            (C {<echo>} {(DQ <'w -dn'>)})
            (C {<echo>})
            (C {<w>} {<-M>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} {($ Id.VSub_DollarName '$KERNEL')} 
              {<-dn>}
            )
            (C {<echo>})
          ]
          spids: [1404 1409]
        )
      ]
    )
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <nfsstat>)})
    (C {<echo>})
    (C {<nfsstat>} {<-M>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} {($ Id.VSub_DollarName '$KERNEL')})
    (C {<echo>})
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <'netstat -s'>)})
    (C {<echo>})
    (C {<netstat>} {<-M>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} {($ Id.VSub_DollarName '$KERNEL')} 
      {<-s>}
    )
    (C {<echo>})
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <'netstat -m'>)})
    (C {<echo>})
    (C {<netstat>} {<-M>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} {($ Id.VSub_DollarName '$KERNEL')} 
      {<-m>}
    )
    (C {<echo>})
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <'netstat -anA'>)})
    (C {<echo>})
    (C {<netstat>} {<-M>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} {($ Id.VSub_DollarName '$KERNEL')} 
      {<-anA>}
    )
    (C {<echo>})
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <'netstat -aL'>)})
    (C {<echo>})
    (C {<netstat>} {<-M>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} {($ Id.VSub_DollarName '$KERNEL')} 
      {<-aL>}
    )
    (C {<echo>})
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <fstat>)})
    (C {<echo>})
    (C {<fstat>} {<-M>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} {($ Id.VSub_DollarName '$KERNEL')})
    (C {<echo>})
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <dmesg>)})
    (C {<echo>})
    (C {<dmesg>} {<-a>} {<-M>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} {($ Id.VSub_DollarName '$KERNEL')})
    (C {<echo>})
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <'kernel config'>)})
    (C {<echo>})
    (C {<config>} {<-x>} {($ Id.VSub_DollarName '$KERNEL')})
    (C {<echo>})
    (C {<echo>} {(DQ <------------------------------------------------------------------------>)})
    (C {<echo>} {(DQ <'ddb capture buffer'>)})
    (C {<echo>})
    (C {<ddb>} {<capture>} {<-M>} {($ Id.VSub_DollarName '$VMCORE')} {<-N>} 
      {($ Id.VSub_DollarName '$KERNEL')} {<print>}
    )
  ]
)