(CommandList
  children: [
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(errexit)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SCRIPT_DIR)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (AndOr
                        children: [
                          (C {(cd)} 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(dirname)} {($ VSub_Number "$0")})]
                                  )
                                left_token: <Left_CommandSub "$(">
                                spids: [86 90]
                              )
                            }
                          )
                          (C {(pwd)})
                        ]
                        op_id: Op_DAmp
                      )
                    ]
                  )
                left_token: <Left_CommandSub "$(">
                spids: [83 95]
              )
            }
          spids: [82]
        )
      ]
      spids: [82]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(-z)} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name DIST>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                        spids: [105 108]
                      )
                    )
                  } {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(echo)} {(DQ ("error: DIST not defined"))}) (C {(exit)} {(1)})]
          spids: [-1 114]
        )
      ]
      spids: [-1 128]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(-z)} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name APT_REPO>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                        spids: [138 141]
                      )
                    )
                  } {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(echo)} {(DQ ("error: APT_REPO not defined"))}) (C {(exit)} {(1)})]
          spids: [-1 147]
        )
      ]
      spids: [-1 161]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(-z)} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name KEYRING_FILE>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                        spids: [171 174]
                      )
                    )
                  } {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(echo)} {(DQ ("error: KEYRING_FILE not defined"))}) (C {(exit)} {(1)})]
          spids: [-1 180]
        )
      ]
      spids: [-1 194]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(-z)} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name DEBIAN_PACKAGES>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                        spids: [204 207]
                      )
                    )
                  } {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(echo)} {(DQ ("error: DEBIAN_PACKAGES not defined"))}) (C {(exit)} {(1)})]
          spids: [-1 213]
        )
      ]
      spids: [-1 227]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:REPO_BASEDIR)
          op: Equal
          rhs: {(DQ (${ VSub_Name APT_REPO) (/dists/) (${ VSub_Name DIST))}
          spids: [232]
        )
      ]
      spids: [230]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [(assign_pair lhs:(LhsName name:REQUIRED_TOOLS) op:Equal rhs:{(DQ (wget))} spids:[246])]
      spids: [244]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [(assign_pair lhs:(LhsName name:RELEASE_FILE) op:Equal rhs:{(DQ (Release))} spids:[264])]
      spids: [262]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:RELEASE_FILE_GPG)
          op: Equal
          rhs: {(DQ (Release.gpg))}
          spids: [271]
        )
      ]
      spids: [269]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:RELEASE_LIST)
          op: Equal
          rhs: {(DQ (${ VSub_Name REPO_BASEDIR) (/) (${ VSub_Name RELEASE_FILE))}
          spids: [278]
        )
      ]
      spids: [276]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:RELEASE_LIST_GPG)
          op: Equal
          rhs: {(DQ (${ VSub_Name REPO_BASEDIR) (/) (${ VSub_Name RELEASE_FILE_GPG))}
          spids: [291]
        )
      ]
      spids: [289]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:PACKAGE_FILE_AMD64)
          op: Equal
          rhs: {(DQ (main/binary-amd64/Packages.bz2))}
          spids: [304]
        )
      ]
      spids: [302]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:PACKAGE_FILE_I386)
          op: Equal
          rhs: {(DQ (main/binary-i386/Packages.bz2))}
          spids: [311]
        )
      ]
      spids: [309]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:PACKAGE_FILE_ARM)
          op: Equal
          rhs: {(DQ (main/binary-armhf/Packages.bz2))}
          spids: [318]
        )
      ]
      spids: [316]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:PACKAGE_FILE_MIPS)
          op: Equal
          rhs: {(DQ (main/binary-mipsel/Packages.bz2))}
          spids: [325]
        )
      ]
      spids: [323]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:PACKAGE_LIST_AMD64)
          op: Equal
          rhs: {(DQ (${ VSub_Name REPO_BASEDIR) (/) (${ VSub_Name PACKAGE_FILE_AMD64))}
          spids: [332]
        )
      ]
      spids: [330]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:PACKAGE_LIST_I386)
          op: Equal
          rhs: {(DQ (${ VSub_Name REPO_BASEDIR) (/) (${ VSub_Name PACKAGE_FILE_I386))}
          spids: [345]
        )
      ]
      spids: [343]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:PACKAGE_LIST_ARM)
          op: Equal
          rhs: {(DQ (${ VSub_Name REPO_BASEDIR) (/) (${ VSub_Name PACKAGE_FILE_ARM))}
          spids: [358]
        )
      ]
      spids: [356]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:PACKAGE_LIST_MIPS)
          op: Equal
          rhs: {(DQ (${ VSub_Name REPO_BASEDIR) (/) (${ VSub_Name PACKAGE_FILE_MIPS))}
          spids: [371]
        )
      ]
      spids: [369]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:DEBIAN_DEP_LIST_AMD64)
          op: Equal
          rhs: {(DQ (packagelist.) (${ VSub_Name DIST) (.amd64))}
          spids: [385]
        )
      ]
      spids: [383]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:DEBIAN_DEP_LIST_I386)
          op: Equal
          rhs: {(DQ (packagelist.) (${ VSub_Name DIST) (.i386))}
          spids: [396]
        )
      ]
      spids: [394]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:DEBIAN_DEP_LIST_ARM)
          op: Equal
          rhs: {(DQ (packagelist.) (${ VSub_Name DIST) (.arm))}
          spids: [407]
        )
      ]
      spids: [405]
    )
    (Assignment
      keyword: Assign_Readonly
      pairs: [
        (assign_pair
          lhs: (LhsName name:DEBIAN_DEP_LIST_MIPS)
          op: Equal
          rhs: {(DQ (packagelist.) (${ VSub_Name DIST) (.mipsel))}
          spids: [418]
        )
      ]
      spids: [416]
    )
    (FuncDef
      name: Banner
      body: 
        (BraceGroup
          children: [
            (C {(echo)} 
              {(DQ ("######################################################################"))}
            )
            (C {(echo)} {($ VSub_Star "$*")})
            (C {(echo)} 
              {(DQ ("######################################################################"))}
            )
          ]
          spids: [442]
        )
      spids: [438 441]
    )
    (FuncDef
      name: SubBanner
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ (----------------------------------------------------------------------))})
            (C {(echo)} {($ VSub_Star "$*")})
            (C {(echo)} {(DQ (----------------------------------------------------------------------))})
          ]
          spids: [471]
        )
      spids: [467 470]
    )
    (FuncDef
      name: Usage
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (C {(egrep)} {(DQ ("^#@"))} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name BASH_SOURCE>
                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                        spids: [510 515]
                      )
                    )
                  }
                )
                (C {(cut)} {(--bytes) (Lit_Other "=") (3-)})
              ]
              negated: False
            )
          ]
          spids: [500]
        )
      spids: [496 499]
    )
    (FuncDef
      name: DownloadOrCopy
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other "[")} {(-f)} {(DQ ($ VSub_Number "$2"))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ($ VSub_Number "$2") (" already in place"))})
                    (ControlFlow token:<ControlFlow_Return return>)
                  ]
                  spids: [-1 551]
                )
              ]
              spids: [-1 565]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:HTTP) op:Equal rhs:{(0)} spids:[569])]
              spids: [569]
            )
            (AndOr
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {(DQ ($ VSub_Number "$1"))})
                    (C {(grep)} {(-qs)} {(Lit_Other "^") (http) (Lit_Other ":") (//)})
                  ]
                  negated: False
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:HTTP) op:Equal rhs:{(1)} spids:[592])]
                  spids: [592]
                )
              ]
              op_id: Op_DAmp
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$HTTP"))} {(Lit_Other "=")} {(DQ (1))} 
                          {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(SubBanner)} 
                      {(DQ ("downloading from ") ($ VSub_Number "$1") (" -> ") ($ VSub_Number "$2"))}
                    )
                    (C {(wget)} {(DQ ($ VSub_Number "$1"))} {(-O)} {(DQ (${ VSub_Number 2) (.partial))})
                    (C {(mv)} {(DQ (${ VSub_Number 2) (.partial))} {($ VSub_Number "$2")})
                  ]
                  spids: [-1 613]
                )
              ]
              else_action: [
                (C {(SubBanner)} {(DQ ("copying from ") ($ VSub_Number "$1"))})
                (C {(cp)} {(DQ ($ VSub_Number "$1"))} {(DQ ($ VSub_Number "$2"))})
              ]
              spids: [654 676]
            )
          ]
          spids: [534]
        )
      spids: [530 533]
    )
    (FuncDef
      name: SetEnvironmentVariables
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:ARCH) op:Equal rhs:{(DQ )} spids:[689])]
              spids: [689]
            )
            (AndOr
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {($ VSub_Number "$1")})
                    (C {(grep)} {(-qs)} {(Amd64) (Lit_Other "$")})
                  ]
                  negated: False
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [(assign_pair lhs:(LhsName name:ARCH) op:Equal rhs:{(AMD64)} spids:[709])]
                  spids: [709]
                )
              ]
              op_id: Op_DAmp
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$ARCH"))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (AndOr
                      children: [
                        (Pipeline
                          children: [
                            (C {(echo)} {($ VSub_Number "$1")})
                            (C {(grep)} {(-qs)} {(I386) (Lit_Other "$")})
                          ]
                          negated: False
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ARCH)
                              op: Equal
                              rhs: {(I386)}
                              spids: [744]
                            )
                          ]
                          spids: [744]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  spids: [-1 726]
                )
              ]
              spids: [-1 748]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$ARCH"))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (AndOr
                      children: [
                        (Pipeline
                          children: [
                            (C {(echo)} {($ VSub_Number "$1")})
                            (C {(grep)} {(-qs)} {(Mips) (Lit_Other "$")})
                          ]
                          negated: False
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ARCH)
                              op: Equal
                              rhs: {(MIPS)}
                              spids: [782]
                            )
                          ]
                          spids: [782]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  spids: [-1 764]
                )
              ]
              spids: [-1 786]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$ARCH"))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (AndOr
                      children: [
                        (Pipeline
                          children: [
                            (C {(echo)} {($ VSub_Number "$1")})
                            (C {(grep)} {(-qs)} {(ARM) (Lit_Other "$")})
                          ]
                          negated: False
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ARCH)
                              op: Equal
                              rhs: {(ARM)}
                              spids: [820]
                            )
                          ]
                          spids: [820]
                        )
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  spids: [-1 802]
                )
              ]
              spids: [-1 824]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other "[")} {(-z)} {(DQ (${ VSub_Name ARCH))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ("ERROR: Unable to determine architecture based on: ") 
                          ($ VSub_Number "$1")
                        )
                      }
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [-1 842]
                )
              ]
              spids: [-1 858]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:ARCH_LOWER)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {($ VSub_Name "$ARCH")})
                                  (C {(tr)} {(SQ <"[:upper:]">)} {(SQ <"[:lower:]">)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [862 878]
                      )
                    }
                  spids: [861]
                )
              ]
              spids: [861]
            )
          ]
          spids: [686]
        )
      spids: [682 685]
    )
    (FuncDef
      name: SanityCheck
      body: 
        (BraceGroup
          children: [
            (C {(Banner)} {(DQ ("Sanity Checks"))})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:chrome_dir)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (AndOr
                                children: [
                                  (C {(cd)} {(DQ (${ VSub_Name SCRIPT_DIR) (/../../../..))})
                                  (C {(pwd)})
                                ]
                                op_id: Op_DAmp
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [908 921]
                      )
                    }
                  spids: [907]
                )
              ]
              spids: [905]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:BUILD_DIR)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name chrome_dir) (/out/sysroot-build/) (${ VSub_Name DIST))}
                  spids: [924]
                )
              ]
              spids: [924]
            )
            (C {(mkdir)} {(-p)} {(${ VSub_Name BUILD_DIR)})
            (C {(echo)} {(DQ ("Using build directory: ") (${ VSub_Name BUILD_DIR))})
            (ForEach
              iter_name: tool
              iter_words: [{(${ VSub_Name REQUIRED_TOOLS)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [
                                    (SimpleCommand
                                      words: [{(which)} {(${ VSub_Name tool)}]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: -1
                                          arg_word: {(/dev/null)}
                                          spids: [981]
                                        )
                                      ]
                                    )
                                  ]
                                  negated: True
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (C {(echo)} 
                              {(DQ ("Required binary ") ($ VSub_Name "$tool") (" not found."))}
                            )
                            (C {(echo)} {(DQ (Exiting.))})
                            (C {(exit)} {(1)})
                          ]
                          spids: [-1 987]
                        )
                      ]
                      spids: [-1 1011]
                    )
                  ]
                  spids: [968 1014]
                )
              spids: [961 966]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:INSTALL_ROOT)
                  op: Equal
                  rhs: 
                    {
                      (DQ (${ VSub_Name BUILD_DIR) (/) (${ VSub_Name DIST) (_) (${ VSub_Name ARCH_LOWER) 
                        (_staging)
                      )
                    }
                  spids: [1022]
                )
              ]
              spids: [1022]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:TARBALL)
                  op: Equal
                  rhs: 
                    {
                      (DQ (${ VSub_Name BUILD_DIR) (/) (${ VSub_Name DISTRO) (_) (${ VSub_Name DIST) (_) 
                        (${ VSub_Name ARCH_LOWER) (_sysroot.tgz)
                      )
                    }
                  spids: [1039]
                )
              ]
              spids: [1039]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [(C {(mkdir)} {(-p)} {(DQ (${ VSub_Name INSTALL_ROOT))})]
                          negated: True
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ("ERROR: ") (${ VSub_Name INSTALL_ROOT) (" can't be created."))})
                    (C {(exit)} {(1)})
                  ]
                  spids: [-1 1077]
                )
              ]
              spids: [-1 1096]
            )
          ]
          spids: [894]
        )
      spids: [890 893]
    )
    (FuncDef
      name: ChangeDirectory
      body: (BraceGroup children:[(C {(cd)} {(${ VSub_Name SCRIPT_DIR)})] spids:[1106])
      spids: [1102 1105]
    )
    (FuncDef
      name: ClearInstallDir
      body: 
        (BraceGroup
          children: [
            (C {(Banner)} {(DQ ("Clearing dirs in ") (${ VSub_Name INSTALL_ROOT))})
            (C {(rm)} {(-rf)} {(${ VSub_Name INSTALL_ROOT) (/) (Lit_Other "*")})
          ]
          spids: [1127]
        )
      spids: [1123 1126]
    )
    (FuncDef
      name: CreateTarBall
      body: 
        (BraceGroup
          children: [
            (C {(Banner)} {(DQ ("Creating tarball ") (${ VSub_Name TARBALL))})
            (C {(tar)} {(zcf)} {(${ VSub_Name TARBALL)} {(-C)} {(${ VSub_Name INSTALL_ROOT)} {(.)})
          ]
          spids: [1158]
        )
      spids: [1154 1157]
    )
    (FuncDef
      name: ExtractPackageBz2
      body: 
        (BraceGroup
          children: [
            (Pipeline
              children: [
                (C {(bzcat)} {(DQ ($ VSub_Number "$1"))})
                (SimpleCommand
                  words: [{(egrep)} {(SQ <"^(Package:|Filename:|SHA256:) ">)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(DQ ($ VSub_Number "$2"))}
                      spids: [1211]
                    )
                  ]
                )
              ]
              negated: False
            )
          ]
          spids: [1194]
        )
      spids: [1190 1193]
    )
    (FuncDef
      name: GeneratePackageListAmd64
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:output_file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [1229]
                )
              ]
              spids: [1227]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:package_list)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name BUILD_DIR) (/Packages.) (${ VSub_Name DIST) (_amd64.bz2))}
                  spids: [1237]
                )
              ]
              spids: [1235]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tmp_package_list)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name BUILD_DIR) (/Packages.) (${ VSub_Name DIST) (_amd64))}
                  spids: [1252]
                )
              ]
              spids: [1250]
            )
            (C {(DownloadOrCopy)} {(DQ (${ VSub_Name PACKAGE_LIST_AMD64))} 
              {(DQ (${ VSub_Name package_list))}
            )
            (C {(VerifyPackageListing)} {(DQ (${ VSub_Name PACKAGE_FILE_AMD64))} 
              {(DQ (${ VSub_Name package_list))}
            )
            (C {(ExtractPackageBz2)} {(DQ ($ VSub_Name "$package_list"))} 
              {(DQ ($ VSub_Name "$tmp_package_list"))}
            )
            (C {(GeneratePackageList)} {(DQ ($ VSub_Name "$tmp_package_list"))} 
              {(DQ ($ VSub_Name "$output_file"))} {(DQ (${ VSub_Name DEBIAN_PACKAGES) ("\n") ("    ") (${ VSub_Name DEBIAN_PACKAGES_X86))}
            )
          ]
          spids: [1224]
        )
      spids: [1220 1223]
    )
    (FuncDef
      name: GeneratePackageListI386
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:output_file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [1339]
                )
              ]
              spids: [1337]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:package_list)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name BUILD_DIR) (/Packages.) (${ VSub_Name DIST) (_i386.bz2))}
                  spids: [1347]
                )
              ]
              spids: [1345]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tmp_package_list)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name BUILD_DIR) (/Packages.) (${ VSub_Name DIST) (_amd64))}
                  spids: [1362]
                )
              ]
              spids: [1360]
            )
            (C {(DownloadOrCopy)} {(DQ (${ VSub_Name PACKAGE_LIST_I386))} 
              {(DQ (${ VSub_Name package_list))}
            )
            (C {(VerifyPackageListing)} {(DQ (${ VSub_Name PACKAGE_FILE_I386))} 
              {(DQ (${ VSub_Name package_list))}
            )
            (C {(ExtractPackageBz2)} {(DQ ($ VSub_Name "$package_list"))} 
              {(DQ ($ VSub_Name "$tmp_package_list"))}
            )
            (C {(GeneratePackageList)} {(DQ ($ VSub_Name "$tmp_package_list"))} 
              {(DQ ($ VSub_Name "$output_file"))} {(DQ (${ VSub_Name DEBIAN_PACKAGES) ("\n") ("    ") (${ VSub_Name DEBIAN_PACKAGES_X86))}
            )
          ]
          spids: [1334]
        )
      spids: [1330 1333]
    )
    (FuncDef
      name: GeneratePackageListARM
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:output_file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [1449]
                )
              ]
              spids: [1447]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:package_list)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name BUILD_DIR) (/Packages.) (${ VSub_Name DIST) (_arm.bz2))}
                  spids: [1457]
                )
              ]
              spids: [1455]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tmp_package_list)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name BUILD_DIR) (/Packages.) (${ VSub_Name DIST) (_arm))}
                  spids: [1472]
                )
              ]
              spids: [1470]
            )
            (C {(DownloadOrCopy)} {(DQ (${ VSub_Name PACKAGE_LIST_ARM))} 
              {(DQ (${ VSub_Name package_list))}
            )
            (C {(VerifyPackageListing)} {(DQ (${ VSub_Name PACKAGE_FILE_ARM))} 
              {(DQ (${ VSub_Name package_list))}
            )
            (C {(ExtractPackageBz2)} {(DQ ($ VSub_Name "$package_list"))} 
              {(DQ ($ VSub_Name "$tmp_package_list"))}
            )
            (C {(GeneratePackageList)} {(DQ ($ VSub_Name "$tmp_package_list"))} 
              {(DQ ($ VSub_Name "$output_file"))} {(DQ (${ VSub_Name DEBIAN_PACKAGES))}
            )
          ]
          spids: [1444]
        )
      spids: [1440 1443]
    )
    (FuncDef
      name: GeneratePackageListMips
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:output_file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [1554]
                )
              ]
              spids: [1552]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:package_list)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name BUILD_DIR) (/Packages.) (${ VSub_Name DIST) (_mips.bz2))}
                  spids: [1562]
                )
              ]
              spids: [1560]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tmp_package_list)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name BUILD_DIR) (/Packages.) (${ VSub_Name DIST) (_mips))}
                  spids: [1577]
                )
              ]
              spids: [1575]
            )
            (C {(DownloadOrCopy)} {(DQ (${ VSub_Name PACKAGE_LIST_MIPS))} 
              {(DQ (${ VSub_Name package_list))}
            )
            (C {(VerifyPackageListing)} {(DQ (${ VSub_Name PACKAGE_FILE_MIPS))} 
              {(DQ (${ VSub_Name package_list))}
            )
            (C {(ExtractPackageBz2)} {(DQ ($ VSub_Name "$package_list"))} 
              {(DQ ($ VSub_Name "$tmp_package_list"))}
            )
            (C {(GeneratePackageList)} {(DQ ($ VSub_Name "$tmp_package_list"))} 
              {(DQ ($ VSub_Name "$output_file"))} {(DQ (${ VSub_Name DEBIAN_PACKAGES))}
            )
          ]
          spids: [1549]
        )
      spids: [1545 1548]
    )
    (FuncDef
      name: StripChecksumsFromPackageList
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:package_file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [1659]
                )
              ]
              spids: [1657]
            )
            (C {(sed)} {(-i)} {(SQ <"s/ [a-f0-9]\\{64\\}$//">)} {(DQ ($ VSub_Name "$package_file"))})
          ]
          spids: [1654]
        )
      spids: [1650 1653]
    )
    (FuncDef
      name: VerifyPackageFilesMatch
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:downloaded_package_file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [1689]
                )
              ]
              spids: [1687]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:stored_package_file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$2"))}
                  spids: [1697]
                )
              ]
              spids: [1695]
            )
            (C {(diff)} {(-u)} {(DQ ($ VSub_Name "$downloaded_package_file"))} 
              {(DQ ($ VSub_Name "$stored_package_file"))}
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(DQ ($ VSub_QMark "$?"))} {(-ne)} {(DQ (0))} 
                          {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ("ERROR: downloaded package files does not match ") ($ VSub_Number "$2") 
                          (.)
                        )
                      }
                    )
                    (C {(echo)} {(DQ ("You may need to run UpdatePackageLists."))})
                    (C {(exit)} {(1)})
                  ]
                  spids: [-1 1733]
                )
              ]
              spids: [-1 1757]
            )
          ]
          spids: [1684]
        )
      spids: [1680 1683]
    )
    (FuncDef
      name: HacksAndPatchesAmd64
      body: 
        (BraceGroup
          children: [
            (C {(Banner)} {(DQ ("Misc Hacks & Patches"))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lscripts)
                  op: Equal
                  rhs: 
                    {
                      (DQ (${ VSub_Name INSTALL_ROOT) ("/usr/lib/x86_64-linux-gnu/libpthread.so ") 
                        ("            ") (${ VSub_Name INSTALL_ROOT) (/usr/lib/x86_64-linux-gnu/libc.so)
                      )
                    }
                  spids: [1794]
                )
              ]
              spids: [1794]
            )
            (C {(sed)} {(-i)} {(-e)} {(SQ <"s|/usr/lib/x86_64-linux-gnu/||g">)} {(${ VSub_Name lscripts)})
            (C {(sed)} {(-i)} {(-e)} {(SQ <"s|/lib/x86_64-linux-gnu/||g">)} {(${ VSub_Name lscripts)})
            (C {(SubBanner)} {(DQ ("Package Configs Symlink"))})
            (C {(mkdir)} {(-p)} {(${ VSub_Name INSTALL_ROOT) (/usr/share)})
            (C {(ln)} {(-s)} {(../lib/x86_64-linux-gnu/pkgconfig)} 
              {(${ VSub_Name INSTALL_ROOT) (/usr/share/pkgconfig)}
            )
            (C {(SubBanner)} {(DQ ("Adding an additional ld.conf include"))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:LD_SO_HACK_CONF)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name INSTALL_ROOT) (/etc/ld.so.conf.d/zz_hack.conf))}
                  spids: [1890]
                )
              ]
              spids: [1890]
            )
            (SimpleCommand
              words: [{(echo)} {(/usr/lib/gcc/x86_64-linux-gnu/4.6)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(DQ ($ VSub_Name "$LD_SO_HACK_CONF"))}
                  spids: [1903]
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(/usr/lib)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {(DQ ($ VSub_Name "$LD_SO_HACK_CONF"))}
                  spids: [1914]
                )
              ]
            )
          ]
          spids: [1776]
        )
      spids: [1772 1775]
    )
    (FuncDef
      name: HacksAndPatchesI386
      body: 
        (BraceGroup
          children: [
            (C {(Banner)} {(DQ ("Misc Hacks & Patches"))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lscripts)
                  op: Equal
                  rhs: 
                    {
                      (DQ (${ VSub_Name INSTALL_ROOT) ("/usr/lib/i386-linux-gnu/libpthread.so ") 
                        ("            ") (${ VSub_Name INSTALL_ROOT) (/usr/lib/i386-linux-gnu/libc.so)
                      )
                    }
                  spids: [1946]
                )
              ]
              spids: [1946]
            )
            (C {(sed)} {(-i)} {(-e)} {(SQ <"s|/usr/lib/i386-linux-gnu/||g">)} {(${ VSub_Name lscripts)})
            (C {(sed)} {(-i)} {(-e)} {(SQ <"s|/lib/i386-linux-gnu/||g">)} {(${ VSub_Name lscripts)})
            (C {(SubBanner)} {(DQ ("Package Configs Symlink"))})
            (C {(mkdir)} {(-p)} {(${ VSub_Name INSTALL_ROOT) (/usr/share)})
            (C {(ln)} {(-s)} {(../lib/i386-linux-gnu/pkgconfig)} 
              {(${ VSub_Name INSTALL_ROOT) (/usr/share/pkgconfig)}
            )
            (C {(SubBanner)} {(DQ ("Adding an additional ld.conf include"))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:LD_SO_HACK_CONF)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name INSTALL_ROOT) (/etc/ld.so.conf.d/zz_hack.conf))}
                  spids: [2042]
                )
              ]
              spids: [2042]
            )
            (SimpleCommand
              words: [{(echo)} {(/usr/lib/gcc/i486-linux-gnu/4.6)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(DQ ($ VSub_Name "$LD_SO_HACK_CONF"))}
                  spids: [2055]
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(/usr/lib)}]
              redirects: [
                (Redir
                  op_id: Redir_DGreat
                  fd: -1
                  arg_word: {(DQ ($ VSub_Name "$LD_SO_HACK_CONF"))}
                  spids: [2066]
                )
              ]
            )
          ]
          spids: [1928]
        )
      spids: [1924 1927]
    )
    (FuncDef
      name: HacksAndPatchesARM
      body: 
        (BraceGroup
          children: [
            (C {(Banner)} {(DQ ("Misc Hacks & Patches"))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lscripts)
                  op: Equal
                  rhs: 
                    {
                      (DQ (${ VSub_Name INSTALL_ROOT) ("/usr/lib/arm-linux-gnueabihf/libpthread.so ") 
                        ("            ") (${ VSub_Name INSTALL_ROOT) (/usr/lib/arm-linux-gnueabihf/libc.so)
                      )
                    }
                  spids: [2098]
                )
              ]
              spids: [2098]
            )
            (C {(sed)} {(-i)} {(-e)} {(SQ <"s|/usr/lib/arm-linux-gnueabihf/||g">)} 
              {(${ VSub_Name lscripts)}
            )
            (C {(sed)} {(-i)} {(-e)} {(SQ <"s|/lib/arm-linux-gnueabihf/||g">)} {(${ VSub_Name lscripts)})
            (C {(SubBanner)} {(DQ ("Package Configs Symlink"))})
            (C {(mkdir)} {(-p)} {(${ VSub_Name INSTALL_ROOT) (/usr/share)})
            (C {(ln)} {(-s)} {(../lib/arm-linux-gnueabihf/pkgconfig)} 
              {(${ VSub_Name INSTALL_ROOT) (/usr/share/pkgconfig)}
            )
          ]
          spids: [2080]
        )
      spids: [2076 2079]
    )
    (FuncDef
      name: HacksAndPatchesMips
      body: 
        (BraceGroup
          children: [
            (C {(Banner)} {(DQ ("Misc Hacks & Patches"))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lscripts)
                  op: Equal
                  rhs: 
                    {
                      (DQ (${ VSub_Name INSTALL_ROOT) ("/usr/lib/mipsel-linux-gnu/libpthread.so ") 
                        ("            ") (${ VSub_Name INSTALL_ROOT) (/usr/lib/mipsel-linux-gnu/libc.so)
                      )
                    }
                  spids: [2211]
                )
              ]
              spids: [2211]
            )
            (C {(sed)} {(-i)} {(-e)} {(SQ <"s|/usr/lib/mipsel-linux-gnu/||g">)} {(${ VSub_Name lscripts)})
            (C {(sed)} {(-i)} {(-e)} {(SQ <"s|/lib/mipsel-linux-gnu/||g">)} {(${ VSub_Name lscripts)})
            (C {(SubBanner)} {(DQ ("Package Configs Symlink"))})
            (C {(mkdir)} {(-p)} {(${ VSub_Name INSTALL_ROOT) (/usr/share)})
            (C {(ln)} {(-s)} {(../lib/mipsel-linux-gnu/pkgconfig)} 
              {(${ VSub_Name INSTALL_ROOT) (/usr/share/pkgconfig)}
            )
          ]
          spids: [2193]
        )
      spids: [2189 2192]
    )
    (FuncDef
      name: InstallIntoSysroot
      body: 
        (BraceGroup
          children: [
            (C {(Banner)} {(DQ ("Install Libs And Headers Into Jail"))})
            (C {(mkdir)} {(-p)} {(${ VSub_Name BUILD_DIR) (/debian-packages)})
            (C {(mkdir)} {(-p)} {(${ VSub_Name INSTALL_ROOT)})
            (While
              cond: [
                (Sentence
                  child: (DParen child:(ArithWord w:{(DQ ($ VSub_Pound "$#"))}))
                  terminator: <Op_Semi ";">
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:file)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number "$1"))}
                          spids: [2353]
                        )
                      ]
                      spids: [2351]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:package)
                          op: Equal
                          rhs: 
                            {
                              (DQ (${ VSub_Name BUILD_DIR) (/debian-packages/) 
                                (BracedVarSub
                                  token: <VSub_Name file>
                                  suffix_op: 
                                    (StringUnary
                                      op_id: VOp1_DPound
                                      arg_word: {("*") (Lit_Slash /)}
                                    )
                                  spids: [2367 2372]
                                )
                              )
                            }
                          spids: [2361]
                        )
                      ]
                      spids: [2359]
                    )
                    (C {(shift)})
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:sha256sum)
                          op: Equal
                          rhs: {(DQ ($ VSub_Number "$1"))}
                          spids: [2381]
                        )
                      ]
                      spids: [2379]
                    )
                    (C {(shift)})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other "[")} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name sha256sum>
                                        prefix_op: VSub_Pound
                                        spids: [2395 2398]
                                      )
                                    )
                                  } {(-ne)} {(DQ (64))} {(Lit_Other "]")}
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (C {(echo)} {(DQ ("Bad sha256sum from package list"))})
                            (C {(exit)} {(1)})
                          ]
                          spids: [-1 2410]
                        )
                      ]
                      spids: [-1 2425]
                    )
                    (C {(Banner)} {(DQ ("Installing ") (${ VSub_Name file))})
                    (C {(DownloadOrCopy)} {(${ VSub_Name APT_REPO) (/pool/) (${ VSub_Name file)} 
                      {(${ VSub_Name package)}
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other "[")} {(KW_Bang "!")} {(-s)} {(DQ (${ VSub_Name package))} 
                                  {(Lit_Other "]")}
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (C {(echo)})
                            (C {(echo)} {(DQ ("ERROR: bad package ") (${ VSub_Name package))})
                            (C {(exit)} {(1)})
                          ]
                          spids: [-1 2472]
                        )
                      ]
                      spids: [-1 2493]
                    )
                    (Pipeline
                      children: [
                        (C {(echo)} {(DQ (${ VSub_Name sha256sum) ("  ") (${ VSub_Name package))})
                        (C {(sha256sum)} {(--quiet)} {(-c)})
                      ]
                      negated: False
                    )
                    (C {(SubBanner)} {(DQ ("Extracting to ") (${ VSub_Name INSTALL_ROOT))})
                    (Pipeline
                      children: [
                        (C {(dpkg)} {(--fsys-tarfile)} {(${ VSub_Name package)})
                        (C {(tar)} {(-xf)} {(-)} {(--exclude) (Lit_Other "=") (./usr/share)} {(-C)} 
                          {(${ VSub_Name INSTALL_ROOT)}
                        )
                      ]
                      negated: False
                    )
                  ]
                  spids: [2348 2556]
                )
            )
          ]
          spids: [2306]
        )
      spids: [2302 2305]
    )
    (FuncDef
      name: CleanupJailSymlinks
      body: 
        (BraceGroup
          children: [
            (C {(Banner)} {(DQ ("Jail symlink cleanup"))})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:SAVEDPWD)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(pwd)})])
                        left_token: <Left_CommandSub "$(">
                        spids: [2578 2580]
                      )
                    }
                  spids: [2577]
                )
              ]
              spids: [2577]
            )
            (C {(cd)} {(${ VSub_Name INSTALL_ROOT)})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:libdirs)
                  op: Equal
                  rhs: {(DQ ("lib usr/lib"))}
                  spids: [2592]
                )
              ]
              spids: [2590]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(DQ (${ VSub_Name ARCH))} {(KW_Bang "!") (Lit_Other "=")} 
                          {(DQ (MIPS))} {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:libdirs)
                          op: PlusEqual
                          rhs: {(DQ (" lib64"))}
                          spids: [2621]
                        )
                      ]
                      spids: [2621]
                    )
                  ]
                  spids: [-1 2618]
                )
              ]
              spids: [-1 2627]
            )
            (Pipeline
              children: [
                (C {(find)} {($ VSub_Name "$libdirs")} {(-type)} {(l)} {(-printf)} {(SQ <"%p %l\\n">)})
                (While
                  cond: [(Sentence child:(C {(read)} {(link)} {(target)}) terminator:<Op_Semi ";">)]
                  body: 
                    (DoGroup
                      children: [
                        (AndOr
                          children: [
                            (Pipeline
                              children: [
                                (C {(echo)} {(DQ (${ VSub_Name target))})
                                (C {(grep)} {(-qs)} {(Lit_Other "^") (/)})
                              ]
                              negated: False
                            )
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          op_id: Op_DPipe
                        )
                        (C {(echo)} {(DQ (${ VSub_Name link) (": ") (${ VSub_Name target))})
                        (Case
                          to_match: {(DQ (${ VSub_Name link))}
                          arms: [
                            (case_arm
                              pat_list: [
                                {(usr/lib/gcc/x86_64-linux-gnu/4.) (Lit_Other "*") (/) (Lit_Other "*")}
                                {(usr/lib/gcc/i486-linux-gnu/4.) (Lit_Other "*") (/) (Lit_Other "*")}
                                {(usr/lib/gcc/arm-linux-gnueabihf/4.) (Lit_Other "*") (/) 
                                  (Lit_Other "*")
                                }
                                {(usr/lib/gcc/mipsel-linux-gnu/4.) (Lit_Other "*") (/) (Lit_Other "*")}
                              ]
                              action: [
                                (C {(ln)} {(-snfv)} {(DQ (../../../../..) (${ VSub_Name target))} 
                                  {(DQ (${ VSub_Name link))}
                                )
                              ]
                              spids: [2708 2737 2762 -1]
                            )
                            (case_arm
                              pat_list: [
                                {(usr/lib/x86_64-linux-gnu/) (Lit_Other "*")}
                                {(usr/lib/i386-linux-gnu/) (Lit_Other "*")}
                                {(usr/lib/arm-linux-gnueabihf/) (Lit_Other "*")}
                                {(usr/lib/mipsel-linux-gnu/) (Lit_Other "*")}
                              ]
                              action: [
                                (C {(ln)} {(-snfv)} {(DQ (../../..) (${ VSub_Name target))} 
                                  {(DQ (${ VSub_Name link))}
                                )
                              ]
                              spids: [2765 2785 2810 -1]
                            )
                            (case_arm
                              pat_list: [{(usr/lib/) (Lit_Other "*")}]
                              action: [
                                (C {(ln)} {(-snfv)} {(DQ (../..) (${ VSub_Name target))} 
                                  {(DQ (${ VSub_Name link))}
                                )
                              ]
                              spids: [2813 2815 2840 -1]
                            )
                            (case_arm
                              pat_list: [{(lib64/) (Lit_Other "*")} {(lib/) (Lit_Other "*")}]
                              action: [
                                (C {(ln)} {(-snfv)} {(DQ (..) (${ VSub_Name target))} 
                                  {(DQ (${ VSub_Name link))}
                                )
                              ]
                              spids: [2843 2850 2875 -1]
                            )
                          ]
                          spids: [2697 2705 2878]
                        )
                      ]
                      spids: [2655 2881]
                    )
                )
              ]
              negated: False
            )
            (Pipeline
              children: [
                (C {(find)} {($ VSub_Name "$libdirs")} {(-type)} {(l)} {(-printf)} {(SQ <"%p %l\\n">)})
                (While
                  cond: [(Sentence child:(C {(read)} {(link)} {(target)}) terminator:<Op_Semi ";">)]
                  body: 
                    (DoGroup
                      children: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other "[")} {(KW_Bang "!")} {(-r)} {(DQ (${ VSub_Name link))} 
                                      {(Lit_Other "]")}
                                    )
                                  terminator: <Op_Semi ";">
                                )
                              ]
                              action: [
                                (C {(echo)} {(DQ ("ERROR: FOUND BAD LINK ") (${ VSub_Name link))})
                                (C {(ls)} {(-l)} {(${ VSub_Name link)})
                                (C {(exit)} {(1)})
                              ]
                              spids: [-1 2934]
                            )
                          ]
                          spids: [-1 2961]
                        )
                      ]
                      spids: [2910 2964]
                    )
                )
              ]
              negated: False
            )
            (C {(cd)} {(DQ ($ VSub_Name "$SAVEDPWD"))})
          ]
          spids: [2566]
        )
      spids: [2562 2565]
    )
    (FuncDef
      name: BuildSysrootAmd64
      body: 
        (BraceGroup
          children: [
            (C {(ClearInstallDir)})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:package_file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$BUILD_DIR") (/package_with_sha256sum_amd64))}
                  spids: [3000]
                )
              ]
              spids: [2998]
            )
            (C {(GeneratePackageListAmd64)} {(DQ ($ VSub_Name "$package_file"))})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:files_and_sha256sums)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(cat)} {(${ VSub_Name package_file)})]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3018 3024]
                        )
                      )
                    }
                  spids: [3016]
                )
              ]
              spids: [3014]
            )
            (C {(StripChecksumsFromPackageList)} {(DQ ($ VSub_Name "$package_file"))})
            (C {(VerifyPackageFilesMatch)} {(DQ ($ VSub_Name "$package_file"))} 
              {(DQ ($ VSub_Name "$DEBIAN_DEP_LIST_AMD64"))}
            )
            (C {(InstallIntoSysroot)} {(${ VSub_Name files_and_sha256sums)})
            (C {(CleanupJailSymlinks)})
            (C {(HacksAndPatchesAmd64)})
            (C {(CreateTarBall)})
          ]
          spids: [2992]
        )
      spids: [2988 2991]
    )
    (FuncDef
      name: BuildSysrootI386
      body: 
        (BraceGroup
          children: [
            (C {(ClearInstallDir)})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:package_file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$BUILD_DIR") (/package_with_sha256sum_i386))}
                  spids: [3088]
                )
              ]
              spids: [3086]
            )
            (C {(GeneratePackageListI386)} {(DQ ($ VSub_Name "$package_file"))})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:files_and_sha256sums)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(cat)} {(${ VSub_Name package_file)})]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3106 3112]
                        )
                      )
                    }
                  spids: [3104]
                )
              ]
              spids: [3102]
            )
            (C {(StripChecksumsFromPackageList)} {(DQ ($ VSub_Name "$package_file"))})
            (C {(VerifyPackageFilesMatch)} {(DQ ($ VSub_Name "$package_file"))} 
              {(DQ ($ VSub_Name "$DEBIAN_DEP_LIST_I386"))}
            )
            (C {(InstallIntoSysroot)} {(${ VSub_Name files_and_sha256sums)})
            (C {(CleanupJailSymlinks)})
            (C {(HacksAndPatchesI386)})
            (C {(CreateTarBall)})
          ]
          spids: [3080]
        )
      spids: [3076 3079]
    )
    (FuncDef
      name: BuildSysrootARM
      body: 
        (BraceGroup
          children: [
            (C {(ClearInstallDir)})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:package_file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$BUILD_DIR") (/package_with_sha256sum_arm))}
                  spids: [3176]
                )
              ]
              spids: [3174]
            )
            (C {(GeneratePackageListARM)} {(DQ ($ VSub_Name "$package_file"))})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:files_and_sha256sums)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(cat)} {(${ VSub_Name package_file)})]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3194 3200]
                        )
                      )
                    }
                  spids: [3192]
                )
              ]
              spids: [3190]
            )
            (C {(StripChecksumsFromPackageList)} {(DQ ($ VSub_Name "$package_file"))})
            (C {(VerifyPackageFilesMatch)} {(DQ ($ VSub_Name "$package_file"))} 
              {(DQ ($ VSub_Name "$DEBIAN_DEP_LIST_ARM"))}
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:APT_REPO)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name APR_REPO_ARM>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonEquals
                            arg_word: {($ VSub_Name "$APT_REPO")}
                          )
                        spids: [3223 3227]
                      )
                    }
                  spids: [3222]
                )
              ]
              spids: [3222]
            )
            (C {(InstallIntoSysroot)} {(${ VSub_Name files_and_sha256sums)})
            (C {(CleanupJailSymlinks)})
            (C {(HacksAndPatchesARM)})
            (C {(CreateTarBall)})
          ]
          spids: [3168]
        )
      spids: [3164 3167]
    )
    (FuncDef
      name: BuildSysrootMips
      body: 
        (BraceGroup
          children: [
            (C {(ClearInstallDir)})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:package_file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name "$BUILD_DIR") (/package_with_sha256sum_arm))}
                  spids: [3272]
                )
              ]
              spids: [3270]
            )
            (C {(GeneratePackageListMips)} {(DQ ($ VSub_Name "$package_file"))})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:files_and_sha256sums)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(cat)} {(${ VSub_Name package_file)})]
                            )
                          left_token: <Left_CommandSub "$(">
                          spids: [3290 3296]
                        )
                      )
                    }
                  spids: [3288]
                )
              ]
              spids: [3286]
            )
            (C {(StripChecksumsFromPackageList)} {(DQ ($ VSub_Name "$package_file"))})
            (C {(VerifyPackageFilesMatch)} {(DQ ($ VSub_Name "$package_file"))} 
              {(DQ ($ VSub_Name "$DEBIAN_DEP_LIST_MIPS"))}
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:APT_REPO)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name APR_REPO_MIPS>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonEquals
                            arg_word: {($ VSub_Name "$APT_REPO")}
                          )
                        spids: [3319 3323]
                      )
                    }
                  spids: [3318]
                )
              ]
              spids: [3318]
            )
            (C {(InstallIntoSysroot)} {(${ VSub_Name files_and_sha256sums)})
            (C {(CleanupJailSymlinks)})
            (C {(HacksAndPatchesMips)})
            (C {(CreateTarBall)})
          ]
          spids: [3264]
        )
      spids: [3260 3263]
    )
    (FuncDef
      name: BuildSysrootAll
      body: 
        (BraceGroup
          children: [
            (C {(RunCommand)} {(BuildSysrootAmd64)})
            (C {(RunCommand)} {(BuildSysrootI386)})
            (C {(RunCommand)} {(BuildSysrootARM)})
            (C {(RunCommand)} {(BuildSysrootMips)})
          ]
          spids: [3360]
        )
      spids: [3356 3359]
    )
    (FuncDef
      name: UploadSysroot
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:rev)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [3394]
                )
              ]
              spids: [3392]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other "[")} {(-z)} {(DQ (${ VSub_Name rev))} {(Lit_Other "]")})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ("Please specify a revision to upload at."))})
                    (C {(exit)} {(1)})
                  ]
                  spids: [-1 3413]
                )
              ]
              spids: [-1 3428]
            )
            (C {(set)} {(-x)})
            (C {(gsutil)} {(cp)} {(-a)} {(public-read)} {(DQ (${ VSub_Name TARBALL))} 
              {(DQ ("gs://chrome-linux-sysroot/toolchain/") ($ VSub_Name "$rev") (/))}
            )
            (C {(set)} {(Lit_Other "+") (x)})
          ]
          spids: [3389]
        )
      spids: [3385 3388]
    )
    (FuncDef
      name: UploadSysrootAmd64
      body: (BraceGroup children:[(C {(UploadSysroot)} {(DQ ($ VSub_At "$@"))})] spids:[3480])
      spids: [3476 3479]
    )
    (FuncDef
      name: UploadSysrootI386
      body: (BraceGroup children:[(C {(UploadSysroot)} {(DQ ($ VSub_At "$@"))})] spids:[3505])
      spids: [3501 3504]
    )
    (FuncDef
      name: UploadSysrootARM
      body: (BraceGroup children:[(C {(UploadSysroot)} {(DQ ($ VSub_At "$@"))})] spids:[3530])
      spids: [3526 3529]
    )
    (FuncDef
      name: UploadSysrootMips
      body: (BraceGroup children:[(C {(UploadSysroot)} {(DQ ($ VSub_At "$@"))})] spids:[3555])
      spids: [3551 3554]
    )
    (FuncDef
      name: UploadSysrootAll
      body: 
        (BraceGroup
          children: [
            (C {(RunCommand)} {(UploadSysrootAmd64)} {(DQ ($ VSub_At "$@"))})
            (C {(RunCommand)} {(UploadSysrootI386)} {(DQ ($ VSub_At "$@"))})
            (C {(RunCommand)} {(UploadSysrootARM)} {(DQ ($ VSub_At "$@"))})
            (C {(RunCommand)} {(UploadSysrootMips)} {(DQ ($ VSub_At "$@"))})
          ]
          spids: [3583]
        )
      spids: [3579 3582]
    )
    (FuncDef
      name: CheckForDebianGPGKeyring
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(KW_Bang "!")} {(-e)} {(DQ ($ VSub_Name "$KEYRING_FILE"))} 
                          {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {(DQ ("Debian GPG keys missing. Install the debian-archive-keyring package."))}
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [-1 3661]
                )
              ]
              spids: [-1 3676]
            )
          ]
          spids: [3643]
        )
      spids: [3639 3642]
    )
    (FuncDef
      name: VerifyPackageListing
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:file_path)
                  op: Equal
                  rhs: {($ VSub_Number "$1")}
                  spids: [3705]
                )
              ]
              spids: [3703]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:output_file)
                  op: Equal
                  rhs: {($ VSub_Number "$2")}
                  spids: [3711]
                )
              ]
              spids: [3709]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:release_file)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name BUILD_DIR) (/) (${ VSub_Name RELEASE_FILE))}
                  spids: [3717]
                )
              ]
              spids: [3715]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:release_file_gpg)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name BUILD_DIR) (/) (${ VSub_Name RELEASE_FILE_GPG))}
                  spids: [3731]
                )
              ]
              spids: [3729]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:tmp_keyring_file)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name BUILD_DIR) (/keyring.gpg))}
                  spids: [3745]
                )
              ]
              spids: [3743]
            )
            (C {(CheckForDebianGPGKeyring)})
            (C {(DownloadOrCopy)} {(${ VSub_Name RELEASE_LIST)} {(${ VSub_Name release_file)})
            (C {(DownloadOrCopy)} {(${ VSub_Name RELEASE_LIST_GPG)} {(${ VSub_Name release_file_gpg)})
            (C {(echo)} 
              {
                (DQ ("Verifying: ") (${ VSub_Name release_file) (" with ") 
                  (${ VSub_Name release_file_gpg)
                )
              }
            )
            (C {(cp)} {(DQ (${ VSub_Name KEYRING_FILE))} {(DQ (${ VSub_Name tmp_keyring_file))})
            (C {(gpg)} {(--primary-keyring)} {(DQ (${ VSub_Name tmp_keyring_file))} {(--recv-keys)} 
              {(2B90D010)}
            )
            (C {(gpgv)} {(--keyring)} {(DQ (${ VSub_Name tmp_keyring_file))} 
              {(DQ (${ VSub_Name release_file_gpg))} {(DQ (${ VSub_Name release_file))}
            )
            (C {(echo)} {(DQ ("Verifying: ") (${ VSub_Name output_file))})
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:checksums)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(grep)} {(${ VSub_Name file_path)} {(${ VSub_Name release_file)})
                                  (C {(cut)} {(-d)} {(DQ (" "))} {(-f)} {(2)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [3862 3886]
                      )
                    }
                  spids: [3861]
                )
              ]
              spids: [3859]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sha256sum)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(echo)} {(${ VSub_Name checksums)})
                                  (C {(cut)} {(-d)} {(DQ (" "))} {(-f)} {(3)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [3892 3912]
                      )
                    }
                  spids: [3891]
                )
              ]
              spids: [3889]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name sha256sum>
                                prefix_op: VSub_Pound
                                spids: [3921 3924]
                              )
                            )
                          } {(-ne)} {(DQ (64))} {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ("Bad sha256sum from ") (${ VSub_Name RELEASE_LIST))})
                    (C {(exit)} {(1)})
                  ]
                  spids: [-1 3936]
                )
              ]
              spids: [-1 3954]
            )
            (Pipeline
              children: [
                (C {(echo)} {(DQ (${ VSub_Name sha256sum) ("  ") (${ VSub_Name output_file))})
                (C {(sha256sum)} {(--quiet)} {(-c)})
              ]
              negated: False
            )
          ]
          spids: [3700]
        )
      spids: [3696 3699]
    )
    (FuncDef
      name: GeneratePackageList
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:input_file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$1"))}
                  spids: [4008]
                )
              ]
              spids: [4006]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:output_file)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number "$2"))}
                  spids: [4016]
                )
              ]
              spids: [4014]
            )
            (C {(echo)} 
              {(DQ ("Updating: ") (${ VSub_Name output_file) (" from ") (${ VSub_Name input_file))}
            )
            (C {(/bin/rm)} {(-f)} {(DQ (${ VSub_Name output_file))})
            (C {(shift)})
            (C {(shift)})
            (ForEach
              iter_name: pkg
              iter_words: [{($ VSub_At "$@")}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:pkg_full)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(grep)} {(-A)} {(1)} 
                                            {
                                              (DQ (" ") (${ VSub_Name pkg) 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar "\\$">
                                                )
                                              )
                                            } {(DQ ($ VSub_Name "$input_file"))}
                                          )
                                          (C {(egrep)} {(-o)} {(DQ ("pool/.*"))})
                                        ]
                                        negated: False
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub "$(">
                                spids: [4069 4099]
                              )
                            }
                          spids: [4068]
                        )
                      ]
                      spids: [4066]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other "[")} {(-z)} {(DQ (${ VSub_Name pkg_full))} 
                                  {(Lit_Other "]")}
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (C {(echo)} {(DQ ("ERROR: missing package: ") ($ VSub_Name "$pkg"))})
                            (C {(exit)} {(1)})
                          ]
                          spids: [-1 4117]
                        )
                      ]
                      spids: [-1 4133]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:pkg_nopool)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} {(DQ ($ VSub_Name "$pkg_full"))})
                                          (C {(sed)} 
                                            {
                                              (DQ ("s/^pool") 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar "\\/">
                                                ) (//)
                                              )
                                            }
                                          )
                                        ]
                                        negated: False
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub "$(">
                                spids: [4139 4155]
                              )
                            }
                          spids: [4138]
                        )
                      ]
                      spids: [4136]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:sha256sum)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(grep)} {(-A)} {(4)} 
                                            {
                                              (DQ (" ") (${ VSub_Name pkg) 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar "\\$">
                                                )
                                              )
                                            } {(DQ ($ VSub_Name "$input_file"))}
                                          )
                                          (C {(grep)} {(Lit_Other "^") (SHA256) (Lit_Other ":")})
                                          (C {(sed)} {(SQ <"s/^SHA256: //">)})
                                        ]
                                        negated: False
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub "$(">
                                spids: [4161 4197]
                              )
                            }
                          spids: [4160]
                        )
                      ]
                      spids: [4158]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other "[")} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name sha256sum>
                                        prefix_op: VSub_Pound
                                        spids: [4205 4208]
                                      )
                                    )
                                  } {(-ne)} {(DQ (64))} {(Lit_Other "]")}
                                )
                              terminator: <Op_Semi ";">
                            )
                          ]
                          action: [
                            (C {(echo)} {(DQ ("Bad sha256sum from Packages"))})
                            (C {(exit)} {(1)})
                          ]
                          spids: [-1 4220]
                        )
                      ]
                      spids: [-1 4235]
                    )
                    (SimpleCommand
                      words: [{(echo)} {($ VSub_Name "$pkg_nopool")} {($ VSub_Name "$sha256sum")}]
                      redirects: [
                        (Redir
                          op_id: Redir_DGreat
                          fd: -1
                          arg_word: {(DQ ($ VSub_Name "$output_file"))}
                          spids: [4244]
                        )
                      ]
                    )
                  ]
                  spids: [4063 4251]
                )
              spids: [4058 4061]
            )
            (C {(sort)} {(DQ ($ VSub_Name "$output_file"))} {(-o)} {(DQ ($ VSub_Name "$output_file"))})
          ]
          spids: [4003]
        )
      spids: [3999 4002]
    )
    (FuncDef
      name: UpdatePackageListsAmd64
      body: 
        (BraceGroup
          children: [
            (C {(GeneratePackageListAmd64)} {(DQ ($ VSub_Name "$DEBIAN_DEP_LIST_AMD64"))})
            (C {(StripChecksumsFromPackageList)} {(DQ ($ VSub_Name "$DEBIAN_DEP_LIST_AMD64"))})
          ]
          spids: [4292]
        )
      spids: [4288 4291]
    )
    (FuncDef
      name: UpdatePackageListsI386
      body: 
        (BraceGroup
          children: [
            (C {(GeneratePackageListI386)} {(DQ ($ VSub_Name "$DEBIAN_DEP_LIST_I386"))})
            (C {(StripChecksumsFromPackageList)} {(DQ ($ VSub_Name "$DEBIAN_DEP_LIST_I386"))})
          ]
          spids: [4330]
        )
      spids: [4326 4329]
    )
    (FuncDef
      name: UpdatePackageListsARM
      body: 
        (BraceGroup
          children: [
            (C {(GeneratePackageListARM)} {(DQ ($ VSub_Name "$DEBIAN_DEP_LIST_ARM"))})
            (C {(StripChecksumsFromPackageList)} {(DQ ($ VSub_Name "$DEBIAN_DEP_LIST_ARM"))})
          ]
          spids: [4368]
        )
      spids: [4364 4367]
    )
    (FuncDef
      name: UpdatePackageListsMips
      body: 
        (BraceGroup
          children: [
            (C {(GeneratePackageListMips)} {(DQ ($ VSub_Name "$DEBIAN_DEP_LIST_MIPS"))})
            (C {(StripChecksumsFromPackageList)} {(DQ ($ VSub_Name "$DEBIAN_DEP_LIST_MIPS"))})
          ]
          spids: [4406]
        )
      spids: [4402 4405]
    )
    (FuncDef
      name: UpdatePackageListsAll
      body: 
        (BraceGroup
          children: [
            (C {(RunCommand)} {(UpdatePackageListsAmd64)})
            (C {(RunCommand)} {(UpdatePackageListsI386)})
            (C {(RunCommand)} {(UpdatePackageListsARM)})
            (C {(RunCommand)} {(UpdatePackageListsMips)})
          ]
          spids: [4441]
        )
      spids: [4437 4440]
    )
    (FuncDef
      name: RunCommand
      body: 
        (BraceGroup
          children: [
            (C {(SetEnvironmentVariables)} {(DQ ($ VSub_Number "$1"))})
            (C {(SanityCheck)})
            (C {(DQ ($ VSub_At "$@"))})
          ]
          spids: [4470]
        )
      spids: [4466 4469]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other "[")} {($ VSub_Pound "$#")} {(-eq)} {(0)} {(Lit_Other "]")})
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} {(DQ ("ERROR: you must specify a mode on the commandline"))})
            (C {(echo)})
            (C {(Usage)})
            (C {(exit)} {(1)})
          ]
          spids: [-1 4504]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} 
                  {
                    (DQ 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(type)} {(-t)} {($ VSub_Number "$1")})]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [4529 4535]
                      )
                    )
                  } {(KW_Bang "!") (Lit_Other "=")} {(DQ (function))} {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ("ERROR: unknown function '") ($ VSub_Number "$1") ("'."))}]
              redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[4559])]
            )
            (C {(echo)} {(DQ ("For help, try:"))})
            (C {(echo)} {(DQ ("    ") ($ VSub_Number "$0") (" help"))})
            (C {(exit)} {(1)})
          ]
          spids: [4524 4548]
        )
      ]
      else_action: [
        (C {(ChangeDirectory)})
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (Pipeline
                      children: [
                        (C {(echo)} {($ VSub_Number "$1")})
                        (C {(grep)} {(-qs)} {(DQ (All) (Lit_Other "$"))})
                      ]
                      negated: False
                    )
                  terminator: <Op_Semi ";">
                )
              ]
              action: [(C {(DQ ($ VSub_At "$@"))})]
              spids: [-1 4607]
            )
          ]
          else_action: [(C {(RunCommand)} {(DQ ($ VSub_At "$@"))})]
          spids: [4615 4625]
        )
      ]
      spids: [4583 4627]
    )
  ]
)