(command.CommandList
  children: [
    (C {(set)} {(-e)})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:VERSION spids:[8])
          op: Equal
          rhs: {(SQ <'@VERSION@'>)}
          spids: [8]
        )
      ]
      spids: [8]
    )
    (command.AndOr
      ops: [Op_DPipe]
      children: [(C {(unset)} {(TMP)} {(TEMP)} {(TMPDIR)}) (C {(true)})]
    )
    (C {(export)} {(PATH)})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$DEBOOTSTRAP_DIR'))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-x)} {(/debootstrap/debootstrap)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:DEBOOTSTRAP_DIR spids:[69])
                          op: Equal
                          rhs: {(/debootstrap)}
                          spids: [69]
                        )
                      ]
                      spids: [69]
                    )
                  ]
                  spids: [16777215 66]
                )
              ]
              else_action: [
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:DEBOOTSTRAP_DIR spids:[76])
                      op: Equal
                      rhs: {(/usr/share/debootstrap)}
                      spids: [76]
                    )
                  ]
                  spids: [76]
                )
              ]
              spids: [73 80]
            )
          ]
          spids: [16777215 52]
        )
      ]
      spids: [16777215 82]
    )
    (C {(.)} {($ VSub_DollarName '$DEBOOTSTRAP_DIR') (/functions)})
    (command.SimpleCommand
      words: [{(exec)}]
      redirects: [(redir.Redir op:<Redir_GreatAnd '4>&'> fd:4 arg_word:{(1)})]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:LANG spids:[96]) op:Equal rhs:{(C)} spids:[96])]
      spids: [96]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:USE_COMPONENTS spids:[99])
          op: Equal
          rhs: {(main)}
          spids: [99]
        )
      ]
      spids: [99]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:KEYRING spids:[102])
          op: Equal
          rhs: {(DQ )}
          spids: [102]
        )
      ]
      spids: [102]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:DISABLE_KEYRING spids:[106])
          op: Equal
          rhs: {(DQ )}
          spids: [106]
        )
      ]
      spids: [106]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:FORCE_KEYRING spids:[110])
          op: Equal
          rhs: {(DQ )}
          spids: [110]
        )
      ]
      spids: [110]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:VARIANT spids:[114])
          op: Equal
          rhs: {(DQ )}
          spids: [114]
        )
      ]
      spids: [114]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:MERGED_USR spids:[118])
          op: Equal
          rhs: {(DQ (no))}
          spids: [118]
        )
      ]
      spids: [118]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:ARCH spids:[123])
          op: Equal
          rhs: {(DQ )}
          spids: [123]
        )
      ]
      spids: [123]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:HOST_ARCH spids:[127])
          op: Equal
          rhs: {(DQ )}
          spids: [127]
        )
      ]
      spids: [127]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:HOST_OS spids:[131])
          op: Equal
          rhs: {(DQ )}
          spids: [131]
        )
      ]
      spids: [131]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:KEEP_DEBOOTSTRAP_DIR spids:[135])
          op: Equal
          rhs: {(DQ )}
          spids: [135]
        )
      ]
      spids: [135]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:USE_DEBIANINSTALLER_INTERACTION spids:[139])
          op: Equal
          rhs: {(DQ )}
          spids: [139]
        )
      ]
      spids: [139]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:SECOND_STAGE_ONLY spids:[143])
          op: Equal
          rhs: {(DQ )}
          spids: [143]
        )
      ]
      spids: [143]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:PRINT_DEBS spids:[147])
          op: Equal
          rhs: {(DQ )}
          spids: [147]
        )
      ]
      spids: [147]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:CHROOTDIR spids:[151])
          op: Equal
          rhs: {(DQ )}
          spids: [151]
        )
      ]
      spids: [151]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:MAKE_TARBALL spids:[155])
          op: Equal
          rhs: {(DQ )}
          spids: [155]
        )
      ]
      spids: [155]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:EXTRACTOR_OVERRIDE spids:[159])
          op: Equal
          rhs: {(DQ )}
          spids: [159]
        )
      ]
      spids: [159]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:UNPACK_TARBALL spids:[163])
          op: Equal
          rhs: {(DQ )}
          spids: [163]
        )
      ]
      spids: [163]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:ADDITIONAL spids:[167])
          op: Equal
          rhs: {(DQ )}
          spids: [167]
        )
      ]
      spids: [167]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:EXCLUDE spids:[171])
          op: Equal
          rhs: {(DQ )}
          spids: [171]
        )
      ]
      spids: [171]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:VERBOSE spids:[175])
          op: Equal
          rhs: {(DQ )}
          spids: [175]
        )
      ]
      spids: [175]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:CERTIFICATE spids:[179])
          op: Equal
          rhs: {(DQ )}
          spids: [179]
        )
      ]
      spids: [179]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:CHECKCERTIF spids:[183])
          op: Equal
          rhs: {(DQ )}
          spids: [183]
        )
      ]
      spids: [183]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:PRIVATEKEY spids:[187])
          op: Equal
          rhs: {(DQ )}
          spids: [187]
        )
      ]
      spids: [187]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:DEF_MIRROR spids:[192])
          op: Equal
          rhs: {(DQ ('http://deb.debian.org/debian'))}
          spids: [192]
        )
      ]
      spids: [192]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:DEF_HTTPS_MIRROR spids:[197])
          op: Equal
          rhs: {(DQ ('https://deb.debian.org/debian'))}
          spids: [197]
        )
      ]
      spids: [197]
    )
    (C {(export)} {(LANG)} {(USE_COMPONENTS)})
    (C {(umask)} {(022)})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:RESOLVE_DEPS spids:[225])
          op: Equal
          rhs: {(true)}
          spids: [225]
        )
      ]
      spids: [225]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:WHAT_TO_DO spids:[229])
          op: Equal
          rhs: {(DQ ('finddebs dldebs first_stage second_stage'))}
          spids: [229]
        )
      ]
      spids: [229]
    )
    (command.FuncDef
      name: am_doing_phase
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: 
                (command.Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:x spids:[248])
                      op: Equal
                      spids: [248]
                    )
                  ]
                  spids: [246]
                )
              terminator: <Op_Semi ';'>
            )
            (command.ForEach
              iter_name: x
              iter_words: [{(DQ ($ VSub_At '$@'))}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.Pipeline
                                  children: [
                                    (C {(echo)} {(DQ (' ') ($ VSub_DollarName '$WHAT_TO_DO') (' '))})
                                    (C {(grep)} {(-q)} {(DQ (' ') ($ VSub_DollarName '$x') (' '))})
                                  ]
                                  negated: F
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (command.Sentence
                              child: 
                                (command.ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(0)}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [16777215 289]
                        )
                      ]
                      spids: [16777215 296]
                    )
                  ]
                  spids: [263 299]
                )
              spids: [257 261]
            )
            (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [239]
        )
      spids: [234 238]
    )
    (command.FuncDef
      name: usage_err
      body: 
        (command.BraceGroup
          children: [
            (C {(info)} {(USAGE1)} {(DQ ('usage: [OPTION]... <suite> <target> [<mirror> [<script>]]'))})
            (C {(info)} {(USAGE2)} 
              {
                (DQ ('Try ') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) 
                  (word_part.BracedVarSub
                    token: <VSub_Number 0>
                    suffix_op: (suffix_op.StringUnary op_id:VOp1_DPound arg_word:{('*') (Lit_Slash /)})
                    spids: [336 341]
                  ) (" --help' for more information.")
                )
              }
            )
            (C {(error)} {(DQ ($ VSub_At '$@'))})
          ]
          spids: [317]
        )
      spids: [313 316]
    )
    (command.FuncDef
      name: usage
      body: 
        (command.BraceGroup
          children: [
            (C {(echo)} 
              {
                (DQ ('Usage: ') 
                  (word_part.BracedVarSub
                    token: <VSub_Number 0>
                    suffix_op: (suffix_op.StringUnary op_id:VOp1_DPound arg_word:{('*') (Lit_Slash /)})
                    spids: [366 371]
                  ) (' [OPTION]... <suite> <target> [<mirror> [<script>]]')
                )
              }
            )
            (C {(echo)} {(DQ ('Bootstrap a Debian base system into a target directory.'))})
            (C {(echo)})
            (command.SimpleCommand
              words: [{(cat)}]
              redirects: [
                (redir.HereDoc
                  op: <Redir_DLess '<<'>
                  fd: 16777215
                  here_begin: {(EOF)}
                  here_end_span_id: 431
                  stdin_parts: [
                    ('      --help                 display this help and exit\n')
                    ('      --version              display version information and exit\n')
                    ("      --verbose              don't turn off the output of wget\n")
                    ('\n')
                    (
"      --download-only        download packages, but don't perform installation\n"
                    )
                    ('      --print-debs           print the packages to be installed, and exit\n')
                    ('\n')
                    (
'      --arch=A               set the architecture to install (use if no dpkg)\n'
                    )
                    ('                               [ --arch=powerpc ]\n')
                    ('\n')
                    (
'      --include=A,B,C        adds specified names to the list of base packages\n'
                    )
                    ('      --exclude=A,B,C        removes specified packages from the list\n')
                    (
'      --components=A,B,C     use packages from the listed components of the\n'
                    )
                    ('                             archive\n')
                    ('      --variant=X            use variant X of the bootstrap scripts\n')
                    (
'                             (currently supported variants: buildd, fakechroot,\n'
                    )
                    ('                              minbase)\n')
                    ('      --merged-usr           make /{bin,sbin,lib}/ symlinks to /usr/\n')
                    ('      --keyring=K            check Release files against keyring K\n')
                    ('      --no-check-gpg         avoid checking Release file signatures\n')
                    ('      --force-check-gpg      force checking Release file signatures\n')
                    (
'                             (also disables automatic fallback to HTTPS in case\n'
                    )
                    ('                             of a missing keyring), aborting otherwise\n')
                    (
"      --no-resolve-deps      don't try to resolve dependencies automatically\n"
                    )
                    ('\n')
                    ('      --unpack-tarball=T     acquire .debs from a tarball instead of http\n')
                    (
'      --make-tarball=T       download .debs and create a tarball (tgz format)\n'
                    )
                    ('      --second-stage-target=DIR\n')
                    (
'                             Run second stage in a subdirectory instead of root\n'
                    )
                    ('                               (can be used to create a foreign chroot)\n')
                    ('                               (requires --second-stage)\n')
                    ('      --extractor=TYPE       override automatic .deb extractor selection\n')
                    ('                               (supported: ')
                    ($ VSub_DollarName '$EXTRACTORS_SUPPORTED')
                    (')\n')
                    (
'      --debian-installer     used for internal purposes by debian-installer\n'
                    )
                    ('      --private-key=file     read the private key from file\n')
                    (
'      --certificate=file     use the client certificate stored in file (PEM)\n'
                    )
                    (
'      --no-check-certificate do not check certificate against certificate authorities\n'
                    )
                  ]
                )
              ]
            )
          ]
          spids: [359]
        )
      spids: [355 358]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$PKGDETAILS'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(error)} {(1)} {(NO_PKGDETAILS)} 
              {
                (DQ 
                  (
'No pkgdetails available; either install perl, or build pkgdetails.c from the base-installer source package'
                  )
                )
              }
            )
          ]
          spids: [16777215 452]
        )
      ]
      spids: [16777215 465]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(KW_Bang '!') (Lit_Other '=')} {(0)} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.WhileUntil
              keyword: <KW_While while>
              cond: [(command.Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)]
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {(DQ ($ VSub_Number '$1'))}
                      arms: [
                        (case_arm
                          pat_list: [{(--help)}]
                          action: [
                            (C {(usage)})
                            (command.ControlFlow
                              token: <ControlFlow_Exit exit>
                              arg_word: {(0)}
                            )
                          ]
                          spids: [508 509 520 16777215]
                        )
                        (case_arm
                          pat_list: [{(--version)}]
                          action: [
                            (C {(echo)} {(DQ ('debootstrap ') ($ VSub_DollarName '$VERSION'))})
                            (command.ControlFlow
                              token: <ControlFlow_Exit exit>
                              arg_word: {(0)}
                            )
                          ]
                          spids: [523 524 540 16777215]
                        )
                        (case_arm
                          pat_list: [{(--debian-installer)}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (command.Subshell
                                              child: 
                                                (command.SimpleCommand
                                                  words: [{(echo)} {(-n)} {(DQ )}]
                                                  redirects: [
                                                    (redir.Redir
                                                      op: <Redir_GreatAnd '>&'>
                                                      fd: 16777215
                                                      arg_word: {(3)}
                                                    )
                                                  ]
                                                )
                                              redirects: [
                                                (redir.Redir
                                                  op: <Redir_Great '2>'>
                                                  fd: 2
                                                  arg_word: {(/dev/null)}
                                                )
                                              ]
                                              spids: [551 561]
                                            )
                                          ]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(error)} {(1)} {(ARG_DIBYHAND)} 
                                      {
                                        (DQ 
                                          (
"If running debootstrap by hand, don't use --debian-installer"
                                          )
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 567]
                                )
                              ]
                              spids: [16777215 581]
                            )
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (lhs_expr.LhsName
                                      name: USE_DEBIANINSTALLER_INTERACTION
                                      spids: [584]
                                    )
                                  op: Equal
                                  rhs: {(yes)}
                                  spids: [584]
                                )
                              ]
                              spids: [584]
                            )
                            (C {(shift)})
                          ]
                          spids: [543 544 591 16777215]
                        )
                        (case_arm
                          pat_list: [{(--foreign)}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$PRINT_DEBS'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:WHAT_TO_DO spids:[619])
                                          op: Equal
                                          rhs: {(DQ ('finddebs dldebs first_stage'))}
                                          spids: [619]
                                        )
                                      ]
                                      spids: [619]
                                    )
                                  ]
                                  spids: [16777215 616]
                                )
                              ]
                              spids: [16777215 625]
                            )
                            (C {(shift)})
                          ]
                          spids: [594 595 631 16777215]
                        )
                        (case_arm
                          pat_list: [{(--second-stage)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:WHAT_TO_DO spids:[638])
                                  op: Equal
                                  rhs: {(DQ (second_stage))}
                                  spids: [638]
                                )
                              ]
                              spids: [638]
                            )
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:SECOND_STAGE_ONLY spids:[644])
                                  op: Equal
                                  rhs: {(true)}
                                  spids: [644]
                                )
                              ]
                              spids: [644]
                            )
                            (C {(shift)})
                          ]
                          spids: [634 635 651 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--second-stage-target)}
                            {(--second-stage-target) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} 
                                          {(DQ ($ VSub_DollarName '$SECOND_STAGE_ONLY'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(error)} {(1)} {(STAGE2ONLY)} 
                                      {(DQ ('option %s only applies in the second stage'))} {(DQ ($ VSub_Number '$1'))}
                                    )
                                  ]
                                  spids: [16777215 682]
                                )
                              ]
                              spids: [16777215 700]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--second-stage-target))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:CHROOTDIR spids:[732])
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [732]
                                        )
                                      ]
                                      spids: [732]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 729]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--second-stage-target=')}
                                                  )
                                                spids: [755 759]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:CHROOTDIR spids:[768])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--second-stage-target=')}
                                                    )
                                                  spids: [770 774]
                                                )
                                              )
                                            }
                                          spids: [768]
                                        )
                                      ]
                                      spids: [768]
                                    )
                                    (C {(shift)})
                                  ]
                                  spids: [743 765]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument: %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [781 799]
                            )
                          ]
                          spids: [654 660 802 16777215]
                        )
                        (case_arm
                          pat_list: [{(--print-debs)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:WHAT_TO_DO spids:[809])
                                  op: Equal
                                  rhs: {(DQ ('finddebs printdebs kill_target'))}
                                  spids: [809]
                                )
                              ]
                              spids: [809]
                            )
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:PRINT_DEBS spids:[815])
                                  op: Equal
                                  rhs: {(true)}
                                  spids: [815]
                                )
                              ]
                              spids: [815]
                            )
                            (C {(shift)})
                          ]
                          spids: [805 806 822 16777215]
                        )
                        (case_arm
                          pat_list: [{(--download-only)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:WHAT_TO_DO spids:[829])
                                  op: Equal
                                  rhs: {(DQ ('finddebs dldebs'))}
                                  spids: [829]
                                )
                              ]
                              spids: [829]
                            )
                            (C {(shift)})
                          ]
                          spids: [825 826 838 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--make-tarball)}
                            {(--make-tarball) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:WHAT_TO_DO spids:[850])
                                  op: Equal
                                  rhs: {(DQ ('finddebs dldebs maketarball kill_target'))}
                                  spids: [850]
                                )
                              ]
                              spids: [850]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--make-tarball))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:MAKE_TARBALL spids:[885])
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [885]
                                        )
                                      ]
                                      spids: [885]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 882]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--make-tarball=')}
                                                  )
                                                spids: [908 912]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:MAKE_TARBALL spids:[921])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--make-tarball=')}
                                                    )
                                                  spids: [923 927]
                                                )
                                              )
                                            }
                                          spids: [921]
                                        )
                                      ]
                                      spids: [921]
                                    )
                                    (C {(shift)})
                                  ]
                                  spids: [896 918]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [934 952]
                            )
                          ]
                          spids: [841 847 955 16777215]
                        )
                        (case_arm
                          pat_list: [{(--resolve-deps)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:RESOLVE_DEPS spids:[966])
                                  op: Equal
                                  rhs: {(true)}
                                  spids: [966]
                                )
                              ]
                              spids: [966]
                            )
                            (C {(shift)})
                          ]
                          spids: [958 959 973 16777215]
                        )
                        (case_arm
                          pat_list: [{(--no-resolve-deps)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:RESOLVE_DEPS spids:[980])
                                  op: Equal
                                  rhs: {(false)}
                                  spids: [980]
                                )
                              ]
                              spids: [980]
                            )
                            (C {(shift)})
                          ]
                          spids: [976 977 987 16777215]
                        )
                        (case_arm
                          pat_list: [{(--keep-debootstrap-dir)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:KEEP_DEBOOTSTRAP_DIR spids:[994])
                                  op: Equal
                                  rhs: {(true)}
                                  spids: [994]
                                )
                              ]
                              spids: [994]
                            )
                            (C {(shift)})
                          ]
                          spids: [990 991 1001 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--arch)}
                            {(--arch) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--arch))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:ARCH spids:[1042])
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [1042]
                                        )
                                      ]
                                      spids: [1042]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 1039]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--arch=')}
                                                  )
                                                spids: [1065 1069]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:ARCH spids:[1078])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--arch=')}
                                                    )
                                                  spids: [1080 1084]
                                                )
                                              )
                                            }
                                          spids: [1078]
                                        )
                                      ]
                                      spids: [1078]
                                    )
                                    (C {(shift)})
                                  ]
                                  spids: [1053 1075]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [1091 1109]
                            )
                          ]
                          spids: [1004 1010 1112 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--extractor)}
                            {(--extractor) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--extractor))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (lhs_expr.LhsName
                                              name: EXTRACTOR_OVERRIDE
                                              spids: [1153]
                                            )
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [1153]
                                        )
                                      ]
                                      spids: [1153]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 1150]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--extractor=')}
                                                  )
                                                spids: [1176 1180]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (lhs_expr.LhsName
                                              name: EXTRACTOR_OVERRIDE
                                              spids: [1189]
                                            )
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--extractor=')}
                                                    )
                                                  spids: [1191 1195]
                                                )
                                              )
                                            }
                                          spids: [1189]
                                        )
                                      ]
                                      spids: [1189]
                                    )
                                    (C {(shift)})
                                  ]
                                  spids: [1164 1186]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [1202 1220]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(valid_extractor)} 
                                          {(DQ ($ VSub_DollarName '$EXTRACTOR_OVERRIDE'))}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.Pipeline
                                                  children: [
                                                    (command.SimpleCommand
                                                      words: [
                                                        {(type)}
                                                        {
                                                          (DQ 
                                                            ($ VSub_DollarName '$EXTRACTOR_OVERRIDE')
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (redir.Redir
                                                          op: <Redir_Great '>'>
                                                          fd: 16777215
                                                          arg_word: {(/dev/null)}
                                                        )
                                                        (redir.Redir
                                                          op: <Redir_GreatAnd '2>&'>
                                                          fd: 2
                                                          arg_word: {(1)}
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  negated: T
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(error)} {(1)} {(MISSINGEXTRACTOR)} 
                                              {(DQ ('The selected extractor cannot be found: %s'))} {(DQ ($ VSub_DollarName '$EXTRACTOR_OVERRIDE'))}
                                            )
                                          ]
                                          spids: [16777215 1252]
                                        )
                                      ]
                                      spids: [16777215 1270]
                                    )
                                  ]
                                  spids: [16777215 1232]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(BADEXTRACTOR)} {(DQ ('%s: unknown extractor'))} 
                                  {(DQ ($ VSub_DollarName '$EXTRACTOR_OVERRIDE'))}
                                )
                              ]
                              spids: [1273 1291]
                            )
                          ]
                          spids: [1115 1121 1294 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--unpack-tarball)}
                            {(--unpack-tarball) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--unpack-tarball))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:UNPACK_TARBALL spids:[1335])
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [1335]
                                        )
                                      ]
                                      spids: [1335]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 1332]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--unpack-tarball=')}
                                                  )
                                                spids: [1358 1362]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:UNPACK_TARBALL spids:[1371])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--unpack-tarball=')}
                                                    )
                                                  spids: [1373 1377]
                                                )
                                              )
                                            }
                                          spids: [1371]
                                        )
                                      ]
                                      spids: [1371]
                                    )
                                    (C {(shift)})
                                  ]
                                  spids: [1346 1368]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [1384 1402]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} 
                                          {(DQ ($ VSub_DollarName '$UNPACK_TARBALL'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(error)} {(1)} {(NOTARBALL)} 
                                      {(DQ ('%s: No such file or directory'))} {(DQ ($ VSub_DollarName '$UNPACK_TARBALL'))}
                                    )
                                  ]
                                  spids: [16777215 1421]
                                )
                              ]
                              spids: [16777215 1439]
                            )
                          ]
                          spids: [1297 1303 1442 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--include)}
                            {(--include) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--include))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:ADDITIONAL spids:[1482])
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [1482]
                                        )
                                      ]
                                      spids: [1482]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 1479]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--include=')}
                                                  )
                                                spids: [1505 1509]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:ADDITIONAL spids:[1518])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--include=')}
                                                    )
                                                  spids: [1520 1524]
                                                )
                                              )
                                            }
                                          spids: [1518]
                                        )
                                      ]
                                      spids: [1518]
                                    )
                                    (C {(shift)} {(1)})
                                  ]
                                  spids: [1493 1515]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [1533 1551]
                            )
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:ADDITIONAL spids:[1554])
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (word_part.CommandSubPart
                                          command_list: 
                                            (command.CommandList
                                              children: [
                                                (command.Pipeline
                                                  children: [
                                                    (C {(echo)} {(DQ ($ VSub_DollarName '$ADDITIONAL'))})
                                                    (C {(tr)} {(Lit_Comma ',')} {(DQ (' '))})
                                                  ]
                                                  negated: F
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [1556 1572]
                                        )
                                      )
                                    }
                                  spids: [1554]
                                )
                              ]
                              spids: [1554]
                            )
                          ]
                          spids: [1445 1451 1576 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--exclude)}
                            {(--exclude) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--exclude))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:EXCLUDE spids:[1616])
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [1616]
                                        )
                                      ]
                                      spids: [1616]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 1613]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--exclude=')}
                                                  )
                                                spids: [1639 1643]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:EXCLUDE spids:[1652])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--exclude=')}
                                                    )
                                                  spids: [1654 1658]
                                                )
                                              )
                                            }
                                          spids: [1652]
                                        )
                                      ]
                                      spids: [1652]
                                    )
                                    (C {(shift)} {(1)})
                                  ]
                                  spids: [1627 1649]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [1667 1685]
                            )
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:EXCLUDE spids:[1688])
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (word_part.CommandSubPart
                                          command_list: 
                                            (command.CommandList
                                              children: [
                                                (command.Pipeline
                                                  children: [
                                                    (C {(echo)} {(DQ ($ VSub_DollarName '$EXCLUDE'))})
                                                    (C {(tr)} {(Lit_Comma ',')} {(DQ (' '))})
                                                  ]
                                                  negated: F
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [1690 1706]
                                        )
                                      )
                                    }
                                  spids: [1688]
                                )
                              ]
                              spids: [1688]
                            )
                          ]
                          spids: [1579 1585 1710 16777215]
                        )
                        (case_arm
                          pat_list: [{(--verbose)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:VERBOSE spids:[1717])
                                  op: Equal
                                  rhs: {(true)}
                                  spids: [1717]
                                )
                              ]
                              spids: [1717]
                            )
                            (C {(export)} {(VERBOSE)})
                            (C {(shift)} {(1)})
                          ]
                          spids: [1713 1714 1731 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--components)}
                            {(--components) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--components))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:USE_COMPONENTS spids:[1771])
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [1771]
                                        )
                                      ]
                                      spids: [1771]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 1768]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--components=')}
                                                  )
                                                spids: [1794 1798]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:USE_COMPONENTS spids:[1807])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--components=')}
                                                    )
                                                  spids: [1809 1813]
                                                )
                                              )
                                            }
                                          spids: [1807]
                                        )
                                      ]
                                      spids: [1807]
                                    )
                                    (C {(shift)} {(1)})
                                  ]
                                  spids: [1782 1804]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [1822 1840]
                            )
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:USE_COMPONENTS spids:[1843])
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (word_part.CommandSubPart
                                          command_list: 
                                            (command.CommandList
                                              children: [
                                                (command.Pipeline
                                                  children: [
                                                    (C {(echo)} 
                                                      {(DQ ($ VSub_DollarName '$USE_COMPONENTS'))}
                                                    )
                                                    (C {(tr)} {(Lit_Comma ',')} {(DQ ('|'))})
                                                  ]
                                                  negated: F
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [1845 1861]
                                        )
                                      )
                                    }
                                  spids: [1843]
                                )
                              ]
                              spids: [1843]
                            )
                          ]
                          spids: [1734 1740 1865 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--variant)}
                            {(--variant) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--variant))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:VARIANT spids:[1905])
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [1905]
                                        )
                                      ]
                                      spids: [1905]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 1902]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--variant=')}
                                                  )
                                                spids: [1928 1932]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:VARIANT spids:[1941])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--variant=')}
                                                    )
                                                  spids: [1943 1947]
                                                )
                                              )
                                            }
                                          spids: [1941]
                                        )
                                      ]
                                      spids: [1941]
                                    )
                                    (C {(shift)} {(1)})
                                  ]
                                  spids: [1916 1938]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [1956 1974]
                            )
                          ]
                          spids: [1868 1874 1977 16777215]
                        )
                        (case_arm
                          pat_list: [{(--merged-usr)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:MERGED_USR spids:[1984])
                                  op: Equal
                                  rhs: {(yes)}
                                  spids: [1984]
                                )
                              ]
                              spids: [1984]
                            )
                            (C {(shift)})
                          ]
                          spids: [1980 1981 1991 16777215]
                        )
                        (case_arm
                          pat_list: [{(--no-merged-usr)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:MERGED_USR spids:[1998])
                                  op: Equal
                                  rhs: {(no)}
                                  spids: [1998]
                                )
                              ]
                              spids: [1998]
                            )
                            (C {(shift)})
                          ]
                          spids: [1994 1995 2005 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--keyring)}
                            {(--keyring) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (command.SimpleCommand
                                              words: [{(gpgv)} {(--version)}]
                                              redirects: [
                                                (redir.Redir
                                                  op: <Redir_Great '>'>
                                                  fd: 16777215
                                                  arg_word: {(/dev/null)}
                                                )
                                                (redir.Redir
                                                  op: <Redir_GreatAnd '2>&'>
                                                  fd: 2
                                                  arg_word: {(1)}
                                                )
                                              ]
                                            )
                                          ]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(error)} {(1)} {(NEEDGPGV)} 
                                      {
                                        (DQ 
                                          (
'gpgv not installed, but required for Release verification'
                                          )
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 2032]
                                )
                              ]
                              spids: [16777215 2046]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--keyring))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:KEYRING spids:[2077])
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Number '$2'))}
                                          spids: [2077]
                                        )
                                      ]
                                      spids: [2077]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 2074]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--keyring=')}
                                                  )
                                                spids: [2100 2104]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:KEYRING spids:[2113])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--keyring=')}
                                                    )
                                                  spids: [2115 2119]
                                                )
                                              )
                                            }
                                          spids: [2113]
                                        )
                                      ]
                                      spids: [2113]
                                    )
                                    (C {(shift)} {(1)})
                                  ]
                                  spids: [2088 2110]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [2128 2146]
                            )
                          ]
                          spids: [2008 2014 2149 16777215]
                        )
                        (case_arm
                          pat_list: [{(--no-check-gpg)}]
                          action: [
                            (C {(shift)} {(1)})
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:DISABLE_KEYRING spids:[2161])
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [2161]
                                )
                              ]
                              spids: [2161]
                            )
                          ]
                          spids: [2152 2153 2165 16777215]
                        )
                        (case_arm
                          pat_list: [{(--force-check-gpg)}]
                          action: [
                            (C {(shift)} {(1)})
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:FORCE_KEYRING spids:[2177])
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [2177]
                                )
                              ]
                              spids: [2177]
                            )
                          ]
                          spids: [2168 2169 2181 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--certificate)}
                            {(--certificate) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--certificate))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:CERTIFICATE spids:[2221])
                                          op: Equal
                                          rhs: {(DQ ('--certificate=') ($ VSub_Number '$2'))}
                                          spids: [2221]
                                        )
                                      ]
                                      spids: [2221]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 2218]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--certificate=')}
                                                  )
                                                spids: [2245 2249]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:CERTIFICATE spids:[2258])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ ('--certificate=') 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--certificate=')}
                                                    )
                                                  spids: [2261 2265]
                                                )
                                              )
                                            }
                                          spids: [2258]
                                        )
                                      ]
                                      spids: [2258]
                                    )
                                    (C {(shift)} {(1)})
                                  ]
                                  spids: [2233 2255]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [2275 2294]
                            )
                          ]
                          spids: [2184 2190 2297 16777215]
                        )
                        (case_arm
                          pat_list: [
                            {(--private-key)}
                            {(--private-key) (Lit_Other '=') (Lit_Other '?') (Lit_Other '*')}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(Lit_Other '=')} {(DQ (--private-key))} {(-a)} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:PRIVATEKEY spids:[2337])
                                          op: Equal
                                          rhs: {(DQ ('--private-key=') ($ VSub_Number '$2'))}
                                          spids: [2337]
                                        )
                                      ]
                                      spids: [2337]
                                    )
                                    (C {(shift)} {(2)})
                                  ]
                                  spids: [16777215 2334]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                                          {(KW_Bang '!') (Lit_Other '=')} 
                                          {
                                            (DQ 
                                              (word_part.BracedVarSub
                                                token: <VSub_Number 1>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--private-key=')}
                                                  )
                                                spids: [2361 2365]
                                              )
                                            )
                                          } {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (command.Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (lhs_expr.LhsName name:PRIVATEKEY spids:[2374])
                                          op: Equal
                                          rhs: 
                                            {
                                              (DQ ('--private-key=') 
                                                (word_part.BracedVarSub
                                                  token: <VSub_Number 1>
                                                  suffix_op: 
                                                    (suffix_op.StringUnary
                                                      op_id: VOp1_Pound
                                                      arg_word: {('--private-key=')}
                                                    )
                                                  spids: [2377 2381]
                                                )
                                              )
                                            }
                                          spids: [2374]
                                        )
                                      ]
                                      spids: [2374]
                                    )
                                    (C {(shift)} {(1)})
                                  ]
                                  spids: [2349 2371]
                                )
                              ]
                              else_action: [
                                (C {(error)} {(1)} {(NEEDARG)} {(DQ ('option requires an argument %s'))} 
                                  {(DQ ($ VSub_Number '$1'))}
                                )
                              ]
                              spids: [2391 2410]
                            )
                          ]
                          spids: [2300 2306 2413 16777215]
                        )
                        (case_arm
                          pat_list: [{(--no-check-certificate)}]
                          action: [
                            (command.Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (lhs_expr.LhsName name:CHECKCERTIF spids:[2420])
                                  op: Equal
                                  rhs: {(DQ (--no-check-certificate))}
                                  spids: [2420]
                                )
                              ]
                              spids: [2420]
                            )
                            (C {(shift)})
                          ]
                          spids: [2416 2417 2429 16777215]
                        )
                        (case_arm
                          pat_list: [{(-) (Lit_Other '*')}]
                          action: [
                            (C {(error)} {(1)} {(BADARG)} {(DQ ('unrecognized or invalid option %s'))} 
                              {(DQ ($ VSub_Number '$1'))}
                            )
                          ]
                          spids: [2432 2434 2452 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [(command.ControlFlow token:<ControlFlow_Break break>)]
                          spids: [2455 2456 2462 16777215]
                        )
                      ]
                      spids: [499 505 2465]
                    )
                  ]
                  spids: [496 2468]
                )
            )
          ]
          spids: [16777215 487]
        )
      ]
      spids: [16777215 2470]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_DollarName '$DISABLE_KEYRING'))} {(-a)} {(-n)} 
                  {(DQ ($ VSub_DollarName '$FORCE_KEYRING'))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(error)} {(1)} {(BADARG)} 
              {
                (DQ 
                  (
'Both --no-check-gpg and --force-check-gpg specified, please pick one (at most)'
                  )
                )
              }
            )
          ]
          spids: [16777215 2498]
        )
      ]
      spids: [16777215 2511]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$SECOND_STAGE_ONLY'))} {(Lit_Other '=')} 
                  {(DQ (true))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:SUITE spids:[2538])
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [(C {(cat)} {($ VSub_DollarName '$DEBOOTSTRAP_DIR') (/suite)})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [2539 2544]
                      )
                    }
                  spids: [2538]
                )
              ]
              spids: [2538]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:ARCH spids:[2547])
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [(C {(cat)} {($ VSub_DollarName '$DEBOOTSTRAP_DIR') (/arch)})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [2548 2553]
                      )
                    }
                  spids: [2547]
                )
              ]
              spids: [2547]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-e)} {($ VSub_DollarName '$DEBOOTSTRAP_DIR') (/variant)} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:VARIANT spids:[2571])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(cat)} {($ VSub_DollarName '$DEBOOTSTRAP_DIR') (/variant)})
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [2572 2577]
                              )
                            }
                          spids: [2571]
                        )
                      ]
                      spids: [2571]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:SUPPORTED_VARIANTS spids:[2580])
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$VARIANT'))}
                          spids: [2580]
                        )
                      ]
                      spids: [2580]
                    )
                  ]
                  spids: [16777215 2568]
                )
              ]
              spids: [16777215 2586]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$CHROOTDIR'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:TARGET spids:[2605])
                          op: Equal
                          rhs: {(/)}
                          spids: [2605]
                        )
                      ]
                      spids: [2605]
                    )
                  ]
                  spids: [16777215 2602]
                )
              ]
              else_action: [
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:TARGET spids:[2612])
                      op: Equal
                      rhs: {($ VSub_DollarName '$CHROOTDIR')}
                      spids: [2612]
                    )
                  ]
                  spids: [2612]
                )
              ]
              spids: [2609 2616]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:SCRIPT spids:[2619])
                  op: Equal
                  rhs: {($ VSub_DollarName '$DEBOOTSTRAP_DIR') (/suite-script)}
                  spids: [2619]
                )
              ]
              spids: [2619]
            )
          ]
          spids: [16777215 2535]
        )
      ]
      else_action: [
        (command.If
          arms: [
            (if_arm
              cond: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
                        (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')})
                      ]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (C {(usage_err)} {(1)} {(NEEDSUITETARGET)} 
                  {(DQ ('You must specify a suite and a target.'))}
                )
              ]
              spids: [16777215 2651]
            )
          ]
          spids: [16777215 2665]
        )
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:SUITE spids:[2668])
              op: Equal
              rhs: {(DQ ($ VSub_Number '$1'))}
              spids: [2668]
            )
          ]
          spids: [2668]
        )
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:TARGET spids:[2674])
              op: Equal
              rhs: {(DQ ($ VSub_Number '$2'))}
              spids: [2674]
            )
          ]
          spids: [2674]
        )
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:USER_MIRROR spids:[2680])
              op: Equal
              rhs: {(DQ ($ VSub_Number '$3'))}
              spids: [2680]
            )
          ]
          spids: [2680]
        )
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:TARGET spids:[2686])
              op: Equal
              rhs: 
                {
                  (DQ 
                    (word_part.BracedVarSub
                      token: <VSub_Name TARGET>
                      suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /)})
                      spids: [2688 2692]
                    )
                  )
                }
              spids: [2686]
            )
          ]
          spids: [2686]
        )
        (command.If
          arms: [
            (if_arm
              cond: [
                (command.Sentence
                  child: 
                    (C {(Lit_Other '[')} 
                      {
                        (DQ 
                          (word_part.BracedVarSub
                            token: <VSub_Name TARGET>
                            suffix_op: 
                              (suffix_op.StringUnary
                                op_id: VOp1_Pound
                                arg_word: {(Lit_Slash /)}
                              )
                            spids: [2701 2705]
                          )
                        )
                      } {(Lit_Other '=')} {(DQ (${ VSub_Name TARGET))} {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Lit_Other '[')} 
                              {
                                (DQ 
                                  (word_part.BracedVarSub
                                    token: <VSub_Name TARGET>
                                    suffix_op: 
                                      (suffix_op.StringUnary
                                        op_id: VOp1_Percent
                                        arg_word: {(Lit_Slash /) ('*')}
                                      )
                                    spids: [2727 2732]
                                  )
                                )
                              } {(Lit_Other '=')} {(DQ ($ VSub_DollarName '$TARGET'))} {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:TARGET spids:[2748])
                              op: Equal
                              rhs: 
                                {
                                  (DQ 
                                    (word_part.CommandSubPart
                                      command_list: 
                                        (command.CommandList
                                          children: [
                                            (C {(echo)} 
                                              {
                                                (DQ 
                                                  (word_part.CommandSubPart
                                                    command_list: 
                                                      (command.CommandList
                                                        children: [(C {(pwd)})]
                                                      )
                                                    left_token: <Left_Backtick '`'>
                                                    spids: [2754 2756]
                                                  ) (/) ($ VSub_DollarName '$TARGET')
                                                )
                                              }
                                            )
                                          ]
                                        )
                                      left_token: <Left_CommandSub '$('>
                                      spids: [2750 2760]
                                    )
                                  )
                                }
                              spids: [2748]
                            )
                          ]
                          spids: [2748]
                        )
                      ]
                      spids: [16777215 2745]
                    )
                  ]
                  else_action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:TARGET spids:[2767])
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (word_part.CommandSubPart
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (command.Sentence
                                          child: 
                                            (C {(cd)} 
                                              {
                                                (DQ 
                                                  (word_part.BracedVarSub
                                                    token: <VSub_Name TARGET>
                                                    suffix_op: 
                                                      (suffix_op.StringUnary
                                                        op_id: VOp1_Percent
                                                        arg_word: {(Lit_Slash /) ('*')}
                                                      )
                                                    spids: [2773 2778]
                                                  )
                                                )
                                              }
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                        (C {(echo)} 
                                          {
                                            (DQ 
                                              (word_part.CommandSubPart
                                                command_list: 
                                                  (command.CommandList
                                                    children: [(C {(pwd)})]
                                                  )
                                                left_token: <Left_Backtick '`'>
                                                spids: [2785 2787]
                                              ) (/) 
                                              (word_part.BracedVarSub
                                                token: <VSub_Name TARGET>
                                                suffix_op: 
                                                  (suffix_op.StringUnary
                                                    op_id: VOp1_DPound
                                                    arg_word: {('*') (Lit_Slash /)}
                                                  )
                                                spids: [2789 2794]
                                              )
                                            )
                                          }
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [2769 2796]
                                )
                              )
                            }
                          spids: [2767]
                        )
                      ]
                      spids: [2767]
                    )
                  ]
                  spids: [2764 2800]
                )
              ]
              spids: [16777215 2719]
            )
          ]
          spids: [16777215 2803]
        )
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:SCRIPT spids:[2807])
              op: Equal
              rhs: {(DQ ($ VSub_DollarName '$DEBOOTSTRAP_DIR') (/scripts/) ($ VSub_Number '$1'))}
              spids: [2807]
            )
          ]
          spids: [2807]
        )
        (command.If
          arms: [
            (if_arm
              cond: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Op_DAmp]
                      children: [
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_DollarName '$VARIANT'))} 
                          {(Lit_Other ']')}
                        )
                        (C {(Lit_Other '[')} {(-e)} 
                          {(DQ (${ VSub_Name SCRIPT) (.) (${ VSub_Name VARIANT))} {(Lit_Other ']')}
                        )
                      ]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:SCRIPT spids:[2849])
                      op: Equal
                      rhs: {(DQ (${ VSub_Name SCRIPT) (.) (${ VSub_Name VARIANT))}
                      spids: [2849]
                    )
                  ]
                  spids: [2849]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:SUPPORTED_VARIANTS spids:[2861])
                      op: Equal
                      rhs: {(DQ ($ VSub_DollarName '$VARIANT'))}
                      spids: [2861]
                    )
                  ]
                  spids: [2861]
                )
              ]
              spids: [16777215 2846]
            )
          ]
          spids: [16777215 2867]
        )
        (command.If
          arms: [
            (if_arm
              cond: [
                (command.Sentence
                  child: 
                    (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$4'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} 
                      {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:SCRIPT spids:[2890])
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$4'))}
                      spids: [2890]
                    )
                  ]
                  spids: [2890]
                )
              ]
              spids: [16777215 2887]
            )
          ]
          spids: [16777215 2896]
        )
      ]
      spids: [2623 2898]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.AndOr
                  ops: [Op_DAmp]
                  children: [
                    (C {(in_path)} {(dpkg)})
                    (command.SimpleCommand
                      words: [{(dpkg)} {(--print-architecture)}]
                      redirects: [
                        (redir.Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {(/dev/null)}
                        )
                        (redir.Redir
                          op: <Redir_GreatAnd '2>&'>
                          fd: 2
                          arg_word: {(1)}
                        )
                      ]
                    )
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:HOST_ARCH spids:[2929])
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [(C {(/usr/bin/dpkg)} {(--print-architecture)})]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [2930 2934]
                      )
                    }
                  spids: [2929]
                )
              ]
              spids: [2929]
            )
          ]
          spids: [16777215 2926]
        )
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.AndOr
                  ops: [Op_DAmp]
                  children: [
                    (C {(in_path)} {(udpkg)})
                    (command.SimpleCommand
                      words: [{(udpkg)} {(--print-architecture)}]
                      redirects: [
                        (redir.Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {(/dev/null)}
                        )
                        (redir.Redir
                          op: <Redir_GreatAnd '2>&'>
                          fd: 2
                          arg_word: {(1)}
                        )
                      ]
                    )
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:HOST_ARCH spids:[2960])
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [(C {(/usr/bin/udpkg)} {(--print-architecture)})]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [2961 2965]
                      )
                    }
                  spids: [2960]
                )
              ]
              spids: [2960]
            )
          ]
          spids: [2936 2957]
        )
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(-e)} {($ VSub_DollarName '$DEBOOTSTRAP_DIR') (/arch)} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:HOST_ARCH spids:[2982])
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [(C {(cat)} {($ VSub_DollarName '$DEBOOTSTRAP_DIR') (/arch)})]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [2983 2988]
                      )
                    }
                  spids: [2982]
                )
              ]
              spids: [2982]
            )
          ]
          spids: [2967 2979]
        )
      ]
      spids: [16777215 2990]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:HOST_OS spids:[2992])
          op: Equal
          rhs: {(DQ ($ VSub_DollarName '$HOST_ARCH'))}
          spids: [2992]
        )
      ]
      spids: [2992]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$HOST_OS'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Case
              to_match: 
                {
                  (word_part.CommandSubPart
                    command_list: (command.CommandList children:[(C {(uname)})])
                    left_token: <Left_Backtick '`'>
                    spids: [3018 3020]
                  )
                }
              arms: [
                (case_arm
                  pat_list: [{(Linux)}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:HOST_OS spids:[3029])
                          op: Equal
                          rhs: {(linux)}
                          spids: [3029]
                        )
                      ]
                      spids: [3029]
                    )
                  ]
                  spids: [3025 3026 3033 16777215]
                )
                (case_arm
                  pat_list: [{(GNU/kFreeBSD)}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:HOST_OS spids:[3040])
                          op: Equal
                          rhs: {(kfreebsd)}
                          spids: [3040]
                        )
                      ]
                      spids: [3040]
                    )
                  ]
                  spids: [3036 3037 3044 16777215]
                )
                (case_arm
                  pat_list: [{(GNU)}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:HOST_OS spids:[3051])
                          op: Equal
                          rhs: {(hurd)}
                          spids: [3051]
                        )
                      ]
                      spids: [3051]
                    )
                  ]
                  spids: [3047 3048 3055 16777215]
                )
                (case_arm
                  pat_list: [{(FreeBSD) (Lit_Other '*')}]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:HOST_OS spids:[3063])
                          op: Equal
                          rhs: {(freebsd)}
                          spids: [3063]
                        )
                      ]
                      spids: [3063]
                    )
                  ]
                  spids: [3058 3060 3067 16777215]
                )
              ]
              spids: [3016 3022 3070]
            )
          ]
          spids: [16777215 3013]
        )
      ]
      spids: [16777215 3072]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$ARCH'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:ARCH spids:[3091])
                  op: Equal
                  rhs: {($ VSub_DollarName '$HOST_ARCH')}
                  spids: [3091]
                )
              ]
              spids: [3091]
            )
          ]
          spids: [16777215 3088]
        )
      ]
      spids: [16777215 3094]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$ARCH'))} {(Lit_Other ']')})
                    (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$HOST_OS'))} {(Lit_Other ']')})
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(error)} {(1)} {(WHATARCH)} {(DQ ("Couldn't work out current architecture"))})]
          spids: [16777215 3122]
        )
      ]
      spids: [16777215 3136]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.AndOr
                  ops: [Op_DPipe]
                  children: [
                    (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$HOST_OS'))} {(Lit_Other '=')} 
                      {(DQ (kfreebsd))} {(Lit_Other ']')}
                    )
                    (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$HOST_OS'))} {(Lit_Other '=')} 
                      {(DQ (freebsd))} {(Lit_Other ']')}
                    )
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.ForEach
              iter_name: module
              iter_words: [{(linprocfs)} {(fdescfs)} {(tmpfs)} {(linsysfs)}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.AndOr
                      ops: [Op_DPipe]
                      children: [
                        (command.SimpleCommand
                          words: [{(kldstat)} {(-m)} {(DQ ($ VSub_DollarName '$module'))}]
                          redirects: [
                            (redir.Redir
                              op: <Redir_Great '>'>
                              fd: 16777215
                              arg_word: {(/dev/null)}
                            )
                            (redir.Redir
                              op: <Redir_GreatAnd '2>&'>
                              fd: 2
                              arg_word: {(1)}
                            )
                          ]
                        )
                        (C {(warning)} {(SANITYCHECK)} 
                          {(DQ ('Probably required module %s is not loaded'))} {(DQ ($ VSub_DollarName '$module'))}
                        )
                      ]
                    )
                  ]
                  spids: [3190 3223]
                )
              spids: [3180 3188]
            )
          ]
          spids: [16777215 3172]
        )
      ]
      spids: [16777215 3225]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$TARGET'))} {(Lit_Other '=')} {(DQ (/))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:CHROOT_CMD spids:[3248])
                  op: Equal
                  rhs: {(DQ )}
                  spids: [3248]
                )
              ]
              spids: [3248]
            )
          ]
          spids: [16777215 3245]
        )
      ]
      else_action: [
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:CHROOT_CMD spids:[3255])
              op: Equal
              rhs: {(DQ ('chroot ') ($ VSub_DollarName '$TARGET'))}
              spids: [3255]
            )
          ]
          spids: [3255]
        )
      ]
      spids: [3252 3261]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$SHA_SIZE'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:SHA_SIZE spids:[3280])
                  op: Equal
                  rhs: {(256)}
                  spids: [3280]
                )
              ]
              spids: [3280]
            )
          ]
          spids: [16777215 3277]
        )
      ]
      spids: [16777215 3283]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.AndOr
                  ops: [Op_DAmp]
                  children: [
                    (command.Pipeline
                      children: [(C {(in_path)} {(DQ (sha) (${ VSub_Name SHA_SIZE) (sum))})]
                      negated: T
                    )
                    (command.Pipeline
                      children: [(C {(in_path)} {(DQ (sha) (${ VSub_Name SHA_SIZE))})]
                      negated: T
                    )
                  ]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:SHA_SIZE spids:[3316])
                  op: Equal
                  rhs: {(1)}
                  spids: [3316]
                )
              ]
              spids: [3316]
            )
          ]
          spids: [16777215 3313]
        )
      ]
      spids: [16777215 3319]
    )
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:DEBOOTSTRAP_CHECKSUM_FIELD spids:[3321])
          op: Equal
          rhs: {(DQ (SHA) ($ VSub_DollarName '$SHA_SIZE'))}
          spids: [3321]
        )
      ]
      spids: [3321]
    )
    (C {(export)} {(ARCH)} {(SUITE)} {(TARGET)} {(CHROOT_CMD)} {(SHA_SIZE)} {(DEBOOTSTRAP_CHECKSUM_FIELD)})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(am_doing_phase)} {(first_stage)} {(second_stage)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(in_path)} {(id)})
                            (C {(Lit_Other '[')} 
                              {
                                (word_part.CommandSubPart
                                  command_list: (command.CommandList children:[(C {(id)} {(-u)})])
                                  left_token: <Left_Backtick '`'>
                                  spids: [3365 3369]
                                )
                              } {(-ne)} {(0)} {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(error)} {(1)} {(NEEDROOT)} {(DQ ('debootstrap can only run as root'))})]
                  spids: [16777215 3378]
                )
              ]
              spids: [16777215 3392]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [(C {(check_sane_mount)} {(DQ ($ VSub_DollarName '$TARGET'))})]
                          negated: T
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(error)} {(1)} {(NOEXEC)} 
                      {
                        (DQ ("Cannot install into target '") ($ VSub_DollarName '$TARGET') 
                          ("' mounted with noexec or nodev")
                        )
                      }
                    )
                  ]
                  spids: [16777215 3410]
                )
              ]
              spids: [16777215 3426]
            )
          ]
          spids: [16777215 3352]
        )
      ]
      spids: [16777215 3428]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} {(DQ ($ VSub_DollarName '$SCRIPT'))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(error)} {(1)} {(NOSCRIPT)} {(DQ ('No such script: %s'))} 
              {(DQ ($ VSub_DollarName '$SCRIPT'))}
            )
          ]
          spids: [16777215 3446]
        )
      ]
      spids: [16777215 3463]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$TARGET'))} 
                  {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(mkdir)} {(-p)} {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap))})]
          spids: [16777215 3487]
        )
      ]
      spids: [16777215 3499]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$USE_DEBIANINSTALLER_INTERACTION'))} 
                  {(Lit_Other '=')} {(yes)} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.SimpleCommand
              words: [{(exec)}]
              redirects: [(redir.Redir op:<Redir_GreatAnd '4>&'> fd:4 arg_word:{(3)})]
            )
          ]
          spids: [16777215 3540]
        )
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(am_doing_phase)} {(printdebs)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.SimpleCommand
              words: [{(exec)}]
              redirects: [(redir.Redir op:<Redir_GreatAnd '4>&'> fd:4 arg_word:{(2)})]
            )
          ]
          spids: [3556 3563]
        )
      ]
      else_action: [
        (command.SimpleCommand
          words: [{(exec)}]
          redirects: [(redir.Redir op:<Redir_GreatAnd '4>&'> fd:4 arg_word:{(1)})]
        )
        (command.SimpleCommand
          words: [{(exec)}]
          redirects: [
            (redir.Redir
              op: <Redir_DGreat '>>'>
              fd: 16777215
              arg_word: {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap/debootstrap.log))}
            )
          ]
        )
        (command.SimpleCommand
          words: [{(exec)}]
          redirects: [(redir.Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})]
        )
      ]
      spids: [3579 3614]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$UNPACK_TARBALL'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (word_part.BracedVarSub
                                token: <VSub_Name UNPACK_TARBALL>
                                suffix_op: 
                                  (suffix_op.StringUnary
                                    op_id: VOp1_Pound
                                    arg_word: {(Lit_Slash /)}
                                  )
                                spids: [3640 3644]
                              )
                            )
                          } {(Lit_Other '=')} {(DQ ($ VSub_DollarName '$UNPACK_TARBALL'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(error)} {(1)} {(TARPATH)} {(DQ ('Tarball must be given a complete path'))})
                  ]
                  spids: [16777215 3656]
                )
              ]
              spids: [16777215 3670]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (word_part.BracedVarSub
                                token: <VSub_Name UNPACK_TARBALL>
                                suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(.tar)})
                                spids: [3678 3682]
                              )
                            )
                          } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_DollarName '$UNPACK_TARBALL'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Subshell
                      child: 
                        (command.AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(cd)} {(DQ ($ VSub_DollarName '$TARGET'))})
                            (C {(tar)} {(-xf)} {(DQ ($ VSub_DollarName '$UNPACK_TARBALL'))})
                          ]
                        )
                      spids: [3698 3714]
                    )
                  ]
                  spids: [16777215 3695]
                )
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (word_part.BracedVarSub
                                token: <VSub_Name UNPACK_TARBALL>
                                suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(.tgz)})
                                spids: [3722 3726]
                              )
                            )
                          } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_DollarName '$UNPACK_TARBALL'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Subshell
                      child: 
                        (command.AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(cd)} {(DQ ($ VSub_DollarName '$TARGET'))})
                            (command.Pipeline
                              children: [
                                (C {(zcat)} {(DQ ($ VSub_DollarName '$UNPACK_TARBALL'))})
                                (C {(tar)} {(-xf)} {(-)})
                              ]
                              negated: F
                            )
                          ]
                        )
                      spids: [3742 3764]
                    )
                  ]
                  spids: [3717 3739]
                )
              ]
              else_action: [
                (C {(error)} {(1)} {(NOTTAR)} {(DQ ('Unknown tarball: must be either .tar or .tgz'))})
              ]
              spids: [3767 3781]
            )
          ]
          spids: [16777215 3632]
        )
      ]
      spids: [16777215 3783]
    )
    (C {(.)} {(DQ ($ VSub_DollarName '$SCRIPT'))})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$SECOND_STAGE_ONLY'))} {(Lit_Other '=')} 
                  {(DQ (true))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:MIRRORS spids:[3817])
                  op: Equal
                  rhs: {(null) (Lit_Other ':')}
                  spids: [3817]
                )
              ]
              spids: [3817]
            )
          ]
          spids: [16777215 3814]
        )
      ]
      else_action: [
        (command.Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:MIRRORS spids:[3824])
              op: Equal
              rhs: {(DQ ($ VSub_DollarName '$DEF_MIRROR'))}
              spids: [3824]
            )
          ]
          spids: [3824]
        )
        (command.If
          arms: [
            (if_arm
              cond: [
                (command.Sentence
                  child: 
                    (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$USER_MIRROR'))} 
                      {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:MIRRORS spids:[3850])
                      op: Equal
                      rhs: {(DQ ($ VSub_DollarName '$USER_MIRROR'))}
                      spids: [3850]
                    )
                  ]
                  spids: [3850]
                )
                (command.Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (lhs_expr.LhsName name:MIRRORS spids:[3856])
                      op: Equal
                      rhs: 
                        {
                          (DQ 
                            (word_part.BracedVarSub
                              token: <VSub_Name MIRRORS>
                              suffix_op: 
                                (suffix_op.StringUnary
                                  op_id: VOp1_Percent
                                  arg_word: {(Lit_Slash /)}
                                )
                              spids: [3858 3862]
                            )
                          )
                        }
                      spids: [3856]
                    )
                  ]
                  spids: [3856]
                )
              ]
              spids: [16777215 3847]
            )
          ]
          spids: [16777215 3866]
        )
      ]
      spids: [3821 3868]
    )
    (C {(export)} {(MIRRORS)})
    (command.Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:ok spids:[3876])
          op: Equal
          rhs: {(false)}
          spids: [3876]
        )
      ]
      spids: [3876]
    )
    (command.ForEach
      iter_name: v
      iter_words: [{($ VSub_DollarName '$SUPPORTED_VARIANTS')}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {(doing_variant)} {($ VSub_DollarName '$v')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Sentence
                      child: 
                        (command.Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (lhs_expr.LhsName name:ok spids:[3900])
                              op: Equal
                              rhs: {(true)}
                              spids: [3900]
                            )
                          ]
                          spids: [3900]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [16777215 3898]
                )
              ]
              spids: [16777215 3904]
            )
          ]
          spids: [3888 3906]
        )
      spids: [3884 3886]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (command.Pipeline children:[(C {($ VSub_DollarName '$ok')})] negated:T)
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(error)} {(1)} {(UNSUPPVARIANT)} {(DQ ('unsupported variant'))})]
          spids: [16777215 3915]
        )
      ]
      spids: [16777215 3928]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(am_doing_phase)} {(finddebs)}) terminator:<Op_Semi ';'>)]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Op_DPipe]
                          children: [
                            (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$FINDDEBS_NEEDS_INDICES'))} 
                              {(Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$RESOLVE_DEPS'))} 
                              {(Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(download_indices)})
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:GOT_INDICES spids:[3986])
                          op: Equal
                          rhs: {(true)}
                          spids: [3986]
                        )
                      ]
                      spids: [3986]
                    )
                  ]
                  spids: [16777215 3980]
                )
              ]
              spids: [16777215 3990]
            )
            (C {(work_out_debs)})
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:base spids:[3998])
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSubPart
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(without)} 
                                {
                                  (DQ ($ VSub_DollarName '$base') (' ') 
                                    ($ VSub_DollarName '$ADDITIONAL')
                                  )
                                } {(DQ ($ VSub_DollarName '$EXCLUDE'))}
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [3999 4011]
                      )
                    }
                  spids: [3998]
                )
              ]
              spids: [3998]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$RESOLVE_DEPS'))} 
                          {(Lit_Other '=')} {(true)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:requiredX spids:[4033])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(echo)} 
                                        {
                                          (word_part.CommandSubPart
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (command.Pipeline
                                                    children: [
                                                      (C {(echo)} {($ VSub_DollarName '$required')})
                                                      (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                                                      (C {(sort)})
                                                      (C {(uniq)})
                                                    ]
                                                    negated: F
                                                  )
                                                ]
                                              )
                                            left_token: <Left_CommandSub '$('>
                                            spids: [4037 4061]
                                          )
                                        }
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [4034 4062]
                              )
                            }
                          spids: [4033]
                        )
                      ]
                      spids: [4033]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:baseX spids:[4065])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(echo)} 
                                        {
                                          (word_part.CommandSubPart
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (command.Pipeline
                                                    children: [
                                                      (C {(echo)} {($ VSub_DollarName '$base')})
                                                      (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)})
                                                      (C {(sort)})
                                                      (C {(uniq)})
                                                    ]
                                                    negated: F
                                                  )
                                                ]
                                              )
                                            left_token: <Left_CommandSub '$('>
                                            spids: [4069 4093]
                                          )
                                        }
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [4066 4094]
                              )
                            }
                          spids: [4065]
                        )
                      ]
                      spids: [4065]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:baseN spids:[4098])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(without)} {(DQ ($ VSub_DollarName '$baseX'))} 
                                        {(DQ ($ VSub_DollarName '$requiredX'))}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [4099 4109]
                              )
                            }
                          spids: [4098]
                        )
                      ]
                      spids: [4098]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:baseU spids:[4112])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(without)} {(DQ ($ VSub_DollarName '$baseX'))} 
                                        {(DQ ($ VSub_DollarName '$baseN'))}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [4113 4123]
                              )
                            }
                          spids: [4112]
                        )
                      ]
                      spids: [4112]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$baseU'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(info)} {(REDUNDANTBASE)} 
                              {(DQ ('Found packages in base already in required: %s'))} {(DQ ($ VSub_DollarName '$baseU'))}
                            )
                          ]
                          spids: [16777215 4144]
                        )
                      ]
                      spids: [16777215 4160]
                    )
                    (C {(info)} {(RESOLVEREQ)} {(DQ ('Resolving dependencies of required packages...'))})
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:required spids:[4173])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [(C {(resolve_deps)} {($ VSub_DollarName '$requiredX')})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [4174 4178]
                              )
                            }
                          spids: [4173]
                        )
                      ]
                      spids: [4173]
                    )
                    (C {(info)} {(RESOLVEBASE)} {(DQ ('Resolving dependencies of base packages...'))})
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:base spids:[4190])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [(C {(resolve_deps)} {($ VSub_DollarName '$baseX')})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [4191 4195]
                              )
                            }
                          spids: [4190]
                        )
                      ]
                      spids: [4190]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:base spids:[4198])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(without)} {(DQ ($ VSub_DollarName '$base'))} 
                                        {(DQ ($ VSub_DollarName '$required'))}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [4199 4209]
                              )
                            }
                          spids: [4198]
                        )
                      ]
                      spids: [4198]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:requiredX spids:[4213])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(without)} {(DQ ($ VSub_DollarName '$required'))} 
                                        {(DQ ($ VSub_DollarName '$requiredX'))}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [4214 4224]
                              )
                            }
                          spids: [4213]
                        )
                      ]
                      spids: [4213]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:baseX spids:[4227])
                          op: Equal
                          rhs: 
                            {
                              (word_part.CommandSubPart
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (C {(without)} {(DQ ($ VSub_DollarName '$base'))} 
                                        {(DQ ($ VSub_DollarName '$baseX'))}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [4228 4238]
                              )
                            }
                          spids: [4227]
                        )
                      ]
                      spids: [4227]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$requiredX'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(info)} {(NEWREQUIRED)} 
                              {(DQ ('Found additional required dependencies: %s'))} {(DQ ($ VSub_DollarName '$requiredX'))}
                            )
                          ]
                          spids: [16777215 4258]
                        )
                      ]
                      spids: [16777215 4274]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$baseX'))} 
                                  {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(info)} {(NEWBASE)} {(DQ ('Found additional base dependencies: %s'))} 
                              {(DQ ($ VSub_DollarName '$baseX'))}
                            )
                          ]
                          spids: [16777215 4294]
                        )
                      ]
                      spids: [16777215 4310]
                    )
                  ]
                  spids: [16777215 4030]
                )
              ]
              spids: [16777215 4313]
            )
            (command.Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:all_debs spids:[4317])
                  op: Equal
                  rhs: {(DQ ($ VSub_DollarName '$required') (' ') ($ VSub_DollarName '$base'))}
                  spids: [4317]
                )
              ]
              spids: [4317]
            )
          ]
          spids: [16777215 3942]
        )
      ]
      spids: [16777215 4324]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(am_doing_phase)} {(printdebs)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(echo)} {(DQ ($ VSub_DollarName '$all_debs'))})]
          spids: [16777215 4334]
        )
      ]
      spids: [16777215 4343]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {(am_doing_phase)} {(dldebs)}) terminator:<Op_Semi ';'>)]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$GOT_INDICES'))} 
                          {(KW_Bang '!') (Lit_Other '=')} {(DQ (true))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(download_indices)})]
                  spids: [16777215 4374]
                )
              ]
              spids: [16777215 4380]
            )
            (C {(download)} {($ VSub_DollarName '$all_debs')})
          ]
          spids: [16777215 4353]
        )
      ]
      spids: [16777215 4387]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(am_doing_phase)} {(maketarball)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Subshell
              child: 
                (command.CommandList
                  children: [
                    (command.Sentence
                      child: (C {(cd)} {($ VSub_DollarName '$TARGET')})
                      terminator: <Op_Semi ';'>
                    )
                    (C {(tar)} {(czf)} {(-)} {(var/lib/apt)} {(var/cache/apt)})
                  ]
                )
              redirects: [
                (redir.Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {($ VSub_DollarName '$MAKE_TARBALL')}
                )
              ]
              spids: [4400 4416]
            )
          ]
          spids: [16777215 4397]
        )
      ]
      spids: [16777215 4421]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(am_doing_phase)} {(first_stage)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(choose_extractor)})
            (C {(first_stage_install)})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [(C {(am_doing_phase)} {(second_stage)})]
                          negated: T
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(cp)} {(DQ ($ VSub_Number '$0'))} 
                      {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap/debootstrap))}
                    )
                    (C {(cp)} {($ VSub_DollarName '$DEBOOTSTRAP_DIR') (/functions)} 
                      {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap/functions))}
                    )
                    (C {(cp)} {($ VSub_DollarName '$SCRIPT')} 
                      {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap/suite-script))}
                    )
                    (command.SimpleCommand
                      words: [{(echo)} {(DQ ($ VSub_DollarName '$ARCH'))}]
                      redirects: [
                        (redir.Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap/arch))}
                        )
                      ]
                    )
                    (command.SimpleCommand
                      words: [{(echo)} {(DQ ($ VSub_DollarName '$SUITE'))}]
                      redirects: [
                        (redir.Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap/suite))}
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(Lit_Other '[')} {(DQ )} {(Lit_Other '=')} 
                          {(DQ ($ VSub_DollarName '$VARIANT'))} {(Lit_Other ']')}
                        )
                        (command.SimpleCommand
                          words: [{(echo)} {(DQ ($ VSub_DollarName '$VARIANT'))}]
                          redirects: [
                            (redir.Redir
                              op: <Redir_Great '>'>
                              fd: 16777215
                              arg_word: {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap/variant))}
                            )
                          ]
                        )
                      ]
                    )
                    (command.SimpleCommand
                      words: [{(echo)} {(DQ ($ VSub_DollarName '$required'))}]
                      redirects: [
                        (redir.Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap/required))}
                        )
                      ]
                    )
                    (command.SimpleCommand
                      words: [{(echo)} {(DQ ($ VSub_DollarName '$base'))}]
                      redirects: [
                        (redir.Redir
                          op: <Redir_Great '>'>
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap/base))}
                        )
                      ]
                    )
                    (C {(chmod)} {(755)} {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap/debootstrap))})
                  ]
                  spids: [16777215 4463]
                )
              ]
              spids: [16777215 4591]
            )
          ]
          spids: [16777215 4431]
        )
      ]
      spids: [16777215 4593]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(am_doing_phase)} {(second_stage)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$SECOND_STAGE_ONLY'))} 
                          {(Lit_Other '=')} {(true)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:required spids:[4624])
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (word_part.CommandSubPart
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (C {(cat)} {($ VSub_DollarName '$DEBOOTSTRAP_DIR') (/required)})
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [4626 4631]
                                )
                              )
                            }
                          spids: [4624]
                        )
                      ]
                      spids: [4624]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:base spids:[4635])
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (word_part.CommandSubPart
                                  command_list: 
                                    (command.CommandList
                                      children: [
                                        (C {(cat)} {($ VSub_DollarName '$DEBOOTSTRAP_DIR') (/base)})
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [4637 4642]
                                )
                              )
                            }
                          spids: [4635]
                        )
                      ]
                      spids: [4635]
                    )
                    (command.Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (lhs_expr.LhsName name:all_debs spids:[4646])
                          op: Equal
                          rhs: {(DQ ($ VSub_DollarName '$required') (' ') ($ VSub_DollarName '$base'))}
                          spids: [4646]
                        )
                      ]
                      spids: [4646]
                    )
                  ]
                  spids: [16777215 4621]
                )
              ]
              spids: [16777215 4654]
            )
            (C {(second_stage_install)})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-e)} 
                          {(DQ ($ VSub_DollarName '$TARGET') (/etc/apt/sources.list))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$TARGET') (/etc/apt/sources.list))})
                  ]
                  spids: [16777215 4697]
                )
              ]
              spids: [16777215 4710]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} 
                          {
                            (DQ 
                              (word_part.BracedVarSub
                                token: <VSub_Name MIRRORS>
                                suffix_op: 
                                  (suffix_op.StringUnary
                                    op_id: VOp1_Pound
                                    arg_word: {('http:') (Lit_Slash /) (Lit_Slash /)}
                                  )
                                spids: [4718 4724]
                              )
                            )
                          } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_DollarName '$MIRRORS'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(setup_apt_sources)} 
                      {
                        (DQ 
                          (word_part.BracedVarSub
                            token: <VSub_Name MIRRORS>
                            suffix_op: (suffix_op.StringUnary op_id:VOp1_DPercent arg_word:{(' *')})
                            spids: [4743 4747]
                          )
                        )
                      }
                    )
                    (C {(mv_invalid_to)} 
                      {
                        (DQ 
                          (word_part.BracedVarSub
                            token: <VSub_Name MIRRORS>
                            suffix_op: (suffix_op.StringUnary op_id:VOp1_DPercent arg_word:{(' *')})
                            spids: [4754 4758]
                          )
                        )
                      }
                    )
                  ]
                  spids: [16777215 4737]
                )
              ]
              else_action: [
                (C {(setup_apt_sources)} {(DQ ($ VSub_DollarName '$DEF_MIRROR'))})
                (C {(mv_invalid_to)} {(DQ ($ VSub_DollarName '$DEF_MIRROR'))})
              ]
              spids: [4762 4779]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-e)} 
                          {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap/debootstrap.log))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$KEEP_DEBOOTSTRAP_DIR'))} 
                                  {(Lit_Other '=')} {(true)} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(cp)} 
                              {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap/debootstrap.log))} {(DQ ($ VSub_DollarName '$TARGET') (/var/log/bootstrap.log))}
                            )
                          ]
                          spids: [16777215 4815]
                        )
                      ]
                      else_action: [
                        (C {(mv)} {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap/debootstrap.log))} 
                          {(DQ ($ VSub_DollarName '$TARGET') (/var/log/bootstrap.log))}
                        )
                      ]
                      spids: [4831 4867]
                    )
                  ]
                  spids: [16777215 4797]
                )
              ]
              spids: [16777215 4870]
            )
            (C {(sync)})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$KEEP_DEBOOTSTRAP_DIR'))} 
                          {(Lit_Other '=')} {(true)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-x)} 
                                  {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap/debootstrap))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(chmod)} {(644)} 
                              {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap/debootstrap))}
                            )
                          ]
                          spids: [16777215 4909]
                        )
                      ]
                      spids: [16777215 4922]
                    )
                  ]
                  spids: [16777215 4892]
                )
              ]
              else_action: [(C {(rm)} {(-rf)} {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap))})]
              spids: [4925 4938]
            )
          ]
          spids: [16777215 4603]
        )
      ]
      spids: [16777215 4940]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {(am_doing_phase)} {(kill_target)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$KEEP_DEBOOTSTRAP_DIR'))} 
                          {(KW_Bang '!') (Lit_Other '=')} {(true)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(info)} {(KILLTARGET)} {(DQ ('Deleting target directory'))})
                    (C {(rm)} {(-rf)} {(DQ ($ VSub_DollarName '$TARGET'))})
                  ]
                  spids: [16777215 4969]
                )
              ]
              spids: [16777215 4990]
            )
          ]
          spids: [16777215 4950]
        )
      ]
      spids: [16777215 4992]
    )
  ]
)