(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'PATH='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'PATH='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH)
          op: assign_op.Equal
          rhs: {<'/bin'> <Id.Lit_Colon ':'> <'/usr/bin'> <Id.Lit_Colon ':'> <'/usr/sbin'>}
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <display_usage>
      name: display_usage
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'VERSION_NUMBER='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'VERSION_NUMBER='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VERSION_NUMBER='> name:VERSION_NUMBER)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <grep>
                                more_env: []
                                words: [
                                  {<grep>}
                                  {(DQ <'['> <Id.Lit_Dollar '$'> <']FreeBSD:'>)}
                                  {($ Id.VSub_Number 0)}
                                ]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <cut>
                                more_env: []
                                words: [{<cut>} {<-d>} {(SQ <' '>)} {<-f>} {<4>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _>]
                          )
                        right: <Id.Backtick_Right '`'>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Number 0>
                      var_name: 0
                      suffix_op: 
                        (suffix_op.Unary
                          op: <Id.VOp1_DPound '##'>
                          arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                        )
                      right: <Id.Right_DollarBrace '}'>
                    ) <' version '> (${ Id.VSub_Name VERSION_NUMBER)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'Usage: '> 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Number 0>
                      var_name: 0
                      suffix_op: 
                        (suffix_op.Unary
                          op: <Id.VOp1_DPound '##'>
                          arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                        )
                      right: <Id.Right_DollarBrace '}'>
                    ) <' [-m /path] [-t /path] [-A arch] [-F <make args>] [-D /path]'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'Options:'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {(DQ <'  -m /path/directory  Specify location of source to do the make in'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'  -t /path/directory  Specify temp root directory'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {(DQ <'  -A architecture  Alternative architecture name to pass to make'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {(DQ <'  -F <arguments for make> Specify what to put on the make command line'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {(SQ <'  -D /path/directory  Specify the destination directory to install files to'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(SQ )}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TEMPROOT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TEMPROOT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEMPROOT='> name:TEMPROOT)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <mktemp>
                    more_env: [(EnvPair left:<Id.Lit_VarLike 'TMPDIR='> name:TMPDIR val:{<'/var/tmp'>})]
                    words: [{<mktemp>} {<-d>} {<-t>} {<temproot>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'MTREEDB='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'MTREEDB='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MTREEDB='> name:MTREEDB)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name MTREEDB>
                var_name: MTREEDB
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VTest_ColonHyphen _>
                    arg_word: {<Id.Lit_Slash '/'> <var> <Id.Lit_Slash '/'> <db>}
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'MTREEFILE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'MTREEFILE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MTREEFILE='> name:MTREEFILE)
          op: assign_op.Equal
          rhs: {(DQ (${ Id.VSub_Name MTREEDB) <'/mergemaster.mtree'>)}
        )
      ]
      redirects: []
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: 
        (condition.Shell
          commands: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <getopts>
                  more_env: []
                  words: [{<getopts>} {(DQ <'m:t:A:F:D:h'>)} {<COMMAND_LINE_ARGUMENT>}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
          ]
        )
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ (${ Id.VSub_Name COMMAND_LINE_ARGUMENT))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <m>
                  pattern: (pat.Words words:[{<m>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'SOURCEDIR='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'SOURCEDIR='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SOURCEDIR='> name:SOURCEDIR)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name OPTARG)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <t>
                  pattern: (pat.Words words:[{<t>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'TEMPROOT='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'TEMPROOT='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEMPROOT='> name:TEMPROOT)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name OPTARG)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <A>
                  pattern: (pat.Words words:[{<A>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ARCHSTRING='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ARCHSTRING='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARCHSTRING='> name:ARCHSTRING)
                          op: assign_op.Equal
                          rhs: {(SQ <'TARGET_ARCH='>) (${ Id.VSub_Name OPTARG)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <F>
                  pattern: (pat.Words words:[{<F>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'MM_MAKE_ARGS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'MM_MAKE_ARGS='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'MM_MAKE_ARGS='>
                              name: MM_MAKE_ARGS
                            )
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name OPTARG))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <D>
                  pattern: (pat.Words words:[{<D>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'DESTDIR='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'DESTDIR='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DESTDIR='> name:DESTDIR)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name OPTARG)}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <h>
                  pattern: (pat.Words words:[{<h>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <display_usage>
                      more_env: []
                      words: [{<display_usage>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<0>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(SQ )}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <display_usage>
                      more_env: []
                      words: [{<display_usage>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SOURCEDIR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SOURCEDIR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SOURCEDIR='> name:SOURCEDIR)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name SOURCEDIR>
                var_name: SOURCEDIR
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VTest_ColonHyphen _>
                    arg_word: {<Id.Lit_Slash '/'> <usr> <Id.Lit_Slash '/'> <src>}
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {<Id.KW_Bang '!'>}
                        {<-f>}
                        {(${ Id.VSub_Name SOURCEDIR) <'/Makefile.inc1'>}
                        {<-a>}
                        {<-f>}
                        {(${ Id.VSub_Name SOURCEDIR) <'/../Makefile.inc1'>}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {(DQ <' *** The source directory you specified ('> (${ Id.VSub_Name SOURCEDIR) <')'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'     will be reset to '> (${ Id.VSub_Name SOURCEDIR) <'/..'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(SQ )}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <sleep>
              more_env: []
              words: [{<sleep>} {<3>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SOURCEDIR='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SOURCEDIR='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SOURCEDIR='> name:SOURCEDIR)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name SOURCEDIR) <'/..'>}
                )
              ]
              redirects: []
            )
          ]
          spids: [368 395]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'objp='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'objp='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'objp='> name:objp)
          op: assign_op.Equal
          rhs: {(${ Id.VSub_Name MAKEOBJDIRPREFIX)}
        )
      ]
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <Id.Lit_LBracket '['>
          more_env: []
          words: [{<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Name objp))} {<Id.Lit_RBracket ']'>}]
          redirects: []
          do_fork: T
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'objp='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'objp='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'objp='> name:objp)
              op: assign_op.Equal
              rhs: {<'/usr/obj'>}
            )
          ]
          redirects: []
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'legacydir='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'legacydir='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'legacydir='> name:legacydir)
          op: assign_op.Equal
          rhs: {(${ Id.VSub_Name objp) (${ Id.VSub_Name SOURCEDIR) <'/tmp/legacy'>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'legacypath='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'legacypath='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'legacypath='> name:legacypath)
          op: assign_op.Equal
          rhs: 
            {(${ Id.VSub_Name legacydir) <'/usr/sbin'> <Id.Lit_Colon ':'> (${ Id.VSub_Name legacydir) 
              <'/usr/bin'> <Id.Lit_Colon ':'> (${ Id.VSub_Name legacydir) <'/bin'>
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'MM_MAKE_ARGS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'MM_MAKE_ARGS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MM_MAKE_ARGS='> name:MM_MAKE_ARGS)
          op: assign_op.Equal
          rhs: 
            {
              (DQ (${ Id.VSub_Name MM_MAKE_ARGS) <' PATH='> (${ Id.VSub_Name legacypath) <':'> 
                (${ Id.VSub_Name PATH)
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'MM_MAKE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'MM_MAKE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MM_MAKE='> name:MM_MAKE)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'make '> (${ Id.VSub_Name ARCHSTRING) <' '> (${ Id.VSub_Name MM_MAKE_ARGS) <' -m '> 
                (${ Id.VSub_Name SOURCEDIR) <'/share/mk'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <delete_temproot>
      name: delete_temproot
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<-rf>} {(DQ (${ Id.VSub_Name TEMPROOT))}]
              redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <chflags>
              more_env: []
              words: [{<chflags>} {<-R>} {<0>} {(DQ (${ Id.VSub_Name TEMPROOT))}]
              redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {<-rf>} {(DQ (${ Id.VSub_Name TEMPROOT))}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <Id.Lit_LBracket '['>
          more_env: []
          words: [
            {<Id.Lit_LBracket '['>}
            {<-d>}
            {(DQ (${ Id.VSub_Name TEMPROOT))}
            {<Id.Lit_RBracket ']'>}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <delete_temproot>
          more_env: []
          words: [{<delete_temproot>}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [
        {<echo>}
        {(DQ <'*** Creating the temporary root environment in '> (${ Id.VSub_Name TEMPROOT))}
      ]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <mkdir>
                      more_env: []
                      words: [{<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name TEMPROOT))}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <' *** '> (${ Id.VSub_Name TEMPROOT) <' ready for use'>)}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [607 620]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {<Id.KW_Bang '!'>}
                        {<-d>}
                        {(DQ (${ Id.VSub_Name TEMPROOT))}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(SQ )}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'  *** FATAL ERROR: Cannot create '> (${ Id.VSub_Name TEMPROOT))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(SQ )}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [636 653]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [
        {<echo>}
        {(DQ <' *** Creating and populating directory structure in '> (${ Id.VSub_Name TEMPROOT))}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<echo> more_env:[] words:[{<echo>} {(SQ )}] redirects:[] do_fork:T)
    (command.AndOr
      children: [
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <cd>
                  more_env: []
                  words: [{<cd>} {(${ Id.VSub_Name SOURCEDIR)}]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [{<echo>} {(DQ <'*** Cannot cd to '> (${ Id.VSub_Name SOURCEDIR))}]
                          redirects: []
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ (${ Id.VSub_Name DESTDIR))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: []
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.Left_DollarBrace '${'>
                      more_env: []
                      words: [
                        {(${ Id.VSub_Name MM_MAKE)}
                        {<Id.Lit_VarLike 'DESTDIR='> (${ Id.VSub_Name DESTDIR)}
                        {<distrib-dirs>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'od='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'od='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'od='> name:od)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name TEMPROOT) <'/usr/obj'>}
                )
              ]
              redirects: []
            )
            (command.Sentence
              child: 
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <Id.Left_DollarBrace '${'>
                      more_env: []
                      words: [
                        {(${ Id.VSub_Name MM_MAKE)}
                        {<Id.Lit_VarLike 'DESTDIR='> (${ Id.VSub_Name TEMPROOT)}
                        {<distrib-dirs>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <Id.Left_DollarBrace '${'>
                      more_env: [
                        (EnvPair
                          left: <Id.Lit_VarLike 'MAKEOBJDIRPREFIX='>
                          name: MAKEOBJDIRPREFIX
                          val: {($ Id.VSub_DollarName od)}
                        )
                      ]
                      words: [
                        {(${ Id.VSub_Name MM_MAKE)}
                        {<_obj>}
                        {<Id.Lit_VarLike 'SUBDIR_OVERRIDE='> <etc>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <Id.Left_DollarBrace '${'>
                      more_env: [
                        (EnvPair
                          left: <Id.Lit_VarLike 'MAKEOBJDIRPREFIX='>
                          name: MAKEOBJDIRPREFIX
                          val: {($ Id.VSub_DollarName od)}
                        )
                      ]
                      words: [
                        {(${ Id.VSub_Name MM_MAKE)}
                        {<everything>}
                        {<Id.Lit_VarLike 'SUBDIR_OVERRIDE='> <etc>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <Id.Left_DollarBrace '${'>
                      more_env: [
                        (EnvPair
                          left: <Id.Lit_VarLike 'MAKEOBJDIRPREFIX='>
                          name: MAKEOBJDIRPREFIX
                          val: {($ Id.VSub_DollarName od)}
                        )
                      ]
                      words: [
                        {(${ Id.VSub_Name MM_MAKE)}
                        {<Id.Lit_VarLike 'DESTDIR='> (${ Id.VSub_Name TEMPROOT)}
                        {<distribution>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(SQ )}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {
                      (DQ <'  *** FATAL ERROR: Cannot \'cd\' to '> (${ Id.VSub_Name SOURCEDIR) 
                        <' and install files to'>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ <'      the temproot environment'>)}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(SQ )}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Sentence
              child: (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              terminator: <Id.Op_Semi _>
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [
        {<rm>}
        {<-f>}
        {(${ Id.VSub_Name TEMPROOT) <'/etc/'> <Id.Lit_Star '*'> <.db>}
        {(${ Id.VSub_Name TEMPROOT) <'/etc/passwd'>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <find>
      more_env: []
      words: [{<find>} {(${ Id.VSub_Name TEMPROOT) <'/usr/obj'>} {<-type>} {<f>} {<-delete>}]
      redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
      do_fork: T
    )
    (command.Simple
      blame_tok: <find>
      more_env: []
      words: [{<find>} {(${ Id.VSub_Name TEMPROOT) <'/usr'>} {<-type>} {<l>} {<-delete>}]
      redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
      do_fork: T
    )
    (command.Simple
      blame_tok: <find>
      more_env: []
      words: [{<find>} {(${ Id.VSub_Name TEMPROOT)} {<-type>} {<f>} {<-size>} {<0>} {<-delete>}]
      redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
      do_fork: T
    )
    (command.Simple
      blame_tok: <find>
      more_env: []
      words: [{<find>} {<-d>} {(${ Id.VSub_Name TEMPROOT)} {<-type>} {<d>} {<-empty>} {<-delete>}]
      redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'MTREENEW='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'MTREENEW='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MTREENEW='> name:MTREENEW)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <mktemp>
                    more_env: []
                    words: [{<mktemp>} {<-t>} {<mergemaster.mtree>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <mtree>
      more_env: []
      words: [
        {<mtree>}
        {<-nci>}
        {<-p>}
        {(${ Id.VSub_Name TEMPROOT)}
        {<-k>}
        {<size> <Id.Lit_Comma ','> <md5digest>}
      ]
      redirects: [
        (Redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {(${ Id.VSub_Name MTREENEW)}
        )
        (Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})
      ]
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {<-s>}
                        {(DQ (${ Id.VSub_Name MTREENEW))}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'*** Saving mtree database for future upgrades'>)}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <test>
                  more_env: []
                  words: [{<test>} {<-e>} {(DQ (${ Id.VSub_Name DESTDIR) (${ Id.VSub_Name MTREEFILE))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <unlink>
                  more_env: []
                  words: [{<unlink>} {(${ Id.VSub_Name DESTDIR) (${ Id.VSub_Name MTREEFILE)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <mv>
              more_env: []
              words: [
                {<mv>}
                {(${ Id.VSub_Name MTREENEW)}
                {(${ Id.VSub_Name DESTDIR) (${ Id.VSub_Name MTREEFILE)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          spids: [1033 1048]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <delete_temproot>
      more_env: []
      words: [{<delete_temproot>}]
      redirects: []
      do_fork: T
    )
    (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
)