(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_description='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_description='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'CRLF conversion all combinations'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Pipeline
                  negated: <Id.KW_Bang '!'>
                  children: [
                    (command.Simple
                      blame_tok: <test_have_prereq>
                      more_env: []
                      words: [{<test_have_prereq>} {<EXPENSIVE>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: []
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'skip_all='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'skip_all='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'skip_all='> name:skip_all)
                  op: assign_op.Equal
                  rhs: {(DQ <'EXPENSIVE not set'>)}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <test_done>
              more_env: []
              words: [{<test_done>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [15 23]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShFunction
      name_tok: <compare_files>
      name: compare_files
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <tr>
                  more_env: []
                  words: [{<tr>} {(SQ <'\\015\\000'>)} {<QN>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Less '<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: {(DQ ($ Id.VSub_Number 1))}
                    )
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {(DQ ($ Id.VSub_Number 1)) <.expect>}
                    )
                  ]
                  do_fork: T
                )
                (command.Pipeline
                  children: [
                    (command.Simple
                      blame_tok: <tr>
                      more_env: []
                      words: [{<tr>} {(SQ <'\\015\\000'>)} {<QN>}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Less '<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {(DQ ($ Id.VSub_Number 2))}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <tr>
                      more_env: []
                      words: [{<tr>} {<-d>} {(SQ <Z>)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_Number 2)) <.actual>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_Pipe _>]
                )
                (command.Simple
                  blame_tok: <test_cmp>
                  more_env: []
                  words: [
                    {<test_cmp>}
                    {(DQ ($ Id.VSub_Number 1)) <.expect>}
                    {(DQ ($ Id.VSub_Number 2)) <.actual>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [
                    {<rm>}
                    {(DQ ($ Id.VSub_Number 1)) <.expect>}
                    {(DQ ($ Id.VSub_Number 2)) <.actual>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <compare_ws_file>
      name: compare_ws_file
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'pfx='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'pfx='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pfx='> name:pfx)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'exp='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'exp='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exp='> name:exp)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2) <.expect>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'act='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'act='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'act='> name:act)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName pfx) <.actual.> ($ Id.VSub_Number 3)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <tr>
                  more_env: []
                  words: [{<tr>} {(SQ <'\\015\\000abcdef0123456789'>)} {<QN00000000000000000>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Less '<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: {(DQ ($ Id.VSub_Number 2))}
                    )
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {(DQ ($ Id.VSub_DollarName exp))}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <tr>
                  more_env: []
                  words: [{<tr>} {(SQ <'\\015\\000abcdef0123456789'>)} {<QN00000000000000000>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Less '<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: {(DQ ($ Id.VSub_Number 3))}
                    )
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {(DQ ($ Id.VSub_DollarName act))}
                    )
                  ]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <test_cmp>
                  more_env: []
                  words: [
                    {<test_cmp>}
                    {(DQ ($ Id.VSub_DollarName exp))}
                    {(DQ ($ Id.VSub_DollarName act))}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <rm>
                  more_env: []
                  words: [{<rm>} {(DQ ($ Id.VSub_DollarName exp))} {(DQ ($ Id.VSub_DollarName act))}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <create_gitattributes>
      name: create_gitattributes
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (BraceGroup
              left: <Id.Lit_LBrace '{'>
              children: [
                (command.WhileUntil
                  keyword: <Id.KW_While while>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <test>
                          more_env: []
                          words: [
                            {<test>}
                            {(DQ ($ Id.VSub_Pound '#'))}
                            {<Id.KW_Bang '!'> <Id.Lit_Equals '='>}
                            {<0>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  body: 
                    (command.DoGroup
                      left: <Id.KW_Do do>
                      children: [
                        (command.AndOr
                          children: [
                            (command.Case
                              case_kw: <Id.KW_Case case>
                              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Number 1))})
                              arms_start: <Id.KW_In in>
                              arms: [
                                (CaseArm
                                  left: <auto>
                                  pattern: (pat.Words words:[{<auto>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [{<echo>} {(SQ <'*.txt text=auto'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <ident>
                                  pattern: (pat.Words words:[{<ident>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [{<echo>} {(SQ <'*.txt ident'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <text>
                                  pattern: (pat.Words words:[{<text>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [{<echo>} {(SQ <'*.txt text'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <-text>
                                  pattern: (pat.Words words:[{<-text>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [{<echo>} {(SQ <'*.txt -text'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <crlf>
                                  pattern: (pat.Words words:[{<crlf>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [{<echo>} {(SQ <'*.txt eol=crlf'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <lf>
                                  pattern: (pat.Words words:[{<lf>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [{<echo>} {(SQ <'*.txt eol=lf'>)}]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Left_DoubleQuote '"'>
                                  pattern: (pat.Words words:[{(DQ )}])
                                  middle: <Id.Right_CasePat _>
                                  action: []
                                  right: <Id.Op_DSemi _>
                                )
                                (CaseArm
                                  left: <Id.Lit_Star '*'>
                                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                                  middle: <Id.Right_CasePat _>
                                  action: [
                                    (command.Simple
                                      blame_tok: <echo>
                                      more_env: []
                                      words: [
                                        {<echo>}
                                        {<invalid>}
                                        {<attribute> <Id.Lit_Colon ':'>}
                                        {(DQ ($ Id.VSub_Number 1))}
                                      ]
                                      redirects: [
                                        (Redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.ControlFlow
                                      keyword: <Id.ControlFlow_Exit exit>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  right: <Id.Op_DSemi _>
                                )
                              ]
                              arms_end: <Id.KW_Esac esac>
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <shift>
                              more_env: []
                              words: [{<shift>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_DAmp _>]
                        )
                      ]
                      right: <Id.KW_Done done>
                    )
                  redirects: []
                )
              ]
              redirects: [
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<.gitattributes>}
                )
              ]
              right: <Id.Lit_RBrace '}'>
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <create_NNO_files>
      name: create_NNO_files
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [crlf]
              iterable: (for_iter.Words words:[{<false>} {<true>} {<input>}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [attr]
                      iterable: (for_iter.Words words:[{(DQ )} {<auto>} {<text>} {<-text>}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ForEach
                              keyword: <Id.KW_For for>
                              iter_names: [aeol]
                              iterable: (for_iter.Words words:[{(DQ )} {<lf>} {<crlf>}])
                              body: 
                                (command.DoGroup
                                  left: <Id.KW_Do do>
                                  children: [
                                    (command.ShAssignment
                                      left: <Id.Lit_VarLike 'pfx='>
                                      pairs: [
                                        (AssignPair
                                          left: <Id.Lit_VarLike 'pfx='>
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'pfx='>
                                              name: pfx
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {<NNO_attr_> (${ Id.VSub_Name attr) <_aeol_> 
                                              (${ Id.VSub_Name aeol) <Id.Lit_Underscore _> (${ Id.VSub_Name crlf)
                                            }
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.AndOr
                                      children: [
                                        (command.Simple
                                          blame_tok: <cp>
                                          more_env: []
                                          words: [
                                            {<cp>}
                                            {<CRLF_mix_LF>}
                                            {(${ Id.VSub_Name pfx) <_LF.txt>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <cp>
                                          more_env: []
                                          words: [
                                            {<cp>}
                                            {<CRLF_mix_LF>}
                                            {(${ Id.VSub_Name pfx) <_CRLF.txt>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <cp>
                                          more_env: []
                                          words: [
                                            {<cp>}
                                            {<CRLF_mix_LF>}
                                            {(${ Id.VSub_Name pfx) <_CRLF_mix_LF.txt>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <cp>
                                          more_env: []
                                          words: [
                                            {<cp>}
                                            {<CRLF_mix_LF>}
                                            {(${ Id.VSub_Name pfx) <_LF_mix_CR.txt>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <cp>
                                          more_env: []
                                          words: [
                                            {<cp>}
                                            {<CRLF_mix_LF>}
                                            {(${ Id.VSub_Name pfx) <_CRLF_nul.txt>}
                                          ]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
                                    )
                                  ]
                                  right: <Id.KW_Done done>
                                )
                              redirects: []
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <check_warning>
      name: check_warning
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Number 1))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <LF_CRLF>
                  pattern: (pat.Words words:[{<LF_CRLF>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'warning: LF will be replaced by CRLF'>)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_Number 2)) <.expect>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <CRLF_LF>
                  pattern: (pat.Words words:[{<CRLF_LF>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'warning: CRLF will be replaced by LF'>)}]
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_Number 2)) <.expect>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Left_SingleQuote '\''>
                  pattern: (pat.Words words:[{(SQ )}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <Id.Redir_Great '>'>
                      more_env: []
                      words: []
                      redirects: [
                        (Redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_Number 2)) <.expect>}
                        )
                      ]
                      do_fork: F
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {(DQ <'Illegal 1'>) <Id.Lit_Colon ':'>}
                            {(DQ ($ Id.VSub_Number 1))}
                          ]
                          redirects: [
                            (Redir
                              op: <Id.Redir_GreatAnd '>&'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<2>}
                            )
                          ]
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Return return>
                      arg_word: {<false>}
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <grep>
                  more_env: []
                  words: [{<grep>} {(DQ <'will be replaced by'>)} {(DQ ($ Id.VSub_Number 2))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <sed>
                  more_env: []
                  words: [
                    {<sed>}
                    {<-e>}
                    {
                      (DQ <'s/'> <Id.Lit_BadBackslash '\\'> <'(.*'> <Id.Lit_BadBackslash '\\'> 
                        <') in [^ ]*'> <Id.Lit_Dollar '$'> <'/'> <Id.Lit_BadBackslash '\\'> <'1/'>
                      )
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <uniq>
                  more_env: []
                  words: [{<uniq>}]
                  redirects: [
                    (Redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {(DQ ($ Id.VSub_Number 2)) <.actual>}
                    )
                  ]
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
            )
            (command.Simple
              blame_tok: <test_cmp>
              more_env: []
              words: [
                {<test_cmp>}
                {(DQ ($ Id.VSub_Number 2)) <.expect>}
                {(DQ ($ Id.VSub_Number 2)) <.actual>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <commit_check_warn>
      name: commit_check_warn
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'crlf='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'crlf='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'crlf='> name:crlf)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'attr='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'attr='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'attr='> name:attr)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'lfname='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'lfname='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lfname='> name:lfname)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 3)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'crlfname='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'crlfname='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'crlfname='> name:crlfname)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 4)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'lfmixcrlf='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'lfmixcrlf='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lfmixcrlf='> name:lfmixcrlf)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 5)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'lfmixcr='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'lfmixcr='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lfmixcr='> name:lfmixcr)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 6)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'crlfnul='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'crlfnul='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'crlfnul='> name:crlfnul)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 7)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'pfx='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'pfx='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pfx='> name:pfx)
                  op: assign_op.Equal
                  rhs: {<crlf_> (${ Id.VSub_Name crlf) <_attr_> (${ Id.VSub_Name attr)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <create_gitattributes>
                  more_env: []
                  words: [{<create_gitattributes>} {(DQ ($ Id.VSub_DollarName attr))}]
                  redirects: []
                  do_fork: T
                )
                (command.ForEach
                  keyword: <Id.KW_For for>
                  iter_names: [f]
                  iterable: 
                    (for_iter.Words
                      words: [{<LF>} {<CRLF>} {<LF_mix_CR>} {<CRLF_mix_LF>} {<LF_nul>} {<CRLF_nul>}]
                    )
                  body: 
                    (command.DoGroup
                      left: <Id.KW_Do do>
                      children: [
                        (command.AndOr
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'fname='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'fname='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fname='> name:fname)
                                  op: assign_op.Equal
                                  rhs: 
                                    {(${ Id.VSub_Name pfx) <Id.Lit_Underscore _> 
                                      ($ Id.VSub_DollarName f) <.txt>
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <cp>
                              more_env: []
                              words: [{<cp>} {($ Id.VSub_DollarName f)} {($ Id.VSub_DollarName fname)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <git>
                              more_env: []
                              words: [
                                {<git>}
                                {<-c>}
                                {<core.autocrlf> <Id.Lit_Equals '='> ($ Id.VSub_DollarName crlf)}
                                {<add>}
                                {($ Id.VSub_DollarName fname)}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_Great '2>'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {(DQ (${ Id.VSub_Name pfx) <_> ($ Id.VSub_DollarName f) <.err>)}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
                        )
                      ]
                      right: <Id.KW_Done done>
                    )
                  redirects: []
                )
                (command.Simple
                  blame_tok: <git>
                  more_env: []
                  words: [{<git>} {<commit>} {<-m>} {(DQ <'core.autocrlf '> ($ Id.VSub_DollarName crlf))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <check_warning>
                  more_env: []
                  words: [
                    {<check_warning>}
                    {(DQ ($ Id.VSub_DollarName lfname))}
                    {(${ Id.VSub_Name pfx) <_LF.err>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <check_warning>
                  more_env: []
                  words: [
                    {<check_warning>}
                    {(DQ ($ Id.VSub_DollarName crlfname))}
                    {(${ Id.VSub_Name pfx) <_CRLF.err>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <check_warning>
                  more_env: []
                  words: [
                    {<check_warning>}
                    {(DQ ($ Id.VSub_DollarName lfmixcrlf))}
                    {(${ Id.VSub_Name pfx) <_CRLF_mix_LF.err>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <check_warning>
                  more_env: []
                  words: [
                    {<check_warning>}
                    {(DQ ($ Id.VSub_DollarName lfmixcr))}
                    {(${ Id.VSub_Name pfx) <_LF_mix_CR.err>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <check_warning>
                  more_env: []
                  words: [
                    {<check_warning>}
                    {(DQ ($ Id.VSub_DollarName crlfnul))}
                    {(${ Id.VSub_Name pfx) <_CRLF_nul.err>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [
                <Id.Op_DAmp _>
                <Id.Op_DAmp _>
                <Id.Op_DAmp _>
                <Id.Op_DAmp _>
                <Id.Op_DAmp _>
                <Id.Op_DAmp _>
                <Id.Op_DAmp _>
              ]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <commit_chk_wrnNNO>
      name: commit_chk_wrnNNO
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'attr='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'attr='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'attr='> name:attr)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'aeol='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'aeol='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'aeol='> name:aeol)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'crlf='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'crlf='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'crlf='> name:crlf)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'lfwarn='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'lfwarn='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lfwarn='> name:lfwarn)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'crlfwarn='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'crlfwarn='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'crlfwarn='> name:crlfwarn)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'lfmixcrlf='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'lfmixcrlf='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lfmixcrlf='> name:lfmixcrlf)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'lfmixcr='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'lfmixcr='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lfmixcr='> name:lfmixcr)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'crlfnul='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'crlfnul='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'crlfnul='> name:crlfnul)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'pfx='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'pfx='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pfx='> name:pfx)
                  op: assign_op.Equal
                  rhs: 
                    {<NNO_attr_> (${ Id.VSub_Name attr) <_aeol_> (${ Id.VSub_Name aeol) 
                      <Id.Lit_Underscore _> (${ Id.VSub_Name crlf)
                    }
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <create_gitattributes>
                  more_env: []
                  words: [
                    {<create_gitattributes>}
                    {(DQ ($ Id.VSub_DollarName attr))}
                    {($ Id.VSub_DollarName aeol)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.ForEach
                  keyword: <Id.KW_For for>
                  iter_names: [f]
                  iterable: 
                    (for_iter.Words
                      words: [{<LF>} {<CRLF>} {<CRLF_mix_LF>} {<LF_mix_CR>} {<CRLF_nul>}]
                    )
                  body: 
                    (command.DoGroup
                      left: <Id.KW_Do do>
                      children: [
                        (command.AndOr
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'fname='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'fname='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fname='> name:fname)
                                  op: assign_op.Equal
                                  rhs: 
                                    {(${ Id.VSub_Name pfx) <Id.Lit_Underscore _> 
                                      ($ Id.VSub_DollarName f) <.txt>
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.Simple
                              blame_tok: <cp>
                              more_env: []
                              words: [{<cp>} {($ Id.VSub_DollarName f)} {($ Id.VSub_DollarName fname)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <printf>
                              more_env: []
                              words: [{<printf>} {<Z>}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {(DQ ($ Id.VSub_DollarName fname))}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <git>
                              more_env: []
                              words: [
                                {<git>}
                                {<-c>}
                                {<core.autocrlf> <Id.Lit_Equals '='> ($ Id.VSub_DollarName crlf)}
                                {<add>}
                                {($ Id.VSub_DollarName fname)}
                              ]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_Great '2>'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {(DQ (${ Id.VSub_Name pfx) <_> ($ Id.VSub_DollarName f) <.err>)}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
                        )
                      ]
                      right: <Id.KW_Done done>
                    )
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {
                  (DQ <'commit NNO files crlf='> ($ Id.VSub_DollarName crlf) <' attr='> 
                    ($ Id.VSub_DollarName attr) <' LF'>
                  )
                }
                {(SQ <'\n'> <'\t\tcheck_warning "$lfwarn" ${pfx}_LF.err\n'> <'\t'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {
                  (DQ <'commit NNO files attr='> ($ Id.VSub_DollarName attr) <' aeol='> 
                    ($ Id.VSub_DollarName aeol) <' crlf='> ($ Id.VSub_DollarName crlf) <' CRLF'>
                  )
                }
                {(SQ <'\n'> <'\t\tcheck_warning "$crlfwarn" ${pfx}_CRLF.err\n'> <'\t'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {
                  (DQ <'commit NNO files attr='> ($ Id.VSub_DollarName attr) <' aeol='> 
                    ($ Id.VSub_DollarName aeol) <' crlf='> ($ Id.VSub_DollarName crlf) <' CRLF_mix_LF'>
                  )
                }
                {(SQ <'\n'> <'\t\tcheck_warning "$lfmixcrlf" ${pfx}_CRLF_mix_LF.err\n'> <'\t'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {
                  (DQ <'commit NNO files attr='> ($ Id.VSub_DollarName attr) <' aeol='> 
                    ($ Id.VSub_DollarName aeol) <' crlf='> ($ Id.VSub_DollarName crlf) <' LF_mix_cr'>
                  )
                }
                {(SQ <'\n'> <'\t\tcheck_warning "$lfmixcr" ${pfx}_LF_mix_CR.err\n'> <'\t'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {
                  (DQ <'commit NNO files attr='> ($ Id.VSub_DollarName attr) <' aeol='> 
                    ($ Id.VSub_DollarName aeol) <' crlf='> ($ Id.VSub_DollarName crlf) <' CRLF_nul'>
                  )
                }
                {(SQ <'\n'> <'\t\tcheck_warning "$crlfnul" ${pfx}_CRLF_nul.err\n'> <'\t'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <stats_ascii>
      name: stats_ascii
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Number 1))})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <LF>
                  pattern: (pat.Words words:[{<LF>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {<lf>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <CRLF>
                  pattern: (pat.Words words:[{<CRLF>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {<crlf>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <CRLF_mix_LF>
                  pattern: (pat.Words words:[{<CRLF_mix_LF>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {<mixed>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <LF_mix_CR>
                  pattern: (pat.Words words:[{<LF_mix_CR>} {<CRLF_nul>} {<LF_nul>} {<CRLF_mix_CR>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <-text>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {<error_invalid>} {($ Id.VSub_Number 1)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <attr_ascii>
      name: attr_ascii
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: 
                (case_arg.Word
                  w: {($ Id.VSub_Number 1) <Id.Lit_Comma ','> ($ Id.VSub_Number 2)}
                )
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <-text>
                  pattern: (pat.Words words:[{<-text> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <-text>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <text>
                  pattern: (pat.Words words:[{<text> <Id.Lit_Comma ','>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <text>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <text>
                  pattern: (pat.Words words:[{<text> <Id.Lit_Comma ','> <lf>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'text eol=lf'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <text>
                  pattern: (pat.Words words:[{<text> <Id.Lit_Comma ','> <crlf>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'text eol=crlf'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <auto>
                  pattern: (pat.Words words:[{<auto> <Id.Lit_Comma ','>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'text=auto'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <auto>
                  pattern: (pat.Words words:[{<auto> <Id.Lit_Comma ','> <lf>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'text=auto eol=lf'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <auto>
                  pattern: (pat.Words words:[{<auto> <Id.Lit_Comma ','> <crlf>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'text=auto eol=crlf'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <lf>
                  pattern: (pat.Words words:[{<lf> <Id.Lit_Comma ','>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'text eol=lf'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <crlf>
                  pattern: (pat.Words words:[{<crlf> <Id.Lit_Comma ','>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'text eol=crlf'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Comma ','>
                  pattern: (pat.Words words:[{<Id.Lit_Comma ','>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ )}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {<invalid_attr>}
                        {(DQ ($ Id.VSub_Number 1) <','> ($ Id.VSub_Number 2))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <check_files_in_repo>
      name: check_files_in_repo
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'crlf='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'crlf='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'crlf='> name:crlf)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'attr='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'attr='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'attr='> name:attr)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 2)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'lfname='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'lfname='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lfname='> name:lfname)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 3)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'crlfname='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'crlfname='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'crlfname='> name:crlfname)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 4)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'lfmixcrlf='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'lfmixcrlf='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lfmixcrlf='> name:lfmixcrlf)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 5)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'lfmixcr='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'lfmixcr='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lfmixcr='> name:lfmixcr)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 6)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'crlfnul='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'crlfnul='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'crlfnul='> name:crlfnul)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 7)}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'pfx='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'pfx='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pfx='> name:pfx)
                      op: assign_op.Equal
                      rhs: 
                        {<crlf_> (${ Id.VSub_Name crlf) <_attr_> (${ Id.VSub_Name attr) 
                          <Id.Lit_Underscore _>
                        }
                    )
                  ]
                  redirects: []
                )
                (command.Simple
                  blame_tok: <compare_files>
                  more_env: []
                  words: [
                    {<compare_files>}
                    {($ Id.VSub_DollarName lfname)}
                    {(${ Id.VSub_Name pfx) <LF.txt>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <compare_files>
                  more_env: []
                  words: [
                    {<compare_files>}
                    {($ Id.VSub_DollarName crlfname)}
                    {(${ Id.VSub_Name pfx) <CRLF.txt>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <compare_files>
                  more_env: []
                  words: [
                    {<compare_files>}
                    {($ Id.VSub_DollarName lfmixcrlf)}
                    {(${ Id.VSub_Name pfx) <CRLF_mix_LF.txt>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <compare_files>
                  more_env: []
                  words: [
                    {<compare_files>}
                    {($ Id.VSub_DollarName lfmixcr)}
                    {(${ Id.VSub_Name pfx) <LF_mix_CR.txt>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <compare_files>
                  more_env: []
                  words: [
                    {<compare_files>}
                    {($ Id.VSub_DollarName crlfnul)}
                    {(${ Id.VSub_Name pfx) <CRLF_nul.txt>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <check_in_repo_NNO>
      name: check_in_repo_NNO
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'attr='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'attr='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'attr='> name:attr)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'aeol='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'aeol='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'aeol='> name:aeol)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'crlf='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'crlf='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'crlf='> name:crlf)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'lfname='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'lfname='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lfname='> name:lfname)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'crlfname='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'crlfname='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'crlfname='> name:crlfname)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'lfmixcrlf='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'lfmixcrlf='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lfmixcrlf='> name:lfmixcrlf)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'lfmixcr='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'lfmixcr='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lfmixcr='> name:lfmixcr)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'crlfnul='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'crlfnul='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'crlfnul='> name:crlfnul)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'pfx='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'pfx='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pfx='> name:pfx)
                  op: assign_op.Equal
                  rhs: 
                    {<NNO_attr_> (${ Id.VSub_Name attr) <_aeol_> (${ Id.VSub_Name aeol) 
                      <Id.Lit_Underscore _> (${ Id.VSub_Name crlf)
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {
                  (DQ <'compare_files '> ($ Id.VSub_DollarName lfname) <' '> (${ Id.VSub_Name pfx) 
                    <_LF.txt>
                  )
                }
                {(SQ <'\n'> <'\t\tcompare_files $lfname ${pfx}_LF.txt\n'> <'\t'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {
                  (DQ <'compare_files '> ($ Id.VSub_DollarName crlfname) <' '> (${ Id.VSub_Name pfx) 
                    <_CRLF.txt>
                  )
                }
                {(SQ <'\n'> <'\t\tcompare_files $crlfname ${pfx}_CRLF.txt\n'> <'\t'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {
                  (DQ <'compare_files '> ($ Id.VSub_DollarName lfmixcrlf) <' '> (${ Id.VSub_Name pfx) 
                    <_CRLF_mix_LF.txt>
                  )
                }
                {(SQ <'\n'> <'\t\tcompare_files $lfmixcrlf ${pfx}_CRLF_mix_LF.txt\n'> <'\t'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {
                  (DQ <'compare_files '> ($ Id.VSub_DollarName lfmixcr) <' '> (${ Id.VSub_Name pfx) 
                    <_LF_mix_CR.txt>
                  )
                }
                {(SQ <'\n'> <'\t\tcompare_files $lfmixcr ${pfx}_LF_mix_CR.txt\n'> <'\t'>)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {
                  (DQ <'compare_files '> ($ Id.VSub_DollarName crlfnul) <' '> (${ Id.VSub_Name pfx) 
                    <_CRLF_nul.txt>
                  )
                }
                {(SQ <'\n'> <'\t\tcompare_files $crlfnul ${pfx}_CRLF_nul.txt\n'> <'\t'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <checkout_files>
      name: checkout_files
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'attr='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'attr='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'attr='> name:attr)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'ident='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'ident='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ident='> name:ident)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'aeol='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'aeol='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'aeol='> name:aeol)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'crlf='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'crlf='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'crlf='> name:crlf)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'ceol='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'ceol='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ceol='> name:ceol)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'lfname='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'lfname='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lfname='> name:lfname)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'crlfname='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'crlfname='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'crlfname='> name:crlfname)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'lfmixcrlf='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'lfmixcrlf='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lfmixcrlf='> name:lfmixcrlf)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'lfmixcr='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'lfmixcr='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lfmixcr='> name:lfmixcr)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.Sentence
              child: 
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'crlfnul='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'crlfnul='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'crlfnul='> name:crlfnul)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number 1)}
                    )
                  ]
                  redirects: []
                )
              terminator: <Id.Op_Semi _>
            )
            (command.Simple
              blame_tok: <shift>
              more_env: []
              words: [{<shift>}]
              redirects: []
              do_fork: T
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <create_gitattributes>
                  more_env: []
                  words: [
                    {<create_gitattributes>}
                    {(DQ ($ Id.VSub_DollarName attr))}
                    {($ Id.VSub_DollarName ident)}
                    {($ Id.VSub_DollarName aeol)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <git>
                  more_env: []
                  words: [{<git>} {<config>} {<core.autocrlf>} {($ Id.VSub_DollarName crlf)}]
                  redirects: []
                  do_fork: T
                )
                (command.ShAssignment
                  left: <Id.Lit_VarLike 'pfx='>
                  pairs: [
                    (AssignPair
                      left: <Id.Lit_VarLike 'pfx='>
                      lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'pfx='> name:pfx)
                      op: assign_op.Equal
                      rhs: 
                        {<eol_> (${ Id.VSub_Name ceol) <_crlf_> (${ Id.VSub_Name crlf) <_attr_> 
                          (${ Id.VSub_Name attr) <Id.Lit_Underscore _>
                        }
                    )
                  ]
                  redirects: []
                )
                (command.ForEach
                  keyword: <Id.KW_For for>
                  iter_names: [f]
                  iterable: 
                    (for_iter.Words
                      words: [{<LF>} {<CRLF>} {<LF_mix_CR>} {<CRLF_mix_LF>} {<LF_nul>}]
                    )
                  body: 
                    (command.DoGroup
                      left: <Id.KW_Do do>
                      children: [
                        (command.AndOr
                          children: [
                            (command.Simple
                              blame_tok: <rm>
                              more_env: []
                              words: [{<rm>} {<crlf_false_attr__> ($ Id.VSub_DollarName f) <.txt>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.If
                              if_kw: <Id.KW_If if>
                              arms: [
                                (IfArm
                                  keyword: <Id.KW_If if>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Simple
                                              blame_tok: <test>
                                              more_env: []
                                              words: [{<test>} {<-z>} {(DQ ($ Id.VSub_DollarName ceol))}]
                                              redirects: []
                                              do_fork: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  then_kw: <Id.KW_Then then>
                                  action: [
                                    (command.Simple
                                      blame_tok: <git>
                                      more_env: []
                                      words: [
                                        {<git>}
                                        {<checkout>}
                                        {<crlf_false_attr__> ($ Id.VSub_DollarName f) <.txt>}
                                      ]
                                      redirects: []
                                      do_fork: T
                                    )
                                  ]
                                  spids: [1890 1901]
                                )
                              ]
                              else_kw: <Id.KW_Else else>
                              else_action: [
                                (command.Simple
                                  blame_tok: <git>
                                  more_env: []
                                  words: [
                                    {<git>}
                                    {<-c>}
                                    {<core.eol> <Id.Lit_Equals '='> ($ Id.VSub_DollarName ceol)}
                                    {<checkout>}
                                    {<crlf_false_attr__> ($ Id.VSub_DollarName f) <.txt>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              fi_kw: <Id.KW_Fi fi>
                              redirects: []
                            )
                          ]
                          ops: [<Id.Op_DAmp _>]
                        )
                      ]
                      right: <Id.KW_Done done>
                    )
                  redirects: []
                )
              ]
              ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {
                  (DQ <'ls-files --eol attr='> ($ Id.VSub_DollarName attr) <' '> 
                    ($ Id.VSub_DollarName ident) <' aeol='> ($ Id.VSub_DollarName aeol) <' core.autocrlf='> ($ Id.VSub_DollarName crlf) <' core.eol='> 
                    ($ Id.VSub_DollarName ceol)
                  )
                }
                {
                  (SQ <'\n'> <'\t\ttest_when_finished "rm expect actual" &&\n'> 
                    <'\t\tsort <<-EOF >expect &&\n'> <'\t\ti/crlf w/$(stats_ascii $crlfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF.txt\n'> 
                    <
'\t\ti/mixed w/$(stats_ascii $lfmixcrlf) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_mix_LF.txt\n'
                    > <'\t\ti/lf w/$(stats_ascii $lfname) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF.txt\n'> 
                    <
'\t\ti/-text w/$(stats_ascii $lfmixcr) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_mix_CR.txt\n'
                    > 
                    <
'\t\ti/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__CRLF_nul.txt\n'
                    > 
                    <
'\t\ti/-text w/$(stats_ascii $crlfnul) attr/$(attr_ascii $attr $aeol) crlf_false_attr__LF_nul.txt\n'
                    > <'\t\tEOF\n'> <'\t\tgit ls-files --eol crlf_false_attr__* |\n'> 
                    <'\t\tsed -e "s/\t/ /g" -e "s/  */ /g" |\n'> <'\t\tsort >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {
                  (DQ <'checkout attr='> ($ Id.VSub_DollarName attr) <' '> ($ Id.VSub_DollarName ident) 
                    <' aeol='> ($ Id.VSub_DollarName aeol) <' core.autocrlf='> ($ Id.VSub_DollarName crlf) <' core.eol='> 
                    ($ Id.VSub_DollarName ceol) <' file=LF'>
                  )
                }
                {
                  (DQ <'\n'> <'\t\tcompare_ws_file '> ($ Id.VSub_DollarName pfx) <' '> 
                    ($ Id.VSub_DollarName lfname) <'    crlf_false_attr__LF.txt\n'> <'\t'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {
                  (DQ <'checkout attr='> ($ Id.VSub_DollarName attr) <' '> ($ Id.VSub_DollarName ident) 
                    <' aeol='> ($ Id.VSub_DollarName aeol) <' core.autocrlf='> ($ Id.VSub_DollarName crlf) <' core.eol='> 
                    ($ Id.VSub_DollarName ceol) <' file=CRLF'>
                  )
                }
                {
                  (DQ <'\n'> <'\t\tcompare_ws_file '> ($ Id.VSub_DollarName pfx) <' '> 
                    ($ Id.VSub_DollarName crlfname) <'  crlf_false_attr__CRLF.txt\n'> <'\t'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {
                  (DQ <'checkout attr='> ($ Id.VSub_DollarName attr) <' '> ($ Id.VSub_DollarName ident) 
                    <' aeol='> ($ Id.VSub_DollarName aeol) <' core.autocrlf='> ($ Id.VSub_DollarName crlf) <' core.eol='> 
                    ($ Id.VSub_DollarName ceol) <' file=CRLF_mix_LF'>
                  )
                }
                {
                  (DQ <'\n'> <'\t\tcompare_ws_file '> ($ Id.VSub_DollarName pfx) <' '> 
                    ($ Id.VSub_DollarName lfmixcrlf) <' crlf_false_attr__CRLF_mix_LF.txt\n'> <'\t'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {
                  (DQ <'checkout attr='> ($ Id.VSub_DollarName attr) <' '> ($ Id.VSub_DollarName ident) 
                    <' aeol='> ($ Id.VSub_DollarName aeol) <' core.autocrlf='> ($ Id.VSub_DollarName crlf) <' core.eol='> 
                    ($ Id.VSub_DollarName ceol) <' file=LF_mix_CR'>
                  )
                }
                {
                  (DQ <'\n'> <'\t\tcompare_ws_file '> ($ Id.VSub_DollarName pfx) <' '> 
                    ($ Id.VSub_DollarName lfmixcr) <'   crlf_false_attr__LF_mix_CR.txt\n'> <'\t'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <test_expect_success>
              more_env: []
              words: [
                {<test_expect_success>}
                {
                  (DQ <'checkout attr='> ($ Id.VSub_DollarName attr) <' '> ($ Id.VSub_DollarName ident) 
                    <' aeol='> ($ Id.VSub_DollarName aeol) <' core.autocrlf='> ($ Id.VSub_DollarName crlf) <' core.eol='> 
                    ($ Id.VSub_DollarName ceol) <' file=LF_nul'>
                  )
                }
                {
                  (DQ <'\n'> <'\t\tcompare_ws_file '> ($ Id.VSub_DollarName pfx) <' '> 
                    ($ Id.VSub_DollarName crlfnul) <'   crlf_false_attr__LF_nul.txt\n'> <'\t'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'ls-files --eol -o Text/Binary'>)}
        {
          (SQ <'\n'> <'\ttest_when_finished "rm expect actual TeBi_*" &&\n'> 
            <'\tSTRT=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA &&\n'> <'\tSTR=$STRT$STRT$STRT$STRT &&\n'> <'\tprintf "${STR}BBB\\001" >TeBi_127_S &&\n'> 
            <'\tprintf "${STR}BBBB\\001">TeBi_128_S &&\n'> <'\tprintf "${STR}BBB\\032" >TeBi_127_E &&\n'> <'\tprintf "\\032${STR}BBB" >TeBi_E_127 &&\n'> 
            <'\tprintf "${STR}BBBB\\000">TeBi_128_N &&\n'> <'\tprintf "${STR}BBB\\012">TeBi_128_L &&\n'> <'\tprintf "${STR}BBB\\015">TeBi_127_C &&\n'> 
            <'\tprintf "${STR}BB\\015\\012" >TeBi_126_CL &&\n'> <'\tprintf "${STR}BB\\015\\012\\015" >TeBi_126_CLC &&\n'> <'\tsort <<-\\EOF >expect &&\n'> 
            <'\ti/ w/-text TeBi_127_S\n'> <'\ti/ w/none TeBi_128_S\n'> <'\ti/ w/none TeBi_127_E\n'> <'\ti/ w/-text TeBi_E_127\n'> 
            <'\ti/ w/-text TeBi_128_N\n'> <'\ti/ w/lf TeBi_128_L\n'> <'\ti/ w/-text TeBi_127_C\n'> <'\ti/ w/crlf TeBi_126_CL\n'> 
            <'\ti/ w/-text TeBi_126_CLC\n'> <'\tEOF\n'> <'\tgit ls-files --eol -o |\n'> <'\tsed -n -e "/TeBi_/{s!attr/[\t]*!!g\n'> <'\ts!\t! !g\n'> 
            <'\ts!  *! !g\n'> <'\tp\n'> <'\t}" | sort >actual &&\n'> <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'setup master'>)}
        {
          (SQ <'\n'> <'\techo >.gitattributes &&\n'> <'\tgit checkout -b master &&\n'> 
            <'\tgit add .gitattributes &&\n'> <'\tgit commit -m "add .gitattributes" "" &&\n'> 
            <
'\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONE\\nLINETWO\\nLINETHREE"     >LF &&\n'
            > 
            <
'\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\r\\nLINEONE\\r\\nLINETWO\\r\\nLINETHREE" >CRLF &&\n'
            > 
            <
'\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONE\\r\\nLINETWO\\nLINETHREE"   >CRLF_mix_LF &&\n'
            > 
            <
'\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONE\\nLINETWO\\rLINETHREE"     >LF_mix_CR &&\n'
            > 
            <
'\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\r\\nLINEONE\\r\\nLINETWO\\rLINETHREE"   >CRLF_mix_CR &&\n'
            > 
            <
'\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\r\\nLINEONEQ\\r\\nLINETWO\\r\\nLINETHREE" | q_to_nul >CRLF_nul &&\n'
            > 
            <
'\tprintf "\\$Id: 0000000000000000000000000000000000000000 \\$\\nLINEONEQ\\nLINETWO\\nLINETHREE" | q_to_nul >LF_nul &&\n'
            > <'\tcreate_NNO_files CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF CRLF_mix_LF &&\n'> 
            <'\tgit -c core.autocrlf=false add NNO_*.txt &&\n'> <'\tgit commit -m "mixed line endings" &&\n'> <'\ttest_tick\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'warn_LF_CRLF='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'warn_LF_CRLF='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'warn_LF_CRLF='> name:warn_LF_CRLF)
          op: assign_op.Equal
          rhs: {(DQ <'LF will be replaced by CRLF'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'warn_CRLF_LF='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'warn_CRLF_LF='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'warn_CRLF_LF='> name:warn_CRLF_LF)
          op: assign_op.Equal
          rhs: {(DQ <'CRLF will be replaced by LF'>)}
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test_have_prereq>
                  more_env: []
                  words: [{<test_have_prereq>} {<NATIVE_CRLF>}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'WILC='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'WILC='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WILC='> name:WILC)
                  op: assign_op.Equal
                  rhs: {<LF_CRLF>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'WICL='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'WICL='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WICL='> name:WICL)
                  op: assign_op.Equal
                  rhs: (rhs_word__Empty)
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'WAMIX='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'WAMIX='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WAMIX='> name:WAMIX)
                  op: assign_op.Equal
                  rhs: {<LF_CRLF>}
                )
              ]
              redirects: []
            )
          ]
          spids: [2204 2210]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShAssignment
          left: <Id.Lit_VarLike 'WILC='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'WILC='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WILC='> name:WILC)
              op: assign_op.Equal
              rhs: (rhs_word__Empty)
            )
          ]
          redirects: []
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'WICL='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'WICL='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WICL='> name:WICL)
              op: assign_op.Equal
              rhs: {<CRLF_LF>}
            )
          ]
          redirects: []
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'WAMIX='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'WAMIX='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WAMIX='> name:WAMIX)
              op: assign_op.Equal
              rhs: {<CRLF_LF>}
            )
          ]
          redirects: []
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'commit files empty attr'>)}
        {
          (SQ <'\n'> 
            <'\tcommit_check_warn false ""     ""        ""        ""        ""        "" &&\n'> <'\tcommit_check_warn true  ""     "LF_CRLF" ""        "LF_CRLF" ""        "" &&\n'> 
            <'\tcommit_check_warn input ""     ""        "CRLF_LF" "CRLF_LF" ""        ""\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'commit files attr=auto'>)}
        {
          (SQ <'\n'> 
            <'\tcommit_check_warn false "auto" "$WILC"   "$WICL"   "$WAMIX"  ""        "" &&\n'> <'\tcommit_check_warn true  "auto" "LF_CRLF" ""        "LF_CRLF" ""        "" &&\n'> 
            <'\tcommit_check_warn input "auto" ""        "CRLF_LF" "CRLF_LF" ""        ""\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'commit files attr=text'>)}
        {
          (SQ <'\n'> 
            <
'\tcommit_check_warn false "text" "$WILC"   "$WICL"   "$WAMIX"  "$WILC"   "$WICL"   &&\n'
            > <'\tcommit_check_warn true  "text" "LF_CRLF" ""        "LF_CRLF" "LF_CRLF" ""        &&\n'> 
            <'\tcommit_check_warn input "text" ""        "CRLF_LF" "CRLF_LF" ""        "CRLF_LF"\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'commit files attr=-text'>)}
        {
          (SQ <'\n'> 
            <'\tcommit_check_warn false "-text" ""       ""        ""        ""        "" &&\n'> <'\tcommit_check_warn true  "-text" ""       ""        ""        ""        "" &&\n'> 
            <'\tcommit_check_warn input "-text" ""       ""        ""        ""        ""\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'commit files attr=lf'>)}
        {
          (SQ <'\n'> 
            <
'\tcommit_check_warn false "lf"    ""       "CRLF_LF" "CRLF_LF"  ""       "CRLF_LF" &&\n'
            > <'\tcommit_check_warn true  "lf"    ""       "CRLF_LF" "CRLF_LF"  ""       "CRLF_LF" &&\n'> 
            <'\tcommit_check_warn input "lf"    ""       "CRLF_LF" "CRLF_LF"  ""       "CRLF_LF"\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'commit files attr=crlf'>)}
        {
          (SQ <'\n'> 
            <'\tcommit_check_warn false "crlf" "LF_CRLF" ""        "LF_CRLF" "LF_CRLF" "" &&\n'> <'\tcommit_check_warn true  "crlf" "LF_CRLF" ""        "LF_CRLF" "LF_CRLF" "" &&\n'> 
            <'\tcommit_check_warn input "crlf" "LF_CRLF" ""        "LF_CRLF" "LF_CRLF" ""\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <commit_chk_wrnNNO>
      more_env: []
      words: [{<commit_chk_wrnNNO>} {(DQ )} {(DQ )} {<false>} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <commit_chk_wrnNNO>
      more_env: []
      words: [{<commit_chk_wrnNNO>} {(DQ )} {(DQ )} {<true>} {<LF_CRLF>} {(DQ )} {(DQ )} {(DQ )} {(DQ )}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <commit_chk_wrnNNO>
      more_env: []
      words: [{<commit_chk_wrnNNO>} {(DQ )} {(DQ )} {<input>} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <commit_chk_wrnNNO>
      more_env: []
      words: [{<commit_chk_wrnNNO>} {(DQ <auto>)} {(DQ )} {<false>} {(DQ ($ Id.VSub_DollarName WILC))} {(DQ )} {(DQ )} {(DQ )} {(DQ )}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <commit_chk_wrnNNO>
      more_env: []
      words: [{<commit_chk_wrnNNO>} {(DQ <auto>)} {(DQ )} {<true>} {<LF_CRLF>} {(DQ )} {(DQ )} {(DQ )} {(DQ )}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <commit_chk_wrnNNO>
      more_env: []
      words: [{<commit_chk_wrnNNO>} {(DQ <auto>)} {(DQ )} {<input>} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )}]
      redirects: []
      do_fork: T
    )
    (command.ForEach
      keyword: <Id.KW_For for>
      iter_names: [crlf]
      iterable: (for_iter.Words words:[{<true>} {<false>} {<input>}])
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Simple
              blame_tok: <commit_chk_wrnNNO>
              more_env: []
              words: [{<commit_chk_wrnNNO>} {<-text>} {(DQ )} {($ Id.VSub_DollarName crlf)} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <commit_chk_wrnNNO>
              more_env: []
              words: [{<commit_chk_wrnNNO>} {<-text>} {<lf>} {($ Id.VSub_DollarName crlf)} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <commit_chk_wrnNNO>
              more_env: []
              words: [{<commit_chk_wrnNNO>} {<-text>} {<crlf>} {($ Id.VSub_DollarName crlf)} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <commit_chk_wrnNNO>
              more_env: []
              words: [
                {<commit_chk_wrnNNO>}
                {(DQ )}
                {<lf>}
                {($ Id.VSub_DollarName crlf)}
                {(DQ )}
                {<CRLF_LF>}
                {<CRLF_LF>}
                {(DQ )}
                {<CRLF_LF>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <commit_chk_wrnNNO>
              more_env: []
              words: [
                {<commit_chk_wrnNNO>}
                {(DQ )}
                {<crlf>}
                {($ Id.VSub_DollarName crlf)}
                {<LF_CRLF>}
                {(DQ )}
                {<LF_CRLF>}
                {<LF_CRLF>}
                {(DQ )}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <commit_chk_wrnNNO>
              more_env: []
              words: [{<commit_chk_wrnNNO>} {<auto>} {<lf>} {($ Id.VSub_DollarName crlf)} {(DQ )} {(DQ )} {(DQ )} {(DQ )} {(DQ )}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <commit_chk_wrnNNO>
              more_env: []
              words: [{<commit_chk_wrnNNO>} {<auto>} {<crlf>} {($ Id.VSub_DollarName crlf)} {<LF_CRLF>} {(DQ )} {(DQ )} {(DQ )} {(DQ )}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <commit_chk_wrnNNO>
              more_env: []
              words: [
                {<commit_chk_wrnNNO>}
                {<text>}
                {<lf>}
                {($ Id.VSub_DollarName crlf)}
                {(DQ )}
                {<CRLF_LF>}
                {<CRLF_LF>}
                {(DQ )}
                {<CRLF_LF>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <commit_chk_wrnNNO>
              more_env: []
              words: [
                {<commit_chk_wrnNNO>}
                {<text>}
                {<crlf>}
                {($ Id.VSub_DollarName crlf)}
                {<LF_CRLF>}
                {(DQ )}
                {<LF_CRLF>}
                {<LF_CRLF>}
                {(DQ )}
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.Simple
      blame_tok: <commit_chk_wrnNNO>
      more_env: []
      words: [
        {<commit_chk_wrnNNO>}
        {(DQ <text>)}
        {(DQ )}
        {<false>}
        {(DQ ($ Id.VSub_DollarName WILC))}
        {(DQ ($ Id.VSub_DollarName WICL))}
        {(DQ ($ Id.VSub_DollarName WAMIX))}
        {(DQ ($ Id.VSub_DollarName WILC))}
        {(DQ ($ Id.VSub_DollarName WICL))}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <commit_chk_wrnNNO>
      more_env: []
      words: [
        {<commit_chk_wrnNNO>}
        {(DQ <text>)}
        {(DQ )}
        {<true>}
        {<LF_CRLF>}
        {(DQ )}
        {<LF_CRLF>}
        {<LF_CRLF>}
        {(DQ )}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <commit_chk_wrnNNO>
      more_env: []
      words: [
        {<commit_chk_wrnNNO>}
        {(DQ <text>)}
        {(DQ )}
        {<input>}
        {(DQ )}
        {<CRLF_LF>}
        {<CRLF_LF>}
        {(DQ )}
        {<CRLF_LF>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'commit NNO and cleanup'>)}
        {
          (SQ <'\n'> <'\tgit commit -m "commit files on top of NNO" &&\n'> <'\trm -f *.txt &&\n'> 
            <'\tgit -c core.autocrlf=false reset --hard\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'commit empty gitattribues'>)}
        {
          (SQ <'\n'> 
            <'\tcheck_files_in_repo false ""      LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul &&\n'> <'\tcheck_files_in_repo true  ""      LF LF   LF          LF_mix_CR CRLF_nul &&\n'> 
            <'\tcheck_files_in_repo input ""      LF LF   LF          LF_mix_CR CRLF_nul\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'commit text=auto'>)}
        {
          (SQ <'\n'> 
            <'\tcheck_files_in_repo false "auto"  LF LF   LF          LF_mix_CR CRLF_nul &&\n'> <'\tcheck_files_in_repo true  "auto"  LF LF   LF          LF_mix_CR CRLF_nul &&\n'> 
            <'\tcheck_files_in_repo input "auto"  LF LF   LF          LF_mix_CR CRLF_nul\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'commit text'>)}
        {
          (SQ <'\n'> <'\tcheck_files_in_repo false "text"  LF LF   LF          LF_mix_CR LF_nul &&\n'> 
            <'\tcheck_files_in_repo true  "text"  LF LF   LF          LF_mix_CR LF_nul &&\n'> <'\tcheck_files_in_repo input "text"  LF LF   LF          LF_mix_CR LF_nul\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'commit -text'>)}
        {
          (SQ <'\n'> 
            <'\tcheck_files_in_repo false "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul &&\n'> <'\tcheck_files_in_repo true  "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul &&\n'> 
            <'\tcheck_files_in_repo input "-text" LF CRLF CRLF_mix_LF LF_mix_CR CRLF_nul\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.ForEach
      keyword: <Id.KW_For for>
      iter_names: [crlf]
      iterable: (for_iter.Words words:[{<true>} {<false>} {<input>}])
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Simple
              blame_tok: <check_in_repo_NNO>
              more_env: []
              words: [
                {<check_in_repo_NNO>}
                {(DQ )}
                {(DQ )}
                {($ Id.VSub_DollarName crlf)}
                {<LF>}
                {<CRLF>}
                {<CRLF_mix_LF>}
                {<LF_mix_CR>}
                {<CRLF_nul>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <check_in_repo_NNO>
              more_env: []
              words: [
                {<check_in_repo_NNO>}
                {<-text>}
                {(DQ )}
                {($ Id.VSub_DollarName crlf)}
                {<LF>}
                {<CRLF>}
                {<CRLF_mix_LF>}
                {<LF_mix_CR>}
                {<CRLF_nul>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <check_in_repo_NNO>
              more_env: []
              words: [
                {<check_in_repo_NNO>}
                {<-text>}
                {<lf>}
                {($ Id.VSub_DollarName crlf)}
                {<LF>}
                {<CRLF>}
                {<CRLF_mix_LF>}
                {<LF_mix_CR>}
                {<CRLF_nul>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <check_in_repo_NNO>
              more_env: []
              words: [
                {<check_in_repo_NNO>}
                {<-text>}
                {<crlf>}
                {($ Id.VSub_DollarName crlf)}
                {<LF>}
                {<CRLF>}
                {<CRLF_mix_LF>}
                {<LF_mix_CR>}
                {<CRLF_nul>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <check_in_repo_NNO>
              more_env: []
              words: [
                {<check_in_repo_NNO>}
                {<auto>}
                {(DQ )}
                {($ Id.VSub_DollarName crlf)}
                {<LF>}
                {<CRLF>}
                {<CRLF_mix_LF>}
                {<LF_mix_CR>}
                {<CRLF_nul>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <check_in_repo_NNO>
              more_env: []
              words: [
                {<check_in_repo_NNO>}
                {<auto>}
                {<lf>}
                {($ Id.VSub_DollarName crlf)}
                {<LF>}
                {<CRLF>}
                {<CRLF_mix_LF>}
                {<LF_mix_CR>}
                {<CRLF_nul>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <check_in_repo_NNO>
              more_env: []
              words: [
                {<check_in_repo_NNO>}
                {<auto>}
                {<crlf>}
                {($ Id.VSub_DollarName crlf)}
                {<LF>}
                {<CRLF>}
                {<CRLF_mix_LF>}
                {<LF_mix_CR>}
                {<CRLF_nul>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <check_in_repo_NNO>
              more_env: []
              words: [
                {<check_in_repo_NNO>}
                {<text>}
                {(DQ )}
                {($ Id.VSub_DollarName crlf)}
                {<LF>}
                {<LF>}
                {<LF>}
                {<LF_mix_CR>}
                {<LF_nul>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <check_in_repo_NNO>
              more_env: []
              words: [
                {<check_in_repo_NNO>}
                {<text>}
                {<lf>}
                {($ Id.VSub_DollarName crlf)}
                {<LF>}
                {<LF>}
                {<LF>}
                {<LF_mix_CR>}
                {<LF_nul>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <check_in_repo_NNO>
              more_env: []
              words: [
                {<check_in_repo_NNO>}
                {<text>}
                {<crlf>}
                {($ Id.VSub_DollarName crlf)}
                {<LF>}
                {<LF>}
                {<LF>}
                {<LF_mix_CR>}
                {<LF_nul>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <test_have_prereq>
                  more_env: []
                  words: [{<test_have_prereq>} {<NATIVE_CRLF>}]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MIX_CRLF_LF='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MIX_CRLF_LF='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MIX_CRLF_LF='> name:MIX_CRLF_LF)
                  op: assign_op.Equal
                  rhs: {<CRLF>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'MIX_LF_CR='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'MIX_LF_CR='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MIX_LF_CR='> name:MIX_LF_CR)
                  op: assign_op.Equal
                  rhs: {<CRLF_mix_CR>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'NL='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'NL='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NL='> name:NL)
                  op: assign_op.Equal
                  rhs: {<CRLF>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LFNUL='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LFNUL='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LFNUL='> name:LFNUL)
                  op: assign_op.Equal
                  rhs: {<CRLF_nul>}
                )
              ]
              redirects: []
            )
          ]
          spids: [3117 3123]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShAssignment
          left: <Id.Lit_VarLike 'MIX_CRLF_LF='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'MIX_CRLF_LF='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MIX_CRLF_LF='> name:MIX_CRLF_LF)
              op: assign_op.Equal
              rhs: {<CRLF_mix_LF>}
            )
          ]
          redirects: []
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'MIX_LF_CR='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'MIX_LF_CR='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MIX_LF_CR='> name:MIX_LF_CR)
              op: assign_op.Equal
              rhs: {<LF_mix_CR>}
            )
          ]
          redirects: []
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'NL='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'NL='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NL='> name:NL)
              op: assign_op.Equal
              rhs: {<LF>}
            )
          ]
          redirects: []
        )
        (command.ShAssignment
          left: <Id.Lit_VarLike 'LFNUL='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'LFNUL='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LFNUL='> name:LFNUL)
              op: assign_op.Equal
              rhs: {<LF_nul>}
            )
          ]
          redirects: []
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<CRLF_MIX_LF_CR>} {<MIX>} {<NL>}]
      redirects: []
      do_fork: T
    )
    (command.ForEach
      keyword: <Id.KW_For for>
      iter_names: [id]
      iterable: (for_iter.Words words:[{(DQ )} {<ident>}])
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [ceol]
              iterable: (for_iter.Words words:[{<lf>} {<crlf>} {<native>}])
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [crlf]
                      iterable: (for_iter.Words words:[{<true>} {<false>} {<input>}])
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <checkout_files>
                              more_env: []
                              words: [
                                {<checkout_files>}
                                {<-text>}
                                {(DQ ($ Id.VSub_DollarName id))}
                                {(DQ )}
                                {(DQ ($ Id.VSub_DollarName crlf))}
                                {(DQ ($ Id.VSub_DollarName ceol))}
                                {<LF>}
                                {<CRLF>}
                                {<CRLF_mix_LF>}
                                {<LF_mix_CR>}
                                {<LF_nul>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <checkout_files>
                              more_env: []
                              words: [
                                {<checkout_files>}
                                {<-text>}
                                {(DQ ($ Id.VSub_DollarName id))}
                                {(DQ <lf>)}
                                {(DQ ($ Id.VSub_DollarName crlf))}
                                {(DQ ($ Id.VSub_DollarName ceol))}
                                {<LF>}
                                {<CRLF>}
                                {<CRLF_mix_LF>}
                                {<LF_mix_CR>}
                                {<LF_nul>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <checkout_files>
                              more_env: []
                              words: [
                                {<checkout_files>}
                                {<-text>}
                                {(DQ ($ Id.VSub_DollarName id))}
                                {(DQ <crlf>)}
                                {(DQ ($ Id.VSub_DollarName crlf))}
                                {(DQ ($ Id.VSub_DollarName ceol))}
                                {<LF>}
                                {<CRLF>}
                                {<CRLF_mix_LF>}
                                {<LF_mix_CR>}
                                {<LF_nul>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <checkout_files>
                              more_env: []
                              words: [
                                {<checkout_files>}
                                {<text>}
                                {(DQ ($ Id.VSub_DollarName id))}
                                {(DQ <lf>)}
                                {(DQ ($ Id.VSub_DollarName crlf))}
                                {(DQ ($ Id.VSub_DollarName ceol))}
                                {<LF>}
                                {<CRLF>}
                                {<CRLF_mix_LF>}
                                {<LF_mix_CR>}
                                {<LF_nul>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <checkout_files>
                              more_env: []
                              words: [
                                {<checkout_files>}
                                {<text>}
                                {(DQ ($ Id.VSub_DollarName id))}
                                {(DQ <crlf>)}
                                {(DQ ($ Id.VSub_DollarName crlf))}
                                {(DQ ($ Id.VSub_DollarName ceol))}
                                {<CRLF>}
                                {<CRLF>}
                                {<CRLF>}
                                {<CRLF_mix_CR>}
                                {<CRLF_nul>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <checkout_files>
                              more_env: []
                              words: [
                                {<checkout_files>}
                                {<auto>}
                                {(DQ ($ Id.VSub_DollarName id))}
                                {(DQ <lf>)}
                                {(DQ ($ Id.VSub_DollarName crlf))}
                                {(DQ ($ Id.VSub_DollarName ceol))}
                                {<LF>}
                                {<CRLF>}
                                {<CRLF_mix_LF>}
                                {<LF_mix_CR>}
                                {<LF_nul>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <checkout_files>
                              more_env: []
                              words: [
                                {<checkout_files>}
                                {<auto>}
                                {(DQ ($ Id.VSub_DollarName id))}
                                {(DQ <crlf>)}
                                {(DQ ($ Id.VSub_DollarName crlf))}
                                {(DQ ($ Id.VSub_DollarName ceol))}
                                {<CRLF>}
                                {<CRLF>}
                                {<CRLF_mix_LF>}
                                {<LF_mix_CR>}
                                {<LF_nul>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <checkout_files>
                      more_env: []
                      words: [
                        {<checkout_files>}
                        {(DQ )}
                        {(DQ ($ Id.VSub_DollarName id))}
                        {(DQ )}
                        {<false>}
                        {(DQ ($ Id.VSub_DollarName ceol))}
                        {<LF>}
                        {<CRLF>}
                        {<CRLF_mix_LF>}
                        {<LF_mix_CR>}
                        {<LF_nul>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <checkout_files>
                      more_env: []
                      words: [
                        {<checkout_files>}
                        {(DQ )}
                        {(DQ ($ Id.VSub_DollarName id))}
                        {(DQ )}
                        {<true>}
                        {(DQ ($ Id.VSub_DollarName ceol))}
                        {<CRLF>}
                        {<CRLF>}
                        {<CRLF_mix_LF>}
                        {<LF_mix_CR>}
                        {<LF_nul>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <checkout_files>
                      more_env: []
                      words: [
                        {<checkout_files>}
                        {<auto>}
                        {(DQ ($ Id.VSub_DollarName id))}
                        {(DQ )}
                        {<true>}
                        {(DQ ($ Id.VSub_DollarName ceol))}
                        {<CRLF>}
                        {<CRLF>}
                        {<CRLF_mix_LF>}
                        {<LF_mix_CR>}
                        {<LF_nul>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <checkout_files>
                      more_env: []
                      words: [
                        {<checkout_files>}
                        {<text>}
                        {(DQ ($ Id.VSub_DollarName id))}
                        {(DQ )}
                        {<true>}
                        {(DQ ($ Id.VSub_DollarName ceol))}
                        {<CRLF>}
                        {<CRLF>}
                        {<CRLF>}
                        {<CRLF_mix_CR>}
                        {<CRLF_nul>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <checkout_files>
                      more_env: []
                      words: [
                        {<checkout_files>}
                        {<text>}
                        {(DQ ($ Id.VSub_DollarName id))}
                        {(DQ )}
                        {<input>}
                        {(DQ ($ Id.VSub_DollarName ceol))}
                        {<LF>}
                        {<CRLF>}
                        {<CRLF_mix_LF>}
                        {<LF_mix_CR>}
                        {<LF_nul>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <checkout_files>
                      more_env: []
                      words: [
                        {<checkout_files>}
                        {<auto>}
                        {(DQ ($ Id.VSub_DollarName id))}
                        {(DQ )}
                        {<input>}
                        {(DQ ($ Id.VSub_DollarName ceol))}
                        {<LF>}
                        {<CRLF>}
                        {<CRLF_mix_LF>}
                        {<LF_mix_CR>}
                        {<LF_nul>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
            (command.Simple
              blame_tok: <checkout_files>
              more_env: []
              words: [
                {<checkout_files>}
                {<text>}
                {(DQ ($ Id.VSub_DollarName id))}
                {(DQ )}
                {<false>}
                {<crlf>}
                {<CRLF>}
                {<CRLF>}
                {<CRLF>}
                {<CRLF_mix_CR>}
                {<CRLF_nul>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <checkout_files>
              more_env: []
              words: [
                {<checkout_files>}
                {<text>}
                {(DQ ($ Id.VSub_DollarName id))}
                {(DQ )}
                {<false>}
                {<lf>}
                {<LF>}
                {<CRLF>}
                {<CRLF_mix_LF>}
                {<LF_mix_CR>}
                {<LF_nul>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <checkout_files>
              more_env: []
              words: [
                {<checkout_files>}
                {<text>}
                {(DQ ($ Id.VSub_DollarName id))}
                {(DQ )}
                {<false>}
                {(DQ )}
                {($ Id.VSub_DollarName NL)}
                {<CRLF>}
                {($ Id.VSub_DollarName MIX_CRLF_LF)}
                {($ Id.VSub_DollarName MIX_LF_CR)}
                {($ Id.VSub_DollarName LFNUL)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <checkout_files>
              more_env: []
              words: [
                {<checkout_files>}
                {<text>}
                {(DQ ($ Id.VSub_DollarName id))}
                {(DQ )}
                {<false>}
                {<native>}
                {($ Id.VSub_DollarName NL)}
                {<CRLF>}
                {($ Id.VSub_DollarName MIX_CRLF_LF)}
                {($ Id.VSub_DollarName MIX_LF_CR)}
                {($ Id.VSub_DollarName LFNUL)}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <checkout_files>
              more_env: []
              words: [
                {<checkout_files>}
                {<auto>}
                {(DQ ($ Id.VSub_DollarName id))}
                {(DQ )}
                {<false>}
                {(DQ )}
                {($ Id.VSub_DollarName NL)}
                {<CRLF>}
                {<CRLF_mix_LF>}
                {<LF_mix_CR>}
                {<LF_nul>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <checkout_files>
              more_env: []
              words: [
                {<checkout_files>}
                {<auto>}
                {(DQ ($ Id.VSub_DollarName id))}
                {(DQ )}
                {<false>}
                {<native>}
                {($ Id.VSub_DollarName NL)}
                {<CRLF>}
                {<CRLF_mix_LF>}
                {<LF_mix_CR>}
                {<LF_nul>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'ls-files --eol -d -z'>)}
        {
          (SQ <'\n'> 
            <
'\trm crlf_false_attr__CRLF.txt crlf_false_attr__CRLF_mix_LF.txt crlf_false_attr__LF.txt .gitattributes &&\n'
            > <'\tcat >expect <<-\\EOF &&\n'> <'\ti/crlf w/ crlf_false_attr__CRLF.txt\n'> 
            <'\ti/lf w/ .gitattributes\n'> <'\ti/lf w/ crlf_false_attr__LF.txt\n'> <'\ti/mixed w/ crlf_false_attr__CRLF_mix_LF.txt\n'> <'\tEOF\n'> 
            <'\tgit ls-files --eol -d |\n'> <'\tsed -e "s!attr/[^\t]*!!g" -e "s/\t/ /g" -e "s/  */ /g" |\n'> <'\tsort >actual &&\n'> 
            <'\ttest_cmp expect actual\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)