(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PATH)
          op: assign_op.Equal
          rhs: {<Id.Lit_Colon ':'> <'/bin'> <Id.Lit_Colon ':'> <'/usr/bin'>}
          spids: [8]
        )
      ]
    )
    (C {<export>} {<PATH>})
    (C {<echo>} {<-n>} {(DQ <'Shell test  1 '>)})
    (C {<rm>} {<-rf>} {<DIR_SH1>})
    (C {<mkdir>} {<DIR_SH1>})
    (C {<cd>} {<DIR_SH1>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:f)
          op: assign_op.Equal
          rhs: {<'../test1.c'>}
          spids: [42]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<test>} {<-r>} {($ Id.VSub_DollarName '$f')})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [45 54]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<sh1>} {<cannot>} {<read>} {($ Id.VSub_DollarName '$f')})
          terminator: <Id.Op_Semi _>
        )
        (command.Sentence
          child: (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<echo>} {(DQ <abcdefghijklmnopqrstuvwxyz>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<alpha>})]
      do_fork: T
    )
    (command.Simple
      words: [{<echo>} {(DQ <ABCDEFGHIJKLMNOPQRSTUVWXYZ>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<ALPHA>})]
      do_fork: T
    )
    (command.Simple
      words: [{<echo>} {(DQ <0123456789>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<num>})]
      do_fork: T
    )
    (command.Simple
      words: [{<echo>} {(DQ <'!@#'> <Id.Lit_Other '$'> <'%^&*()_+=-{}[]:;<>?/.,'>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<special>})]
      do_fork: T
    )
    (C {<cp>} {<'/etc/rc'>} {<rc>})
    (C {<cp>} {<'/etc/passwd'>} {<passwd>})
    (command.Simple
      words: [{<cat>} {<alpha>} {<ALPHA>} {<num>} {<rc>} {<passwd>} {<special>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<tmp>})]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>} {<tmp>} {<tmp>} {<tmp>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<f1>})]
      do_fork: T
    )
    (C {<mkdir>} {<foo>})
    (C {<cp>} {<'/etc/rc'>} {<'/etc/passwd'>} {<foo>})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<'foo/rc'>} {<'/etc/rc'>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [179 191]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<cp>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<'foo/passwd'>} {<'/etc/passwd'>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [214 226]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<cp>} {<test>} {<2>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (C {<rm>} {<-rf>} {<foo>})
    (command.Simple
      words: [{<cat>} {<num>} {<num>} {<num>} {<num>} {<num>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<y>})]
      do_fork: T
    )
    (command.Simple
      words: [{<wc>} {<-c>} {<y>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x1>})]
      do_fork: T
    )
    (command.Simple
      words: [{<echo>} {(DQ <'     55 y'>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x2>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<x1>} {<x2>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [292 303]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<cat>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<y>})
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<z>})
      ]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<y>} {<z>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [334 345]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<cat>} {<test>} {<2>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<cat>} {<passwd>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<p>})]
      do_fork: T
    )
    (C {<cp>} {<passwd>} {<q>})
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<p>} {<q>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [385 396]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<ar>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<date>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<r>})]
      do_fork: T
    )
    (command.Simple
      words: [{<ar>} {<r>} {<x.a>} {<p>} {<q>} {<r>}]
      redirects: [(redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
      do_fork: T
    )
    (C {<ar>} {<r>} {<x.a>} {<'/usr/bin/cp'>})
    (C {<ar>} {<r>} {<x.a>} {<'/usr/bin/cat'>})
    (C {<rm>} {<p>} {<q>})
    (C {<mv>} {<r>} {<R>})
    (C {<ar>} {<x>} {<x.a>})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<p>} {<'/etc/passwd'>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [473 484]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<Error>} {<on>} {<ar>} {<test>} {<2>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<q>} {<'/etc/passwd'>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [505 516]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<Error>} {<on>} {<ar>} {<test>} {<3>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<r>} {<R>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [537 548]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<Error>} {<on>} {<ar>} {<test>} {<4>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<cp>} {<'/usr/bin/cp'>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [569 580]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<Error>} {<on>} {<ar>} {<test>} {<5>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<cat>} {<'/usr/bin/cat'>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [601 612]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<Error>} {<on>} {<ar>} {<test>} {<6>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (C {<rm>} {<cp>} {<cat>} {<p>} {<q>} {<r>})
    (command.Simple
      words: [{<ar>} {<d>} {<x.a>} {<r>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
      do_fork: T
    )
    (C {<ar>} {<x>} {<x.a>})
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<test>} {<-r>} {<r>}) terminator:<Id.Op_Semi _>)]
          action: [
            (command.Sentence
              child: (C {<echo>} {<Error>} {<on>} {<ar>} {<test>} {<7>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [662 671]
        )
      ]
    )
    (C {<rm>} {<-rf>} {<p>} {<q>} {<r>} {<R>})
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {<test>} 
              {
                (command_sub
                  left_token: <Id.Left_Backtick '`'>
                  child: (C {<basename>} {<'/usr/ast/foo.c'>} {<.c>})
                )
              } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(SQ <foo>)}
            )
          ]
          action: [(C {<echo>} {<Error>} {<on>} {<basename>} {<test>} {<1>})]
          spids: [704 726]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<test>} 
                  {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<basename>} {<'a/b/c/d'>}))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(SQ <d>)}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.Sentence
              child: (C {<Error>} {<on>} {<basename>} {<test>} {<2>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [743 763]
        )
      ]
    )
    (C {<cp>} {($ Id.VSub_DollarName '$f')} {<x.c>})
    (command.Simple
      words: [{<echo>} {(DQ <'/a/s//#####/g'>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<s>})]
      do_fork: T
    )
    (command.Simple
      words: [{<sed>} {<-f>} {<s>}]
      redirects: [
        (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<x.c>})
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<y.c>})
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cdiff>} {<x.c>} {<y.c>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<y>})]
      do_fork: T
    )
    (command.Simple
      words: [{<patch>} {<x.c>} {<y>}]
      redirects: [(redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<x.c>} {<y.c>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [842 853]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<cdiff>} {<test>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (C {<rm>} {<x.c> <Id.Lit_Star '*'>} {<y.c>} {<s>} {<y>})
    (command.Simple
      words: [{<ls>} {<'/etc'>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
      do_fork: T
    )
    (command.Simple
      words: [{<grep>} {<-v>} {(DQ <passwd>)} {<x>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<y>})]
      do_fork: T
    )
    (command.Simple
      words: [{<comm>} {<-3>} {<x>} {<y>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<z>})]
      do_fork: T
    )
    (command.Simple
      words: [{<echo>} {(DQ <passwd>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<w>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<w>} {<z>}) terminator:<Id.Op_Semi _>)]
          action: [
            (command.Sentence
              child: 
                (C {<Id.Lit_Colon ':'>} {<Id.KW_Else else>} {<echo>} {<Error>} {<on>} {<comm>} {<test>} {<1>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [938 949]
        )
      ]
    )
    (command.Simple
      words: [{<comm>} {<-13>} {<x>} {<y>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<z>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<test>} {<-s>} {<z>}) terminator:<Id.Op_Semi _>)]
          action: [
            (command.Sentence
              child: (C {<echo>} {<Error>} {<on>} {<comm>} {<test>} {<2>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [985 994]
        )
      ]
    )
    (C {<rm>} {<-rf>} {<w>} {<x>} {<y>} {<z>})
    (command.Simple
      words: [{<compress>} {<-fc>} {($ Id.VSub_DollarName '$f')}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x.c.Z>})]
      do_fork: T
    )
    (command.Simple
      words: [{<compress>} {<-cd>} {<x.c.Z>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<y>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {($ Id.VSub_DollarName '$f')} {<y>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.Sentence
              child: 
                (C {<Id.Lit_Colon ':'>} {<Id.KW_Else else>} {<echo>} {<Error>} {<Id.KW_In in>} {<compress>} 
                  {<test>} {<1>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [1051 1062]
        )
      ]
    )
    (C {<rm>} {<-rf>} {<x.c.Z>} {<y>})
    (C {<cp>} {($ Id.VSub_DollarName '$f')} {<x>})
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<y>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {<END>}
              here_end_span_id: 1118
              stdin_parts: [
                <'g/a/s//#####/g\n'>
                <'g/b/s//@@@@@/g\n'>
                <'g/c/s//!!!!!/g\n'>
                <'w\n'>
                <'q\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<ed>} {<x>}]
      redirects: [
        (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<y>})
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<y>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {<END>}
              here_end_span_id: 1143
              stdin_parts: [
                <'g/#####/s//a/g\n'>
                <'g/@@@@@/s//b/g\n'>
                <'g/!!!!!/s//c/g\n'>
                <'w\n'>
                <'q\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<ed>} {<x>}]
      redirects: [
        (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<y>})
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})
      ]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<x>} {($ Id.VSub_DollarName '$f')})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [1154 1165]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<Id.KW_In in>} {<ed>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (C {<rm>} {<x>} {<y>})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<test>} 
                  {
                    (command_sub
                      left_token: <Id.Left_Backtick '`'>
                      child: (C {<expr>} {<1>} {<Id.Lit_Other '+'>} {<1>})
                    )
                  } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<2>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.Sentence
              child: (C {<echo>} {<Error>} {<on>} {<expr>} {<test>} {<1>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [1198 1220]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<test>} 
                  {
                    (command_sub
                      left_token: <Id.Left_Backtick '`'>
                      child: (C {<expr>} {<10000>} {<->} {<1>})
                    )
                  } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<9999>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.Sentence
              child: (C {<echo>} {<Error>} {<on>} {<expr>} {<test>} {<2>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [1237 1259]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<test>} 
                  {
                    (command_sub
                      left_token: <Id.Left_Backtick '`'>
                      child: (C {<expr>} {<100>} {(SQ <'*'>)} {<50>})
                    )
                  } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<5000>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.Sentence
              child: (C {<echo>} {<Error>} {<on>} {<expr>} {<test>} {<3>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [1276 1300]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<test>} 
                  {
                    (command_sub
                      left_token: <Id.Left_Backtick '`'>
                      child: (C {<expr>} {<120>} {<'/'>} {<5>})
                    )
                  } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<24>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.Sentence
              child: (C {<echo>} {<Error>} {<on>} {<expr>} {<test>} {<4>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [1317 1339]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<test>} 
                  {
                    (command_sub
                      left_token: <Id.Left_Backtick '`'>
                      child: (C {<expr>} {<143>} {<Id.Lit_Other '%'>} {<7>})
                    )
                  } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<3>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.Sentence
              child: (C {<echo>} {<Error>} {<on>} {<expr>} {<test>} {<5>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [1356 1378]
        )
      ]
    )
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:a) op:assign_op.Equal rhs:{<100>} spids:[1395])]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:a)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: (C {<expr>} {($ Id.VSub_DollarName '$a')} {<Id.Lit_Other '+'>} {<1>})
              )
            }
          spids: [1398]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<test>} {($ Id.VSub_DollarName '$a')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} 
                  {(SQ <101>)}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.Sentence
              child: (C {<echo>} {<Error>} {<on>} {<expr>} {<test>} {<6>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [1411 1425]
        )
      ]
    )
    (command.Simple
      words: [{<fgrep>} {(DQ <abc>)} {<alpha>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<z>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<alpha>} {<z>}) terminator:<Id.Op_Semi _>)]
          action: [
            (command.Sentence
              child: 
                (C {<Id.Lit_Colon ':'>} {<Id.KW_Else else>} {<echo>} {<Error>} {<on>} {<fgrep>} {<test>} 
                  {<1>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [1457 1469]
        )
      ]
    )
    (command.Simple
      words: [{<fgrep>} {(DQ <abc>)} {<num>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<z>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<test>} {<-s>} {<z>}) terminator:<Id.Op_Semi _>)]
          action: [
            (command.Sentence
              child: (C {<echo>} {<Error>} {<on>} {<fgrep>} {<test>} {<2>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [1501 1510]
        )
      ]
    )
    (command.Simple
      words: [{<cat>} {<alpha>} {<num>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<z>})]
      do_fork: T
    )
    (command.Simple
      words: [{<fgrep>} {(DQ <012>)} {<z>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<w>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<w>} {<num>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [1547 1558]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<fgrep>} {<test>} {<3>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<date>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<Rabbit>})]
      do_fork: T
    )
    (command.Simple
      words: [{<echo>} {(DQ <Rabbit>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<y>})]
      do_fork: T
    )
    (command.Simple
      words: [{<find>} {<.>} {<-name>} {<Rabbit>} {<-print>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<z>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<y>} {<z>}) terminator:<Id.Op_Semi _>)]
          action: [
            (command.Sentence
              child: 
                (C {<Id.Lit_Colon ':'>} {<Id.KW_Else else>} {<echo>} {<Error>} {<on>} {<find>} {<test>} {<1>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [1611 1622]
        )
      ]
    )
    (command.Simple
      words: [{<find>} {<.>} {<-name>} {<Bunny>} {<-print>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<z>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<test>} {<-s>} {<z>}) terminator:<Id.Op_Semi _>)]
          action: [
            (command.Sentence
              child: (C {<echo>} {<Error>} {<on>} {<find>} {<test>} {<2>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [1656 1665]
        )
      ]
    )
    (C {<rm>} {<Rabbit>} {<y>} {<z>})
    (command.Simple
      words: [{<grep>} {(DQ <a>)} {<alpha>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<x>} {<alpha>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [1705 1716]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<grep>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<grep>} {(DQ <a>)} {<ALPHA>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<test>} {<-s>} {<x>}) terminator:<Id.Op_Semi _>)]
          action: [
            (command.Sentence
              child: (C {<echo>} {<Error>} {<on>} {<grep>} {<test>} {<2>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [1750 1759]
        )
      ]
    )
    (command.Simple
      words: [{<grep>} {<-v>} {(DQ <0>)} {<alpha>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<x>} {<alpha>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [1789 1800]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<grep>} {<test>} {<3>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<grep>} {<-s>} {(DQ <a>)} {<alpha>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<test>} {<-s>} {<x>}) terminator:<Id.Op_Semi _>)]
          action: [
            (command.Sentence
              child: (C {<echo>} {<Error>} {<on>} {<grep>} {<test>} {<4>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [1836 1845]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.Simple
                  words: [{<grep>} {<-s>} {(DQ <a>)} {<alpha>}]
                  redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.Sentence
              child: 
                (C {<Id.Lit_Colon ':'>} {<Id.KW_Else else>} {<echo>} {<Error>} {<on>} {<grep>} {<test>} {<5>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [1862 1878]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.Simple
                  words: [{<grep>} {<-s>} {(DQ <a>)} {<ALPHA>}]
                  redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.Sentence
              child: (C {<echo>} {<Error>} {<on>} {<grep>} {<test>} {<6>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [1899 1915]
        )
      ]
    )
    (command.Simple
      words: [{<head>} {<-1>} {<f1>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<x>} {<alpha>}) terminator:<Id.Op_Semi _>)]
          action: [
            (command.Sentence
              child: 
                (C {<Id.Lit_Colon ':'>} {<Id.KW_Else else>} {<echo>} {<Error>} {<on>} {<head>} {<test>} {<1>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [1945 1956]
        )
      ]
    )
    (command.Simple
      words: [{<head>} {<-2>} {<f1>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>} {<alpha>} {<ALPHA>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<y>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<x>} {<y>}) terminator:<Id.Op_Semi _>)]
          action: [
            (command.Sentence
              child: 
                (C {<Id.Lit_Colon ':'>} {<Id.KW_Else else>} {<echo>} {<Error>} {<on>} {<head>} {<test>} {<2>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [1995 2006]
        )
      ]
    )
    (C {<mkdir>} {<FOO>})
    (C {<cp>} {<passwd>} {<'FOO/z'>})
    (C {<cp>} {<alpha>} {<'FOO/x'>})
    (C {<cp>} {<ALPHA>} {<'FOO/y'>})
    (C {<cd>} {<FOO>})
    (command.Simple
      words: [{<ls>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<w>})]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<w1>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {<END>}
              here_end_span_id: 2075
              stdin_parts: [<'w\n'> <'x\n'> <'y\n'> <'z\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<w>} {<w1>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [2076 2087]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<ls>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (C {<rm>} {<Id.Lit_Star '*'>})
    (C {<cd>} {<..>})
    (C {<rmdir>} {<FOO>})
    (C {<mkdir>} {<Foo>} {<Bar>})
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<test>} {<-d>} {<Foo>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [2132 2141]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<mkdir>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<test>} {<-d>} {<Bar>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [2164 2173]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<mkdir>} {<test>} {<2>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (C {<rmdir>} {<Foo>} {<Bar>})
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<test>} {<-d>} {<Foo>}) terminator:<Id.Op_Semi _>)]
          action: [
            (command.Sentence
              child: (C {<echo>} {<Error>} {<on>} {<mkdir>} {<test>} {<3>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [2202 2211]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<test>} {<-d>} {<Foo>}) terminator:<Id.Op_Semi _>)]
          action: [
            (command.Sentence
              child: (C {<echo>} {<Error>} {<on>} {<rmdir>} {<test>} {<4>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [2228 2237]
        )
      ]
    )
    (C {<mkdir>} {<MVDIR>})
    (C {<cp>} {($ Id.VSub_DollarName '$f')} {<x>})
    (C {<mv>} {<x>} {<y>})
    (C {<mv>} {<y>} {<z>})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {($ Id.VSub_DollarName '$f')} {<z>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [2280 2291]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<mv>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (C {<cp>} {($ Id.VSub_DollarName '$f')} {<x>})
    (C {<mv>} {<x>} {<'MVDIR/y'>})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {($ Id.VSub_DollarName '$f')} {<'MVDIR/y'>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [2326 2337]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<mv>} {<test>} {<2>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Pipeline
      children: [
        (command.Simple
          words: [{<rev>}]
          redirects: [(redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<f1>})]
          do_fork: T
        )
        (command.Simple
          words: [{<head>} {<-1>}]
          redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<ahpla>})]
          do_fork: T
        )
      ]
      negated: F
    )
    (command.Simple
      words: [{<echo>} {(DQ <zyxwvutsrqponmlkjihgfedcba>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<x>} {<ahpla>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [2387 2398]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<rev>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<rev>}]
      redirects: [
        (redir
          op: <Id.Redir_Less '<'>
          loc: (redir_loc.Fd fd:0)
          arg: {($ Id.VSub_DollarName '$f')}
        )
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<rev>}]
      redirects: [
        (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<x>})
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<y>})
      ]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {($ Id.VSub_DollarName '$f')} {<x>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.Sentence
              child: (C {<echo>} {<Error>} {<on>} {<rev>} {<test>} {<2>})
              terminator: <Id.Op_Semi _>
            )
          ]
          spids: [2437 2448]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {($ Id.VSub_DollarName '$f')} {<y>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [2465 2476]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<error>} {<on>} {<rev>} {<test>} {<3>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (C {<cp>} {($ Id.VSub_DollarName '$f')} {<w>})
    (C {<cp>} {<alpha>} {<x>})
    (C {<cp>} {<ALPHA>} {<y>})
    (C {<cp>} {<num>} {<z>})
    (command.Simple
      words: [{<shar>} {<w>} {<x>} {<y>} {<z>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x1>})]
      do_fork: T
    )
    (C {<rm>} {<w>} {<x>} {<y>} {<z>})
    (command.Simple
      words: [{<sh>}]
      redirects: [
        (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<x1>})
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})
      ]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<w>} {($ Id.VSub_DollarName '$f')})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [2558 2569]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<shar>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<x>} {<alpha>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [2592 2603]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<shar>} {<test>} {<2>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<y>} {<ALPHA>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [2626 2637]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<shar>} {<test>} {<3>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<z>} {<num>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [2660 2671]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<shar>} {<test>} {<4>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<sort>}]
      redirects: [
        (redir
          op: <Id.Redir_Less '<'>
          loc: (redir_loc.Fd fd:0)
          arg: {($ Id.VSub_DollarName '$f')}
        )
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<wc>}]
      redirects: [
        (redir
          op: <Id.Redir_Less '<'>
          loc: (redir_loc.Fd fd:0)
          arg: {($ Id.VSub_DollarName '$f')}
        )
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x1>})
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<wc>}]
      redirects: [
        (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<x>})
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x2>})
      ]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<x1>} {<x2>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [2722 2733]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<sort>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {<END>}
              here_end_span_id: 2770
              stdin_parts: [
                <'demit 10\n'>
                <'epitonic 40\n'>
                <'apoop 20\n'>
                <'bibelot 3\n'>
                <'comate 4\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<y>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {<END>}
              here_end_span_id: 2785
              stdin_parts: [
                <'apoop 20\n'>
                <'bibelot 3\n'>
                <'comate 4\n'>
                <'demit 10\n'>
                <'epitonic 40\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<z>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {<END>}
              here_end_span_id: 2800
              stdin_parts: [
                <'epitonic 40\n'>
                <'demit 10\n'>
                <'comate 4\n'>
                <'bibelot 3\n'>
                <'apoop 20\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<sort>}]
      redirects: [
        (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<x>})
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x1>})
      ]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<y>} {<x1>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [2809 2820]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<sort>} {<test>} {<2>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<sort>} {<-r>}]
      redirects: [
        (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<x1>})
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x2>})
      ]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<x2>} {<z>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [2853 2864]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<sort>} {<test>} {<3>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Pipeline
      children: [
        (command.Simple
          words: [{<sort>} {<Id.Lit_Other '+'> <1>} {<-n>}]
          redirects: [(redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<x>})]
          do_fork: T
        )
        (command.Simple
          words: [{<head>} {<-1>}]
          redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<y>})]
          do_fork: T
        )
      ]
      negated: F
    )
    (command.Simple
      words: [{<echo>} {(DQ <'bibelot 3'>)}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<z>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<cmp>} {<-s>} {<y>} {<z>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [2914 2925]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<sort>} {<test>} {<4>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<tail>} {<-1>} {<f1>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<x>} {<special>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [2961 2972]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<tail>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {<END>}
              here_end_span_id: 3021
              stdin_parts: [
                <'a d\n'>
                <'b e\n'>
                <'c f\n'>
                <'a c\n'>
                <'p z\n'>
                <'k p\n'>
                <'a k\n'>
                <'a b\n'>
                <'b c\n'>
                <'c d\n'>
                <'d e\n'>
                <'e f\n'>
                <'f k\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<answer>})
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.MultiLine
              here_begin: {<END>}
              here_end_span_id: 3040
              stdin_parts: [<'a\n'> <'b\n'> <'c\n'> <'d\n'> <'e\n'> <'f\n'> <'k\n'> <'p\n'> <'z\n'>]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      words: [{<tsort>}]
      redirects: [
        (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<x>})
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<y>})
      ]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<y>} {<answer>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [3049 3060]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<tsort>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (C {<cp>} {($ Id.VSub_DollarName '$f')} {<x>})
    (C {<uue>} {<x>})
    (command.If
      arms: [
        (if_arm
          cond: [(command.Sentence child:(C {<test>} {<-s>} {<x.uue>}) terminator:<Id.Op_Semi _>)]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [3097 3106]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<'uue/uud'>} {<test>} {<1>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (C {<rm>} {<x>})
    (C {<uud>} {<x.uue>})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<x>} {($ Id.VSub_DollarName '$f')})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [3137 3148]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<'uue/uud'>} {<test>} {<2>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (command.Simple
      words: [{<compress>} {<-fc>} {<x>}]
      redirects: [
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x.Z>})
        (redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})
      ]
      do_fork: T
    )
    (C {<uue>} {<x.Z>})
    (C {<rm>} {<x>} {<x.Z>})
    (C {<uud>} {<x.uue>})
    (command.Simple
      words: [{<compress>} {<-cd>} {<x.Z>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<x>})]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {<cmp>} {<-s>} {<x>} {($ Id.VSub_DollarName '$f')})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
          spids: [3207 3218]
        )
      ]
      else_action: [
        (command.Sentence
          child: (C {<echo>} {<Error>} {<on>} {<'uue/uud'>} {<test>} {<3>})
          terminator: <Id.Op_Semi _>
        )
      ]
    )
    (C {<cd>} {<..>})
    (C {<rm>} {<-rf>} {<DIR_SH1>})
    (C {<echo>} {<ok>})
  ]
)