(command.CommandList
  children: [
    (command.ShFunction
      name: usage
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:USAGE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'Usage: '> ($ Id.VSub_Number '$0') 
                        <' i386|amd64 [target dir] [be|dev|<stable version>]]'> <Id.Lit_BadBackslash '\\'> <'n\n'> <Id.Lit_BadBackslash '\\'> <'n\n'> 
                        <'The first mandatory argument speciifies the CPU architecture using'> <Id.Lit_BadBackslash '\\'> <'n\n'> <'the Debian convention (e.g. i386 and amd64).'> 
                        <Id.Lit_BadBackslash '\\'> <'n\n'> <Id.Lit_BadBackslash '\\'> <'n\n'> <'The second optional argument specifies the destination'> 
                        <Id.Lit_BadBackslash '\\'> <'n\n'> <'directory. This defaults to \'debian_<architecture>\'.'> <Id.Lit_BadBackslash '\\'> <'n\n'> 
                        <Id.Lit_BadBackslash '\\'> <'n\n'> <'The third optional argument specifies whether the chroot is'> <Id.Lit_BadBackslash '\\'> 
                        <'n\n'> <'populated with a Dart checkout. Use \'be\' for bleeding edge, \'dev\''> <Id.Lit_BadBackslash '\\'> 
                        <'n\n'> <'for trunk/developer or the specific version number for a stable'> <Id.Lit_BadBackslash '\\'> <'n\n'> 
                        <'version (e.g. 1.2).'>
                      )
                    }
                  spids: [35]
                )
              ]
            )
            (C {<echo>} {<-e>} {($ Id.VSub_DollarName '$USAGE')})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.AndOr
                  ops: [Id.Op_DPipe]
                  children: [
                    (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-lt>} {<1>} 
                      {<Id.Lit_RBracket ']'>}
                    )
                    (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-gt>} {<3>} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  ]
                )
              ]
            )
          action: [(C {<usage>})]
          spids: [94 118]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ARCH)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number '$1')}
          spids: [126]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_RBracket ']'>})
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHROOT)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [145]
                )
              ]
            )
          ]
          spids: [130 142]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:CHROOT)
              op: assign_op.Equal
              rhs: {<debian_> ($ Id.VSub_DollarName '$ARCH')}
              spids: [151]
            )
          ]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_Number '$3'))} {<Id.Lit_RBracket ']'>})
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:CHANNEL)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$3')}
                  spids: [173]
                )
              ]
            )
          ]
          spids: [158 170]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.AndOr
                  ops: [Id.Op_DAmp]
                  children: [
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$ARCH'))} 
                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <i386>)} {<Id.Lit_RBracket ']'>}
                    )
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$ARCH'))} 
                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <amd64>)} {<Id.Lit_RBracket ']'>}
                    )
                  ]
                )
              ]
            )
          action: [(C {<usage>})]
          spids: [179 213]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SVN_REPRO)
          op: assign_op.Equal
          rhs: {(DQ <'http://dart.googlecode.com/svn/'>)}
          spids: [221]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$CHANNEL'))} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$CHANNEL'))} 
                          {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <be>)} {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SVN_PATH)
                          op: assign_op.Equal
                          rhs: {(DQ <'branches/bleeding_edge/deps/all.deps'>)}
                          spids: [262]
                        )
                      ]
                    )
                  ]
                  spids: [241 259]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$CHANNEL'))} 
                          {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <dev>)} {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SVN_PATH)
                          op: assign_op.Equal
                          rhs: {(DQ <'trunk/deps/all.deps'>)}
                          spids: [289]
                        )
                      ]
                    )
                  ]
                  spids: [268 286]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:SVN_PATH)
                      op: assign_op.Equal
                      rhs: {(DQ <'branches/'> ($ Id.VSub_DollarName '$CHANNEL') <'/deps/all.deps'>)}
                      spids: [298]
                    )
                  ]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:SRC_URI)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$SVN_REPRO') ($ Id.VSub_DollarName '$SVN_PATH')}
                  spids: [309]
                )
              ]
            )
          ]
          spids: [226 238]
        )
      ]
    )
    (C {<debootstrap>} {<--arch> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$ARCH')} 
      {<--components> <Id.Lit_Equals '='> <main> <Id.Lit_Comma ','> <restricted> <Id.Lit_Comma ','> 
        <universe> <Id.Lit_Comma ','> <multiverse>
      } {<wheezy>} {($ Id.VSub_DollarName '$CHROOT')} 
      {<http> <Id.Lit_Colon ':'> <'//http.us.debian.org/debian/'>}
    )
    (C {<chroot>} {($ Id.VSub_DollarName '$CHROOT')} {<apt-get>} {<update>})
    (C {<chroot>} {($ Id.VSub_DollarName '$CHROOT')} {<apt-get>} {<-y>} {<install>} {<debhelper>} {<python>} 
      {<git>} {<gcc>} {<sudo>} {<make>}
    )
    (C {<chroot>} {($ Id.VSub_DollarName '$CHROOT')} {<groupadd>} {<--gid>} {<1001>} {<chrome-bot>})
    (C {<chroot>} {($ Id.VSub_DollarName '$CHROOT')} {<useradd>} {<--gid>} {<1001>} {<--uid>} {<1001>} 
      {<--create-home>} {<chrome-bot>}
    )
    (C {<mkdir>} {($ Id.VSub_DollarName '$CHROOT') <'/b'>})
    (C {<chown>} {<1001> <Id.Lit_Colon ':'> <1001>} {($ Id.VSub_DollarName '$CHROOT') <'/b'>})
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 443
              stdin_parts: [<'#!/bin/sh\n'> <'su -c /b/init_chroot.sh chrome-bot\n'>]
            )
        )
        (redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName '$CHROOT') <'/b/init_chroot_trampoline.sh'>}
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {(SQ <EOF>)}
              here_end_span_id: 463
              stdin_parts: [<'#!/bin/sh\n'> <'cd /b\n'>]
            )
        )
        (redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName '$CHROOT') <'/b/init_chroot.sh'>}
        )
      ]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$SRC_URI'))} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {(SQ <EOF>)}
                      here_end_span_id: 503
                      stdin_parts: [
                        <
'git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git\n'
                        >
                        <'export PATH=$PATH:/b/depot_tools\n'>
                      ]
                    )
                )
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName '$CHROOT') <'/b/init_chroot.sh'>}
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<EOF>}
                      here_end_span_id: 522
                      stdin_parts: [
                        <'gclient config '>
                        ($ Id.VSub_DollarName '$SRC_URI')
                        <'\n'>
                        <'gclient sync\n'>
                        <'gclient runhooks\n'>
                      ]
                    )
                )
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName '$CHROOT') <'/b/init_chroot.sh'>}
                )
              ]
              do_fork: T
            )
          ]
          spids: [474 486]
        )
      ]
    )
    (C {<chmod>} {<755>} {($ Id.VSub_DollarName '$CHROOT') <'/b/init_chroot_trampoline.sh'>})
    (C {<chown>} {<1001> <Id.Lit_Colon ':'> <1001>} 
      {($ Id.VSub_DollarName '$CHROOT') <'/b/init_chroot.sh'>}
    )
    (C {<chmod>} {<755>} {($ Id.VSub_DollarName '$CHROOT') <'/b/init_chroot.sh'>})
    (C {<chroot>} {($ Id.VSub_DollarName '$CHROOT')} {<'/bin/sh'>} {<'/b/init_chroot_trampoline.sh'>})
  ]
)