(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'Tests git rev-list --bisect functionality'>)}
          spids: [12]
        )
      ]
    )
    (C {<.>} {<'./test-lib.sh'>})
    (C {<.>} {(DQ ($ Id.VSub_DollarName '$TEST_DIRECTORY')) <'/lib-t6000.sh'>})
    (command.ShFunction
      name: test_bisection_diff
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_max_diff)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [52]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_bisect_option)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$2')}
                  spids: [56]
                )
              ]
            )
            (C {<shift>} {<2>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_bisection)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (C {<git>} {<rev-list>} {($ Id.VSub_DollarName '$_bisect_option')} 
                            {(DQ ($ Id.VSub_At '$@'))}
                          )
                      )
                    }
                  spids: [65]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_list_size)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<git>} {<rev-list>} {(DQ ($ Id.VSub_At '$@'))})
                              (C {<wc>} {<-l>})
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [79]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_head)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [97]
                )
              ]
            )
            (C {<shift>} {<1>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_bisection_size)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {<git>} {<rev-list>} {($ Id.VSub_DollarName '$_bisection')} 
                                {(DQ ($ Id.VSub_At '$@'))}
                              )
                              (C {<wc>} {<-l>})
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [106]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$_list_size'))} {<-a>} 
                  {<-n>} {(DQ ($ Id.VSub_DollarName '$_bisection_size'))} {<Id.Lit_RBracket ']'>}
                )
                (C {<error>} {(DQ <'test_bisection_diff failed'>)})
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_bisect_err)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (C {<expr>} {($ Id.VSub_DollarName '$_list_size')} {<->} 
                            {($ Id.VSub_DollarName '$_bisection_size')} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>)} {<2>}
                          )
                      )
                    }
                  spids: [167]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {(DQ ($ Id.VSub_DollarName '$_bisect_err'))} {<-lt>} {<0>})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:_bisect_err)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: (C {<expr>} {<0>} {<->} {($ Id.VSub_DollarName '$_bisect_err')})
                          )
                        }
                      spids: [195]
                    )
                  ]
                )
              ]
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:_bisect_err)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: (C {<expr>} {($ Id.VSub_DollarName '$_bisect_err')} {<'/'>} {<2>})
                          )
                        }
                      spids: [207]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (C {<test_expect_success>} 
              {
                (DQ <'bisection diff '> ($ Id.VSub_DollarName '$_bisect_option') <' '> 
                  ($ Id.VSub_DollarName '$_head') <' '> ($ Id.VSub_Star '$*') <' <= '> ($ Id.VSub_DollarName '$_max_diff')
                )
              } {(SQ <'test $_bisect_err -le $_max_diff'>)}
            )
          ]
        )
    )
    (command.Simple
      words: [{<date>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<path0>})]
      do_fork: T
    )
    (C {<git>} {<update-index>} {<--add>} {<path0>})
    (C {<save_tag>} {<tree>} {<git>} {<write-tree>})
    (C {<on_committer_date>} {(DQ <'00:00'>)} {<hide_error>} {<save_tag>} {<root>} {<unique_commit>} 
      {<root>} {<tree>}
    )
    (C {<on_committer_date>} {(DQ <'00:01'>)} {<save_tag>} {<l0>} {<unique_commit>} {<l0>} {<tree>} {<-p>} 
      {<root>}
    )
    (C {<on_committer_date>} {(DQ <'00:02'>)} {<save_tag>} {<l1>} {<unique_commit>} {<l1>} {<tree>} {<-p>} 
      {<l0>}
    )
    (C {<on_committer_date>} {(DQ <'00:03'>)} {<save_tag>} {<l2>} {<unique_commit>} {<l2>} {<tree>} {<-p>} 
      {<l1>}
    )
    (C {<on_committer_date>} {(DQ <'00:04'>)} {<save_tag>} {<a0>} {<unique_commit>} {<a0>} {<tree>} {<-p>} 
      {<l2>}
    )
    (C {<on_committer_date>} {(DQ <'00:05'>)} {<save_tag>} {<a1>} {<unique_commit>} {<a1>} {<tree>} {<-p>} 
      {<a0>}
    )
    (C {<on_committer_date>} {(DQ <'00:06'>)} {<save_tag>} {<b1>} {<unique_commit>} {<b1>} {<tree>} {<-p>} 
      {<a0>}
    )
    (C {<on_committer_date>} {(DQ <'00:07'>)} {<save_tag>} {<c1>} {<unique_commit>} {<c1>} {<tree>} {<-p>} 
      {<b1>}
    )
    (C {<on_committer_date>} {(DQ <'00:08'>)} {<save_tag>} {<b2>} {<unique_commit>} {<b2>} {<tree>} {<-p>} 
      {<b1>}
    )
    (C {<on_committer_date>} {(DQ <'00:09'>)} {<save_tag>} {<b3>} {<unique_commit>} {<b2>} {<tree>} {<-p>} 
      {<b2>}
    )
    (C {<on_committer_date>} {(DQ <'00:10'>)} {<save_tag>} {<c2>} {<unique_commit>} {<c2>} {<tree>} {<-p>} 
      {<c1>} {<-p>} {<b2>}
    )
    (C {<on_committer_date>} {(DQ <'00:11'>)} {<save_tag>} {<c3>} {<unique_commit>} {<c3>} {<tree>} {<-p>} 
      {<c2>}
    )
    (C {<on_committer_date>} {(DQ <'00:12'>)} {<save_tag>} {<a2>} {<unique_commit>} {<a2>} {<tree>} {<-p>} 
      {<a1>}
    )
    (C {<on_committer_date>} {(DQ <'00:13'>)} {<save_tag>} {<a3>} {<unique_commit>} {<a3>} {<tree>} {<-p>} 
      {<a2>}
    )
    (C {<on_committer_date>} {(DQ <'00:14'>)} {<save_tag>} {<b4>} {<unique_commit>} {<b4>} {<tree>} {<-p>} 
      {<b3>} {<-p>} {<a3>}
    )
    (C {<on_committer_date>} {(DQ <'00:15'>)} {<save_tag>} {<a4>} {<unique_commit>} {<a4>} {<tree>} {<-p>} 
      {<a3>} {<-p>} {<b4>} {<-p>} {<c3>}
    )
    (C {<on_committer_date>} {(DQ <'00:16'>)} {<save_tag>} {<l3>} {<unique_commit>} {<l3>} {<tree>} {<-p>} 
      {<a4>}
    )
    (C {<on_committer_date>} {(DQ <'00:17'>)} {<save_tag>} {<l4>} {<unique_commit>} {<l4>} {<tree>} {<-p>} 
      {<l3>}
    )
    (C {<on_committer_date>} {(DQ <'00:18'>)} {<save_tag>} {<l5>} {<unique_commit>} {<l5>} {<tree>} {<-p>} 
      {<l4>}
    )
    (C {<git>} {<update-ref>} {<HEAD>} 
      {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<tag>} {<l5>}))}
    )
    (C {<on_committer_date>} {(DQ <'00:00'>)} {<hide_error>} {<save_tag>} {<F>} {<unique_commit>} {<F>} 
      {<tree>}
    )
    (C {<on_committer_date>} {(DQ <'00:01'>)} {<save_tag>} {<e8>} {<unique_commit>} {<e8>} {<tree>} {<-p>} 
      {<F>}
    )
    (C {<on_committer_date>} {(DQ <'00:02'>)} {<save_tag>} {<e7>} {<unique_commit>} {<e7>} {<tree>} {<-p>} 
      {<e8>}
    )
    (C {<on_committer_date>} {(DQ <'00:03'>)} {<save_tag>} {<e6>} {<unique_commit>} {<e6>} {<tree>} {<-p>} 
      {<e7>}
    )
    (C {<on_committer_date>} {(DQ <'00:04'>)} {<save_tag>} {<e5>} {<unique_commit>} {<e5>} {<tree>} {<-p>} 
      {<e6>}
    )
    (C {<on_committer_date>} {(DQ <'00:05'>)} {<save_tag>} {<f4>} {<unique_commit>} {<f4>} {<tree>} {<-p>} 
      {<F>}
    )
    (C {<on_committer_date>} {(DQ <'00:06'>)} {<save_tag>} {<f3>} {<unique_commit>} {<f3>} {<tree>} {<-p>} 
      {<f4>}
    )
    (C {<on_committer_date>} {(DQ <'00:07'>)} {<save_tag>} {<f2>} {<unique_commit>} {<f2>} {<tree>} {<-p>} 
      {<f3>}
    )
    (C {<on_committer_date>} {(DQ <'00:08'>)} {<save_tag>} {<f1>} {<unique_commit>} {<f1>} {<tree>} {<-p>} 
      {<f2>}
    )
    (C {<on_committer_date>} {(DQ <'00:09'>)} {<save_tag>} {<e4>} {<unique_commit>} {<e4>} {<tree>} {<-p>} 
      {<e5>}
    )
    (C {<on_committer_date>} {(DQ <'00:10'>)} {<save_tag>} {<e3>} {<unique_commit>} {<e3>} {<tree>} {<-p>} 
      {<e4>}
    )
    (C {<on_committer_date>} {(DQ <'00:11'>)} {<save_tag>} {<e2>} {<unique_commit>} {<e2>} {<tree>} {<-p>} 
      {<e3>}
    )
    (C {<on_committer_date>} {(DQ <'00:12'>)} {<save_tag>} {<e1>} {<unique_commit>} {<e1>} {<tree>} {<-p>} 
      {<e2>}
    )
    (C {<on_committer_date>} {(DQ <'00:13'>)} {<save_tag>} {<E>} {<unique_commit>} {<E>} {<tree>} {<-p>} 
      {<e1>} {<-p>} {<f1>}
    )
    (C {<on_committer_date>} {(DQ <'00:00'>)} {<hide_error>} {<save_tag>} {<U>} {<unique_commit>} {<U>} 
      {<tree>}
    )
    (C {<on_committer_date>} {(DQ <'00:01'>)} {<save_tag>} {<u0>} {<unique_commit>} {<u0>} {<tree>} {<-p>} 
      {<U>}
    )
    (C {<on_committer_date>} {(DQ <'00:01'>)} {<save_tag>} {<u1>} {<unique_commit>} {<u1>} {<tree>} {<-p>} 
      {<u0>}
    )
    (C {<on_committer_date>} {(DQ <'00:02'>)} {<save_tag>} {<u2>} {<unique_commit>} {<u2>} {<tree>} {<-p>} 
      {<u0>}
    )
    (C {<on_committer_date>} {(DQ <'00:03'>)} {<save_tag>} {<u3>} {<unique_commit>} {<u3>} {<tree>} {<-p>} 
      {<u0>}
    )
    (C {<on_committer_date>} {(DQ <'00:04'>)} {<save_tag>} {<u4>} {<unique_commit>} {<u4>} {<tree>} {<-p>} 
      {<u0>}
    )
    (C {<on_committer_date>} {(DQ <'00:05'>)} {<save_tag>} {<u5>} {<unique_commit>} {<u5>} {<tree>} {<-p>} 
      {<u0>}
    )
    (C {<on_committer_date>} {(DQ <'00:06'>)} {<save_tag>} {<V>} {<unique_commit>} {<V>} {<tree>} {<-p>} 
      {<u1>} {<-p>} {<u2>} {<-p>} {<u3>} {<-p>} {<u4>} {<-p>} {<u5>}
    )
    (command.ShFunction
      name: test_sequence
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_bisect_option)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [1226]
                )
              ]
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<l0>} 
              {<Id.Lit_Other '^'> <root>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<l1>} 
              {<Id.Lit_Other '^'> <root>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<l2>} 
              {<Id.Lit_Other '^'> <root>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<a0>} 
              {<Id.Lit_Other '^'> <root>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<a1>} 
              {<Id.Lit_Other '^'> <root>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<a2>} 
              {<Id.Lit_Other '^'> <root>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<a3>} 
              {<Id.Lit_Other '^'> <root>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<b1>} 
              {<Id.Lit_Other '^'> <root>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<b2>} 
              {<Id.Lit_Other '^'> <root>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<b3>} 
              {<Id.Lit_Other '^'> <root>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<c1>} 
              {<Id.Lit_Other '^'> <root>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<c2>} 
              {<Id.Lit_Other '^'> <root>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<c3>} 
              {<Id.Lit_Other '^'> <root>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<E>} 
              {<Id.Lit_Other '^'> <F>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<e1>} 
              {<Id.Lit_Other '^'> <F>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<e2>} 
              {<Id.Lit_Other '^'> <F>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<e3>} 
              {<Id.Lit_Other '^'> <F>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<e4>} 
              {<Id.Lit_Other '^'> <F>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<e5>} 
              {<Id.Lit_Other '^'> <F>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<e6>} 
              {<Id.Lit_Other '^'> <F>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<e7>} 
              {<Id.Lit_Other '^'> <F>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<f1>} 
              {<Id.Lit_Other '^'> <F>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<f2>} 
              {<Id.Lit_Other '^'> <F>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<f3>} 
              {<Id.Lit_Other '^'> <F>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<f4>} 
              {<Id.Lit_Other '^'> <F>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<E>} 
              {<Id.Lit_Other '^'> <F>}
            )
            (C {<test_bisection_diff>} {<1>} {($ Id.VSub_DollarName '$_bisect_option')} {<V>} 
              {<Id.Lit_Other '^'> <U>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<V>} 
              {<Id.Lit_Other '^'> <U>} {<Id.Lit_Other '^'> <u1>} {<Id.Lit_Other '^'> <u2>} {<Id.Lit_Other '^'> <u3>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<u1>} 
              {<Id.Lit_Other '^'> <U>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<u2>} 
              {<Id.Lit_Other '^'> <U>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<u3>} 
              {<Id.Lit_Other '^'> <U>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<u4>} 
              {<Id.Lit_Other '^'> <U>}
            )
            (C {<test_bisection_diff>} {<0>} {($ Id.VSub_DollarName '$_bisect_option')} {<u5>} 
              {<Id.Lit_Other '^'> <U>}
            )
            (command.Simple
              words: [
                {<test_output_expect_success>}
                {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' l5 ^root'>)}
                {(SQ <'git rev-list $_bisect_option l5 ^root'>)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {<EOF>}
                      here_end_span_id: 1681
                      stdin_parts: [<'c3\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [
                {<test_output_expect_success>}
                {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' l5 ^root ^c3'>)}
                {(SQ <'git rev-list $_bisect_option l5 ^root ^c3'>)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {<EOF>}
                      here_end_span_id: 1699
                      stdin_parts: [<'b4\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [
                {<test_output_expect_success>}
                {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' l5 ^root ^c3 ^b4'>)}
                {(SQ <'git rev-list $_bisect_option l5 ^c3 ^b4'>)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {<EOF>}
                      here_end_span_id: 1717
                      stdin_parts: [<'l3\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [
                {<test_output_expect_success>}
                {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' l3 ^root ^c3 ^b4'>)}
                {(SQ <'git rev-list $_bisect_option l3 ^root ^c3 ^b4'>)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {<EOF>}
                      here_end_span_id: 1735
                      stdin_parts: [<'a4\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [
                {<test_output_expect_success>}
                {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' l5 ^b3 ^a3 ^b4 ^a4'>)}
                {(SQ <'git rev-list $_bisect_option l3 ^b3 ^a3 ^a4'>)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {<EOF>}
                      here_end_span_id: 1753
                      stdin_parts: [<'l3\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [
                {<test_output_expect_success>}
                {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' l4 ^a2 ^a3 ^b ^a4'>)}
                {(SQ <'git rev-list $_bisect_option l4 ^a2 ^a3 ^a4'>)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {<EOF>}
                      here_end_span_id: 1781
                      stdin_parts: [<'l3\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [
                {<test_output_expect_success>}
                {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' l3 ^a2 ^a3 ^b ^a4'>)}
                {(SQ <'git rev-list $_bisect_option l3 ^a2 ^a3 ^a4'>)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {<EOF>}
                      here_end_span_id: 1799
                      stdin_parts: [<'l3\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [
                {<test_output_expect_success>}
                {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' a4 ^a2 ^a3 ^b4'>)}
                {(SQ <'git rev-list $_bisect_option a4 ^a2 ^a3 ^b4'>)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {<EOF>}
                      here_end_span_id: 1831
                      stdin_parts: [<'c2\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [
                {<test_output_expect_success>}
                {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' a4 ^a2 ^a3 ^b4 ^c2'>)}
                {(SQ <'git rev-list $_bisect_option a4 ^a2 ^a3 ^b4 ^c2'>)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {<EOF>}
                      here_end_span_id: 1849
                      stdin_parts: [<'c3\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [
                {<test_output_expect_success>}
                {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' a4 ^a2 ^a3 ^b4 ^c2 ^c3'>)}
                {(SQ <'git rev-list $_bisect_option a4 ^a2 ^a3 ^b4 ^c2 ^c3'>)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {<EOF>}
                      here_end_span_id: 1867
                      stdin_parts: [<'a4\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [
                {<test_output_expect_success>}
                {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' a4 ^a2 ^a3 ^b4'>)}
                {(SQ <'git rev-list $_bisect_option a4 ^a2 ^a3 ^b4'>)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {<EOF>}
                      here_end_span_id: 1899
                      stdin_parts: [<'c2\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [
                {<test_output_expect_success>}
                {(DQ ($ Id.VSub_DollarName '$_bisect_option') <' c3 ^a2 ^a3 ^b4 ^c2'>)}
                {(SQ <'git rev-list $_bisect_option c3 ^a2 ^a3 ^b4 ^c2'>)}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {<EOF>}
                      here_end_span_id: 1917
                      stdin_parts: [<'c3\n'>]
                    )
                )
              ]
              do_fork: T
            )
          ]
        )
    )
    (C {<test_sequence>} {(DQ <--bisect>)})
    (C {<test_done>})
  ]
)