(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TAG)
          op: assign_op.Equal
          rhs: 
            {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<uname>} {<-p>})) <-> 
              (command_sub left_token:<Id.Left_Backtick '`'> child:(C {<uname>} {<-r>})) <.> (command_sub left_token:<Id.Left_Backtick '`'> child:(C {<uname>} {<-v>}))
            }
          spids: [4]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PACKDIR)
          op: assign_op.Equal
          rhs: 
            {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<uname>} {<-p>})) <'/'> 
              (command_sub left_token:<Id.Left_Backtick '`'> child:(C {<uname>} {<-r>})) <.> (command_sub left_token:<Id.Left_Backtick '`'> child:(C {<uname>} {<-v>}))
            }
          spids: [29]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:RC)
          op: assign_op.Equal
          rhs: {<'/usr/etc/rc.package'>}
          spids: [54]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CDDIR)
          op: assign_op.Equal
          rhs: {<PACKAGES>}
          spids: [57]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CDMP)
          op: assign_op.Equal
          rhs: {<'/mnt'>}
          spids: [60]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CDPACK)
          op: assign_op.Equal
          rhs: {(${ Id.VSub_Name CDMP) <'/install/packages'>}
          spids: [63]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CDSRC)
          op: assign_op.Equal
          rhs: {(${ Id.VSub_Name CDMP) <'/install/package-sources'>}
          spids: [69]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SRC)
          op: assign_op.Equal
          rhs: {<'/usr/bigsrc'>}
          spids: [75]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:LISTFILE)
          op: assign_op.Equal
          rhs: {<'/etc/packages-'> ($ Id.VSub_DollarName '$TAG')}
          spids: [78]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:LISTURL)
          op: assign_op.Equal
          rhs: 
            {<http> <Id.Lit_Colon ':'> <'//www.minix3.org/packages/'> ($ Id.VSub_DollarName '$PACKDIR') 
              <'/List'>
            }
          spids: [82]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TMPDIR)
          op: assign_op.Equal
          rhs: {<'/usr/tmp/packages'>}
          spids: [89]
        )
      ]
    )
    (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$TMPDIR')})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:URL1)
          op: assign_op.Equal
          rhs: 
            {<http> <Id.Lit_Colon ':'> <'//www.minix3.org/packages/'> ($ Id.VSub_DollarName '$PACKDIR')}
          spids: [98]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SRCURL1)
          op: assign_op.Equal
          rhs: {<http> <Id.Lit_Colon ':'> <'//www.minix3.org/software'>}
          spids: [104]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PATH)
          op: assign_op.Equal
          rhs: 
            {<'/bin'> <Id.Lit_Colon ':'> <'/sbin'> <Id.Lit_Colon ':'> <'/usr/bin'> <Id.Lit_Colon ':'> 
              <'/usr/sbin'>
            }
          spids: [109]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pack)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [118]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cdpackages)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [122]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:netpackages)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [126]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cdmounted)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [130]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName '$PAGER'))} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PAGER)
                  op: assign_op.Equal
                  rhs: {<more>}
                  spids: [149]
                )
              ]
            )
          ]
          spids: [135 147]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} {<-y>} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:YESMODE)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [171]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PAGER)
                  op: assign_op.Equal
                  rhs: {<cat>}
                  spids: [175]
                )
              ]
            )
          ]
          spids: [155 169]
        )
      ]
    )
    (command.ShFunction
      name: myread
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$YESMODE'))} 
                          {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  action: [(C {<echo>} {(DQ <all>)})]
                  spids: [188 199]
                )
              ]
              else_action: [(C {<read>} {<ans>}) (C {<echo>} {($ Id.VSub_DollarName '$ans')})]
            )
          ]
        )
    )
    (command.ShFunction
      name: myexit
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$cdmounted'))} 
                          {<-a>} {<-n>} {(DQ ($ Id.VSub_DollarName '$pack'))} {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [(C {<umount>} {($ Id.VSub_DollarName '$pack')}) (C {<true>})]
                    )
                  ]
                  spids: [232 253]
                )
              ]
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_Number '$1')}
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Pipeline
                  children: [
                    (command.Simple
                      words: [{<bunzip2>} {<--help>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_GreatAnd '2>&'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<1>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<grep>} {<usage>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  negated: F
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:BUNZIP2)
                  op: assign_op.Equal
                  rhs: {<bunzip2>}
                  spids: [299]
                )
              ]
            )
          ]
          spids: [279 297]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:BUNZIP2)
              op: assign_op.Equal
              rhs: {<smallbunzip2>}
              spids: [305]
            )
          ]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Pipeline
                  children: [
                    (C {<id>})
                    (command.Simple
                      words: [{<fgrep>} {(DQ <'uid=0('>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  negated: F
                )
              ]
            )
          action: [(C {<Id.Lit_Colon ':'>})]
          spids: [311 326]
        )
      ]
      else_action: [
        (C {<echo>} {(DQ <'Please run '> ($ Id.VSub_Number '$0') <' as root.'>)})
        (C {<myexit>} {<1>})
      ]
    )
    (C {<chmod>} {<700>} {($ Id.VSub_DollarName '$TMPDIR')})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$RC'))} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [(C {<.>} {(DQ ($ Id.VSub_DollarName '$RC'))})]
          spids: [355 367]
        )
      ]
    )
    (C {<cd>} {<'/'>})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(DQ ($ Id.VSub_DollarName '$SRC'))} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [(C {<mkdir>} {($ Id.VSub_DollarName '$SRC')}) (C {<myexit>} {<1>})]
            )
          ]
          spids: [386 400]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$cddrive'))} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:pack)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name cddrive) <p2>}
                  spids: [432]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.Simple
                  words: [{<umount>} {($ Id.VSub_DollarName '$pack')}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/dev/null'>}
                    )
                    (redir
                      op: <Id.Redir_GreatAnd '2>&'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<1>}
                    )
                  ]
                  do_fork: T
                )
                (C {<true>})
              ]
            )
            (C {<echo>} {(DQ <'Checking for CD in '> ($ Id.VSub_DollarName '$pack') <.>)})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          words: [
                            {<mount>}
                            {<-r>}
                            {($ Id.VSub_DollarName '$pack')}
                            {($ Id.VSub_DollarName '$CDMP')}
                          ]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '2>'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:fn)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$CDPACK') <'/List'>)}
                          spids: [479]
                        )
                      ]
                    )
                    (C {<echo>} {(DQ <Found.>)})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:cdmounted)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [493]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:cdpackages)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$fn')}
                          spids: [497]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} 
                                  {($ Id.VSub_DollarName '$cdpackages')} {<Id.Lit_RBracket ']'>}
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:cdpackages)
                                  op: assign_op.Equal
                                  rhs: {(DQ )}
                                  spids: [516]
                                )
                              ]
                            )
                            (C {<echo>} 
                              {
                                (DQ <'No package list found on CD in '> ($ Id.VSub_DollarName '$fn') 
                                  <.>
                                )
                              }
                            )
                          ]
                          spids: [501 514]
                        )
                      ]
                    )
                  ]
                  spids: [463 477]
                )
              ]
              else_action: [(C {<echo>} {(DQ <'Not found.'>)})]
            )
          ]
          spids: [418 430]
        )
      ]
      else_action: [
        (C {<echo>} 
          {
            (DQ <'Don\'t know where the install CD is. You can set it in '> 
              ($ Id.VSub_DollarName '$RC') <.>
            )
          }
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TMPF)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName '$TMPDIR') <'/.list.'> ($ Id.VSub_Dollar '$$')}
          spids: [557]
        )
      ]
    )
    (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$TMPF')})
    (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$TMPDIR') <'/.'> <Id.Lit_Star '*'>})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Subshell
                  child: 
                    (command.Simple
                      words: [{<Id.Lit_Colon ':'>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Less '<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {<'/dev/tcp'>}
                        )
                      ]
                      do_fork: T
                    )
                  redirects: [
                    (redir
                      op: <Id.Redir_Great '2>'>
                      loc: (redir_loc.Fd fd:2)
                      arg: {<'/dev/null'>}
                    )
                  ]
                )
              ]
            )
          action: [
            (C {<echo>} {<-n>} {(DQ <'Update package list from network? (Y/n) '>)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:y)
                  op: assign_op.Equal
                  rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<myread>}))}
                  spids: [608]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$y'))} 
                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<n>} {<-a>} {(DQ ($ Id.VSub_DollarName '$y'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<N>} 
                          {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} 
                      {(DQ <'Fetching package list from '> ($ Id.VSub_DollarName '$LISTURL') <.>)}
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (command.Simple
                          words: [{<urlget>} {($ Id.VSub_DollarName '$LISTURL')}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {($ Id.VSub_DollarName '$TMPF')}
                            )
                          ]
                          do_fork: T
                        )
                        (C {<mv>} {($ Id.VSub_DollarName '$TMPF')} {($ Id.VSub_DollarName '$LISTFILE')})
                        (C {<echo>} {(DQ <'Update not successful.'>)})
                      ]
                    )
                  ]
                  spids: [616 643]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:netpackages)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$LISTFILE')}
                  spids: [681]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} 
                          {(DQ ($ Id.VSub_DollarName '$netpackages'))} {<-o>} {<Id.KW_Bang '!'>} 
                          {
                            (command_sub
                              left_token: <Id.Left_Backtick '`'>
                              child: 
                                (command.Pipeline
                                  children: [
                                    (command.Simple
                                      words: [{<cat>} {(DQ ($ Id.VSub_DollarName '$netpackages'))}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '2>'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {<'/dev/null'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (C {<wc>} {<-l>})
                                    (C {<awk>} {(SQ <'{ print $1 }'>)})
                                  ]
                                  negated: F
                                )
                            )
                          } {<-gt>} {<1>} {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:netpackages)
                          op: assign_op.Equal
                          rhs: {(DQ )}
                          spids: [737]
                        )
                      ]
                    )
                  ]
                  spids: [685 735]
                )
              ]
            )
          ]
          spids: [583 597]
        )
      ]
      else_action: [(C {<echo>} {(DQ <'No working network detected.'>)})]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-n>} 
                  {(DQ ($ Id.VSub_DollarName '$netpackages'))} {<-a>} {<Id.KW_Bang '!'>} {<-n>} {(DQ ($ Id.VSub_DollarName '$cdpackages'))} {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [(C {<echo>} {(DQ <'No packages found.'>)}) (C {<myexit>} {<1>})]
          spids: [758 782]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$netpackages'))} {<-a>} 
                  {<-n>} {(DQ ($ Id.VSub_DollarName '$cdpackages'))} {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (C {<echo>} {<-n>} {(DQ <'Would you like to install from (C)D or (N)etwork? [C] '>)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:whichsrc)
                  op: assign_op.Equal
                  rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<myread>}))}
                  spids: [832]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$whichsrc'))} 
                          {<Id.Lit_Equals '='>} {<N>} {<-o>} {(DQ ($ Id.VSub_DollarName '$whichsrc'))} {<Id.Lit_Equals '='>} {<n>} {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  action: [(C {<unset>} {<cdpackages>})]
                  spids: [840 865]
                )
              ]
              else_action: [(C {<unset>} {<netpackages>})]
            )
          ]
          spids: [801 821]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$netpackages'))} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:source)
                  op: assign_op.Equal
                  rhs: {<net>}
                  spids: [898]
                )
              ]
            )
          ]
          spids: [884 896]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:source)
              op: assign_op.Equal
              rhs: {<cdrom>}
              spids: [903]
            )
          ]
        )
      ]
    )
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:cont) op:assign_op.Equal rhs:{<y>} spids:[909])]
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: 
        (condition.Shell
          commands: [
            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$cont'))} {<Id.Lit_Equals '='>} {<y>} 
              {<Id.Lit_RBracket ']'>}
            )
          ]
        )
      body: 
        (command.DoGroup
          children: [
            (C {<cd>} {($ Id.VSub_DollarName '$TMPDIR')})
            (C {<echo>} {(DQ )})
            (C {<echo>} 
              {
                (DQ <'Showing you a list of packages using '> ($ Id.VSub_DollarName '$PAGER') 
                  <'. Press q when'>
                )
              }
            )
            (C {<echo>} {(DQ <'you want to leave the list.'>)})
            (C {<echo>} {<-n>} {(DQ <'Press RETURN to continue..'>)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:xyzzy)
                  op: assign_op.Equal
                  rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<myread>}))}
                  spids: [964]
                )
              ]
            )
            (C {<echo>} {(DQ <'Package list:'>)})
            (command.Subshell
              child: 
                (command.CommandList
                  children: [
                    (C {<echo>} {(DQ <'No.|Package|Description'>)})
                    (command.Pipeline
                      children: [
                        (command.Subshell
                          child: 
                            (command.CommandList
                              children: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                                              {(DQ ($ Id.VSub_DollarName '$netpackages'))} {<-a>} {(DQ ($ Id.VSub_DollarName '$source'))} {<Id.Lit_Equals '='>} {<net>} {<Id.Lit_RBracket ']'>}
                                            )
                                          ]
                                        )
                                      action: [(C {<cat>} {($ Id.VSub_DollarName '$netpackages')})]
                                      spids: [991 1014]
                                    )
                                  ]
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                                              {(DQ ($ Id.VSub_DollarName '$cdpackages'))} {<-a>} {(DQ ($ Id.VSub_DollarName '$source'))} {<Id.Lit_Equals '='>} {<cdrom>} {<Id.Lit_RBracket ']'>}
                                            )
                                          ]
                                        )
                                      action: [(C {<cat>} {($ Id.VSub_DollarName '$cdpackages')})]
                                      spids: [1024 1047]
                                    )
                                  ]
                                )
                              ]
                            )
                        )
                        (C {<sort>} {<-f>} {<-t> (SQ <'|'>)} {<Id.Lit_Other '+'> <0>})
                        (C {<awk>} {(SQ <'{ n++; printf "%d|%s\\n", n, $0 }'>)})
                      ]
                      negated: F
                    )
                  ]
                )
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName '$TMPF')}
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:highest)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: <Id.Left_Backtick '`'>
                          child: 
                            (command.Pipeline
                              children: [
                                (C {<wc>} {<-l>} {($ Id.VSub_DollarName '$TMPF')})
                                (C {<awk>} {(SQ <'{ print $1 - 1 }'>)})
                              ]
                              negated: F
                            )
                        )
                      )
                    }
                  spids: [1089]
                )
              ]
            )
            (command.Pipeline
              children: [
                (command.Simple
                  words: [{<awk>} {<-F> (SQ <'|'>)} {(SQ <'{ printf "%3s %-15s %s\\n", $1, $2, $3 }'>)}]
                  redirects: [
                    (redir
                      op: <Id.Redir_Less '<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: {($ Id.VSub_DollarName '$TMPF')}
                    )
                  ]
                  do_fork: T
                )
                (C {($ Id.VSub_DollarName '$PAGER')})
              ]
              negated: F
            )
            (C {<echo>} {(DQ <'Format examples: \'3\', \'3,6\', \'3-9\', \'3-9,11-15\', \'all\''>)})
            (C {<echo>} {<-n>} {(DQ <'Package(s) to install (RETURN or q to exit)? '>)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:packnolist)
                  op: assign_op.Equal
                  rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<myread>}))}
                  spids: [1146]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$packnolist'))} 
                          {<Id.Lit_Equals '='>} {(DQ )} {<-o>} {(DQ ($ Id.VSub_DollarName '$packnolist'))} {<Id.Lit_Equals '='>} {(DQ <q>)} 
                          {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  action: [(C {<myexit>} {<0>})]
                  spids: [1154 1182]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$packnolist'))} 
                          {<Id.Lit_Equals '='>} {<all>} {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:packnolist)
                          op: assign_op.Equal
                          rhs: {<1-> ($ Id.VSub_DollarName '$highest')}
                          spids: [1209]
                        )
                      ]
                    )
                  ]
                  spids: [1192 1207]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: {(SQ <','>)}
                  spids: [1217]
                )
              ]
            )
            (C {<set>} {($ Id.VSub_DollarName '$packnolist')})
            (C {<echo>} {<-n>} {(DQ <'Get source(s) too? (y/N) '>)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:getsources)
                  op: assign_op.Equal
                  rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<myread>}))}
                  spids: [1237]
                )
              ]
            )
            (command.ForEach
              iter_name: packrange
              iter_words: [{($ Id.VSub_DollarName '$packnolist')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IFS)
                          op: assign_op.Equal
                          rhs: {(SQ <->)}
                          spids: [1261]
                        )
                      ]
                    )
                    (C {<set>} {($ Id.VSub_DollarName '$packrange')})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:start)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number '$1')}
                          spids: [1272]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} 
                                  {<Id.Lit_Equals '='>} {<2>} {<Id.Lit_RBracket ']'>}
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:end)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_Number '$2')}
                                  spids: [1291]
                                )
                              ]
                            )
                          ]
                          spids: [1276 1289]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:end)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_Number '$1')}
                              spids: [1297]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IFS)
                          op: assign_op.Equal
                          rhs: {(SQ <' '>)}
                          spids: [1304]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: packno
                      iter_words: [
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Simple
                                words: [
                                  {<awk>}
                                  {
                                    (DQ <'BEGIN { for(i='> ($ Id.VSub_DollarName '$start') <'; i<='> 
                                      ($ Id.VSub_DollarName '$end') <'; i++) { printf '>
                                    ) <Id.Lit_Other '%'> <d>
                                  }
                                  {(DQ <', i } }'>)}
                                ]
                                redirects: [
                                  (redir
                                    op: <Id.Redir_Less '<'>
                                    loc: (redir_loc.Fd fd:0)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                do_fork: T
                              )
                          )
                        }
                      ]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:ok)
                                  op: assign_op.Equal
                                  rhs: {<y>}
                                  spids: [1351]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:pat)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'^'> ($ Id.VSub_DollarName '$packno') <'|'>)}
                                  spids: [1355]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (C {<Id.Lit_LBracket '['>} 
                                          {
                                            (DQ 
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (C {<grep>} {<-c>} {($ Id.VSub_DollarName '$pat')} 
                                                    {($ Id.VSub_DollarName '$TMPF')}
                                                  )
                                              )
                                            )
                                          } {<-ne>} {<1>} {<Id.Lit_RBracket ']'>}
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (C {<Id.Lit_LBracket '['>} 
                                                  {(DQ ($ Id.VSub_DollarName '$packno'))} {<Id.Lit_RBracket ']'>}
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<echo>} 
                                              {
                                                (DQ ($ Id.VSub_DollarName '$packno') 
                                                  <': Wrong package number.'>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [1390 1401]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:ok)
                                          op: assign_op.Equal
                                          rhs: {<n>}
                                          spids: [1414]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1363 1388]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$ok')} 
                                          {<Id.Lit_Equals '='>} {<y>} {<Id.Lit_RBracket ']'>}
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:packagename)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (command_sub
                                                  left_token: <Id.Left_Backtick '`'>
                                                  child: 
                                                    (command.Pipeline
                                                      children: [
                                                        (C {<grep>} {($ Id.VSub_DollarName '$pat')} 
                                                          {($ Id.VSub_DollarName '$TMPF')}
                                                        )
                                                        (C {<awk>} {<-F> (SQ <'|'>)} 
                                                          {(SQ <'{ print $2 }'>)}
                                                        )
                                                      ]
                                                      negated: F
                                                    )
                                                )
                                              )
                                            }
                                          spids: [1438]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:file)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$packagename') <.tar.bz2>}
                                          spids: [1465]
                                        )
                                      ]
                                    )
                                    (C {<echo>} {(DQ )})
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (C {<Id.Lit_LBracket '['>} {<-f>} 
                                                  {($ Id.VSub_DollarName '$file')} {<-a>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName '$YESMODE'))} {<Id.Lit_RBracket ']'>}
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<echo>} 
                                              {
                                                (DQ <'Skipping '> ($ Id.VSub_DollarName '$file') 
                                                  <' - it\'s already in '> ($ Id.VSub_DollarName '$TMPDIR') <.>
                                                )
                                              }
                                            )
                                            (C {<echo>} 
                                              {
                                                (DQ 
                                                  <
'Remove that file if you want to re-retrieve and install this package.'
                                                  >
                                                )
                                              }
                                            )
                                          ]
                                          spids: [1478 1497]
                                        )
                                      ]
                                      else_action: [
                                        (command.Case
                                          to_match: {($ Id.VSub_DollarName '$source')}
                                          arms: [
                                            (case_arm
                                              pat_list: [{<net> <Id.Lit_Star '*'>}]
                                              action: [
                                                (C {<echo>} 
                                                  {
                                                    (DQ <'Retrieving '> 
                                                      ($ Id.VSub_DollarName '$packno') <' ('> ($ Id.VSub_DollarName '$packagename') <') from primary location into '> 
                                                      ($ Id.VSub_DollarName '$TMPDIR') <' ..'>
                                                    )
                                                  }
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:srcurl)
                                                      op: assign_op.Equal
                                                      rhs: {(DQ )}
                                                      spids: [1544]
                                                    )
                                                  ]
                                                )
                                                (command.If
                                                  arms: [
                                                    (if_arm
                                                      cond: 
                                                        (condition.Shell
                                                          commands: [
                                                            (command.Simple
                                                              words: [
                                                                {<urlget>}
                                                                {($ Id.VSub_DollarName '$URL1') <'/'> 
                                                                  ($ Id.VSub_DollarName '$file')
                                                                }
                                                              ]
                                                              redirects: [
                                                                (redir
                                                                  op: <Id.Redir_Great '>'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: 
                                                                    {($ Id.VSub_DollarName '$file')}
                                                                )
                                                              ]
                                                              do_fork: T
                                                            )
                                                          ]
                                                        )
                                                      action: [
                                                        (C {<echo>} 
                                                          {(DQ <'Retrieved ok. Installing ..'>)}
                                                        )
                                                        (command.AndOr
                                                          ops: [Id.Op_DAmp]
                                                          children: [
                                                            (C {<packit>} 
                                                              {($ Id.VSub_DollarName '$file')}
                                                            )
                                                            (C {<echo>} {<Installed>} {<ok.>})
                                                          ]
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:srcurl)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {($ Id.VSub_DollarName '$SRCURL1') 
                                                                  <'/'> ($ Id.VSub_DollarName '$file')
                                                                }
                                                              spids: [1583]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [1549 1561]
                                                    )
                                                  ]
                                                  else_action: [
                                                    (C {<echo>} {(DQ <'Retrieval failed.'>)})
                                                  ]
                                                )
                                                (command.If
                                                  arms: [
                                                    (if_arm
                                                      cond: 
                                                        (condition.Shell
                                                          commands: [
                                                            (C {<Id.Lit_LBracket '['>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName '$getsources')
                                                                )
                                                              } {<Id.Lit_Equals '='>} {<y>} {<-o>} {(DQ ($ Id.VSub_DollarName '$getsources'))} {<Id.Lit_Equals '='>} {<Y>} 
                                                              {<Id.Lit_RBracket ']'>}
                                                            )
                                                          ]
                                                        )
                                                      action: [
                                                        (command.Subshell
                                                          child: 
                                                            (command.CommandList
                                                              children: [
                                                                (command.AndOr
                                                                  ops: [Id.Op_DPipe]
                                                                  children: [
                                                                    (C {<cd>} 
                                                                      {($ Id.VSub_DollarName '$SRC')}
                                                                    )
                                                                    (C {<myexit>} {<2>})
                                                                  ]
                                                                )
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: srcfile
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (${ Id.VSub_Name 
packagename
                                                                          ) <-src.tar.bz2>
                                                                        }
                                                                      spids: [1641]
                                                                    )
                                                                  ]
                                                                )
                                                                (C {<echo>} 
                                                                  {
                                                                    (DQ <'Retrieving source from '> 
                                                                      ($ Id.VSub_DollarName '$srcurl') <' ..'>
                                                                    )
                                                                  }
                                                                )
                                                                (command.AndOr
                                                                  ops: [Id.Op_DPipe]
                                                                  children: [
                                                                    (command.Simple
                                                                      words: [
                                                                        {<urlget>}
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$srcurl'
                                                                          )
                                                                        }
                                                                      ]
                                                                      redirects: [
                                                                        (redir
                                                                          op: <Id.Redir_Great '>'>
                                                                          loc: (redir_loc.Fd fd:1)
                                                                          arg: 
                                                                            {
                                                                              ($ Id.VSub_DollarName 
'$srcfile'
                                                                              )
                                                                            }
                                                                        )
                                                                      ]
                                                                      do_fork: T
                                                                    )
                                                                    (C {<myexit>} {<3>})
                                                                  ]
                                                                )
                                                                (C {<echo>} 
                                                                  {
                                                                    (DQ <'Source retrieved in '> 
                                                                      ($ Id.VSub_DollarName '$SRC') <'/'> ($ Id.VSub_DollarName '$srcfile') <.>
                                                                    )
                                                                  }
                                                                )
                                                                (command.AndOr
                                                                  ops: [Id.Op_DPipe]
                                                                  children: [
                                                                    (command.Pipeline
                                                                      children: [
                                                                        (C 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$BUNZIP2'
                                                                            )
                                                                          } {<-dc>} {($ Id.VSub_DollarName '$srcfile')}
                                                                        )
                                                                        (command.Simple
                                                                          words: [{<tar>} {<xf>} {<->}]
                                                                          redirects: [
                                                                            (redir
                                                                              op: 
                                                                                <Id.Redir_Great '>'>
                                                                              loc: 
                                                                                (redir_loc.Fd
                                                                                  fd: 1
                                                                                )
                                                                              arg: {<'/dev/null'>}
                                                                            )
                                                                          ]
                                                                          do_fork: T
                                                                        )
                                                                      ]
                                                                      negated: F
                                                                    )
                                                                    (C {<myexit>} {<3>})
                                                                  ]
                                                                )
                                                                (C {<echo>} 
                                                                  {
                                                                    (DQ <'Source unpacked in '> 
                                                                      ($ Id.VSub_DollarName '$SRC') <.>
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                        )
                                                      ]
                                                      spids: [1601 1626]
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [1527 1529 1721 -1]
                                            )
                                            (case_arm
                                              pat_list: [{<cdrom> <Id.Lit_Star '*'>}]
                                              action: [
                                                (command.If
                                                  arms: [
                                                    (if_arm
                                                      cond: 
                                                        (condition.Shell
                                                          commands: [
                                                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                                                              {($ Id.VSub_DollarName '$CDPACK') <'/'> 
                                                                ($ Id.VSub_DollarName '$file')
                                                              } {<Id.Lit_RBracket ']'>}
                                                            )
                                                          ]
                                                        )
                                                      action: [
                                                        (C {<echo>} 
                                                          {
                                                            (DQ <'Installing from '> 
                                                              ($ Id.VSub_DollarName '$CDPACK') <'/'> ($ Id.VSub_DollarName '$file') <' ..'>
                                                            )
                                                          }
                                                        )
                                                        (command.AndOr
                                                          ops: [Id.Op_DAmp]
                                                          children: [
                                                            (C {<packit>} 
                                                              {($ Id.VSub_DollarName '$CDPACK') <'/'> 
                                                                ($ Id.VSub_DollarName '$file')
                                                              }
                                                            )
                                                            (C {<echo>} {<Installed>} {<ok.>})
                                                          ]
                                                        )
                                                      ]
                                                      spids: [1729 1742]
                                                    )
                                                  ]
                                                  else_action: [
                                                    (C {<echo>} 
                                                      {
                                                        (DQ ($ Id.VSub_DollarName '$CDPACK') <'/'> 
                                                          ($ Id.VSub_DollarName '$file') <' not found.'>
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:srcfile)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {($ Id.VSub_DollarName '$CDSRC') <'/'> 
                                                          (${ Id.VSub_Name packagename) <.tar.bz2>
                                                        }
                                                      spids: [1785]
                                                    )
                                                  ]
                                                )
                                                (command.If
                                                  arms: [
                                                    (if_arm
                                                      cond: 
                                                        (condition.Shell
                                                          commands: [
                                                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                                                              {($ Id.VSub_DollarName '$srcfile')} {<-a>} {(DQ ($ Id.VSub_DollarName '$getsources'))} {<Id.Lit_Equals '='>} {<y>} {<Id.Lit_RBracket ']'>}
                                                            )
                                                          ]
                                                        )
                                                      action: [
                                                        (command.Subshell
                                                          child: 
                                                            (command.CommandList
                                                              children: [
                                                                (command.AndOr
                                                                  ops: [Id.Op_DPipe]
                                                                  children: [
                                                                    (C {<cd>} 
                                                                      {($ Id.VSub_DollarName '$SRC')}
                                                                    )
                                                                    (C {<myexit>} {<2>})
                                                                  ]
                                                                )
                                                                (command.AndOr
                                                                  ops: [Id.Op_DPipe]
                                                                  children: [
                                                                    (command.Pipeline
                                                                      children: [
                                                                        (C 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$BUNZIP2'
                                                                            )
                                                                          } {<-dc>} {($ Id.VSub_DollarName '$srcfile')}
                                                                        )
                                                                        (C {<tar>} {<xf>} {<->})
                                                                      ]
                                                                      negated: F
                                                                    )
                                                                    (C {<myexit>} {<3>})
                                                                  ]
                                                                )
                                                                (C {<echo>} 
                                                                  {
                                                                    (DQ <'Source '> 
                                                                      ($ Id.VSub_DollarName 
'$srcfile'
                                                                      ) <' unpacked in '> ($ Id.VSub_DollarName '$SRC') <.>
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                        )
                                                      ]
                                                      spids: [1794 1815]
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [1724 1726 1870 -1]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1421 1434]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:cont)
                                      op: assign_op.Equal
                                      rhs: {<n>}
                                      spids: [1881]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                )
            )
          ]
        )
    )
    (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$TMPDIR') <'/.'> <Id.Lit_Star '*'>})
    (C {<myexit>} {<0>})
  ]
)