(command.CommandList
  children: [
    (C {<set>} {<-eu>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OUTPUT)
          op: assign_op.Equal
          rhs: {(DQ (${ Id.VSub_Name PWD) <'/'> ($ Id.VSub_Number '$1'))}
          spids: [59]
        )
      ]
    )
    (C {<shift>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TMP_DIR)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name TMPDIR>
                suffix_op: 
                  (suffix_op.Unary
                    tok: <Id.VTest_ColonHyphen ':-'>
                    arg_word: {<Id.Lit_Slash '/'> <tmp>}
                  )
              )
            }
          spids: [71]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PACKAGE_DIR)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (C {<mktemp>} {<-d>} 
                      {
                        (braced_var_sub
                          token: <Id.VSub_Name TMP_DIR>
                          suffix_op: 
                            (suffix_op.Unary
                              tok: <Id.VOp1_DPercent '%%'>
                              arg_word: {<Id.Lit_Slash '/'>}
                            )
                        ) <'/bazel.XXXXXXXX'>
                      }
                    )
                )
              )
            }
          spids: [79]
        )
      ]
    )
    (C {<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name PACKAGE_DIR))})
    (C {<trap>} 
      {
        (DQ <'rm -fr '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
          (${ Id.VSub_Name PACKAGE_DIR) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
        )
      } {<EXIT>}
    )
    (command.ForEach
      iter_name: i
      iter_words: [{($ Id.VSub_Star '$*')}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.AndOr
                          ops: [Id.Op_DPipe Id.Op_DPipe]
                          children: [
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$i'))} 
                              {<Id.Lit_Equals '='>} {(DQ <'tools/objc/xcrunwrapper.sh'>)} {<Id.Lit_RBracket ']'>}
                            )
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$i'))} 
                              {<Id.Lit_Equals '='>} {(DQ <'tools/objc/libtool.sh'>)} {<Id.Lit_RBracket ']'>}
                            )
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$i'))} 
                              {<Id.Lit_Equals '='>} {(DQ <'tools/objc/make_hashed_objlist.py'>)} {<Id.Lit_RBracket ']'>}
                            )
                          ]
                        )
                      ]
                    )
                  action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)]
                  spids: [140 193]
                )
              ]
            )
            (command.Case
              to_match: {(DQ ($ Id.VSub_DollarName '$i'))}
              arms: [
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <'tools/jdk/BUILD'> <Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: {<'tools/jdk/BUILD'>}
                          spids: [217]
                        )
                      ]
                    )
                  ]
                  spids: [212 215 220 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <JavaBuilder> <Id.Lit_Star '*'> <_deploy.jar>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: {<'tools/jdk/JavaBuilder_deploy.jar'>}
                          spids: [229]
                        )
                      ]
                    )
                  ]
                  spids: [223 227 232 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <turbine_deploy.jar>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: {<'tools/jdk/turbine_deploy.jar'>}
                          spids: [239]
                        )
                      ]
                    )
                  ]
                  spids: [235 237 242 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <javac.jar>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: {<'third_party/java/jdk/langtools/javac.jar'>}
                          spids: [249]
                        )
                      ]
                    )
                  ]
                  spids: [245 247 252 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <javac7.jar>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: {<'third_party/java/jdk/langtools/javac7.jar'>}
                          spids: [259]
                        )
                      ]
                    )
                  ]
                  spids: [255 257 262 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <SingleJar_deploy.jar>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: {<'tools/jdk/SingleJar_deploy.jar'>}
                          spids: [269]
                        )
                      ]
                    )
                  ]
                  spids: [265 267 272 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <GenClass_deploy.jar>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: {<'tools/jdk/GenClass_deploy.jar'>}
                          spids: [279]
                        )
                      ]
                    )
                  ]
                  spids: [275 277 282 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <Runner_deploy.jar>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: {<'tools/jdk/TestRunner_deploy.jar'>}
                          spids: [289]
                        )
                      ]
                    )
                  ]
                  spids: [285 287 292 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <ijar.exe>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: {<'tools/jdk/ijar/ijar.exe'>}
                          spids: [299]
                        )
                      ]
                    )
                  ]
                  spids: [295 297 302 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <ijar>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: {<'tools/jdk/ijar/ijar'>}
                          spids: [309]
                        )
                      ]
                    )
                  ]
                  spids: [305 307 312 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <zipper.exe>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: {<'tools/zip/zipper/zipper.exe'>}
                          spids: [319]
                        )
                      ]
                    )
                  ]
                  spids: [315 317 322 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <zipper>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: {<'tools/zip/zipper/zipper'>}
                          spids: [329]
                        )
                      ]
                    )
                  ]
                  spids: [325 327 332 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <'src/objc_tools/'> <Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: 
                            {<'tools/objc/precomp_'> 
                              (braced_var_sub
                                token: <Id.VSub_Name i>
                                suffix_op: 
                                  (suffix_op.Unary
                                    tok: <Id.VOp1_DPound '##'>
                                    arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                  )
                              )
                            }
                          spids: [340]
                        )
                      ]
                    )
                  ]
                  spids: [335 338 349 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <xcode> <Id.Lit_Star '*'> <StdRedirect.dylib>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: {<'tools/objc/StdRedirect.dylib'>}
                          spids: [358]
                        )
                      ]
                    )
                  ]
                  spids: [352 356 361 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <xcode> <Id.Lit_Star '*'> <make_hashed_objlist.py>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: {<'tools/objc/make_hashed_objlist.py'>}
                          spids: [370]
                        )
                      ]
                    )
                  ]
                  spids: [364 368 373 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <xcode> <Id.Lit_Star '*'> <realpath>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: {<'tools/objc/realpath'>}
                          spids: [382]
                        )
                      ]
                    )
                  ]
                  spids: [376 380 385 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <xcode> <Id.Lit_Star '*'> <xcode-locator>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: {<'tools/objc/xcode-locator'>}
                          spids: [394]
                        )
                      ]
                    )
                  ]
                  spids: [388 392 397 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <'src/tools/xcode/'> <Id.Lit_Star '*'> <.sh>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: 
                            {<'tools/objc/'> 
                              (braced_var_sub
                                token: <Id.VSub_Name i>
                                suffix_op: 
                                  (suffix_op.Unary
                                    tok: <Id.VOp1_DPound '##'>
                                    arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                  )
                              )
                            }
                          spids: [406]
                        )
                      ]
                    )
                  ]
                  spids: [400 404 415 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <'src/tools/xcode/'> <Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: 
                            {<'tools/objc/'> 
                              (braced_var_sub
                                token: <Id.VSub_Name i>
                                suffix_op: 
                                  (suffix_op.Unary
                                    tok: <Id.VOp1_DPound '##'>
                                    arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>}
                                  )
                              ) <.sh>
                            }
                          spids: [423]
                        )
                      ]
                    )
                  ]
                  spids: [418 421 433 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:OUTPUT_PATH)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<echo>} {($ Id.VSub_DollarName '$i')})
                                      (C {<sed>} {(SQ <'s_^.*bazel-out/[^/]*/bin/__'>)})
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [439]
                        )
                      ]
                    )
                  ]
                  spids: [436 437 454 -1]
                )
              ]
            )
            (C {<mkdir>} {<-p>} 
              {
                (DQ (${ Id.VSub_Name PACKAGE_DIR) <'/'> 
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: (C {<dirname>} {(DQ (${ Id.VSub_Name OUTPUT_PATH))})
                  )
                )
              }
            )
            (C {<cp>} {(DQ ($ Id.VSub_DollarName '$i'))} 
              {(DQ (${ Id.VSub_Name PACKAGE_DIR) <'/'> (${ Id.VSub_Name OUTPUT_PATH))}
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} 
                      {(${ Id.VSub_Name PACKAGE_DIR) <'/third_party/java/jdk/langtools/javac.jar'>} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<cp>} {(${ Id.VSub_Name PACKAGE_DIR) <'/third_party/java/jdk/langtools/javac7.jar'>} 
              {(${ Id.VSub_Name PACKAGE_DIR) <'/third_party/java/jdk/langtools/javac.jar'>}
            )
          ]
          spids: [501 517]
        )
      ]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {(DQ (${ Id.VSub_Name PACKAGE_DIR) <'/WORKSPACE'>)}
        )
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 557
              stdin_parts: [
                <'workspace(name = '>
                <Id.Right_DoubleQuote '"'>
                <bazel_tools>
                <Id.Right_DoubleQuote '"'>
                <')\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (C {<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name PACKAGE_DIR) <'/tools/defaults'>)})
    (C {<touch>} {(DQ (${ Id.VSub_Name PACKAGE_DIR) <'/tools/defaults/BUILD'>)})
    (command.ForEach
      iter_name: i
      iter_words: [
        {
          (command_sub
            left_token: <Id.Left_DollarParen '$('>
            child: (C {<find>} {(DQ (${ Id.VSub_Name PACKAGE_DIR))} {<-name>} {<BUILD.tools>})
          )
        }
      ]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (C {<mv>} {(DQ ($ Id.VSub_DollarName '$i'))} 
              {
                (DQ 
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: (C {<dirname>} {(DQ ($ Id.VSub_DollarName '$i'))})
                  ) <'/BUILD'>
                )
              }
            )
          ]
        )
    )
    (C {<find>} {(DQ (${ Id.VSub_Name PACKAGE_DIR))} {<-exec>} {<touch>} {<-t>} {<198001010000.00>} 
      {(SQ <'{}'>)} {(SQ <'+'>)}
    )
    (command.Subshell
      child: 
        (command.AndOr
          ops: [Id.Op_DAmp]
          children: [
            (C {<cd>} {(DQ (${ Id.VSub_Name PACKAGE_DIR))})
            (command.Pipeline
              children: [
                (C {<find>} {<.>} {<-type>} {<f>})
                (C {<sort>})
                (C {<zip>} {<-qDX> <Id.Lit_At '@'>} {(DQ (${ Id.VSub_Name OUTPUT))})
              ]
              negated: F
            )
          ]
        )
    )
  ]
)