(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:tid) op:Equal rhs:{(DQ ('config include'))} spids:[7])]
      spids: [7]
    )
    (C {(umask)} {(022)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_config.i)}
          spids: [23]
        )
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ('Match host a\n') ('\tHostname aa\n') ('\n') ('Match host b\n') ('\tHostname bb\n') 
                ('\tInclude ') ($ VSub_Name '$OBJ') ('/ssh_config.i.*\n') ('\n') ('Match host c\n') ('\tInclude ') ($ VSub_Name '$OBJ') 
                ('/ssh_config.i.*\n') ('\tHostname cc\n') ('\n') ('Match host m\n') ('\tInclude ') ($ VSub_Name '$OBJ') ('/ssh_config.i.*\n') 
                ('\n') ('Host d\n') ('\tHostname dd\n') ('\n') ('Host e\n') ('\tHostname ee\n') ('\tInclude ') 
                ($ VSub_Name '$OBJ') ('/ssh_config.i.*\n') ('\n') ('Host f\n') ('\tInclude ') ($ VSub_Name '$OBJ') ('/ssh_config.i.*\n') 
                ('\tHostname ff\n') ('\n') ('Host n\n') ('\tInclude ') ($ VSub_Name '$OBJ') ('/ssh_config.i.*\n')
              )
            }
          do_expansion: True
          here_end: _EOF
          was_filled: True
          spids: [28]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_config.i.0)}
          spids: [75]
        )
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('Match host xxxxxx\n'))}
          do_expansion: True
          here_end: _EOF
          was_filled: True
          spids: [80]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_config.i.1)}
          spids: [89]
        )
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ('Match host a\n') ('\tHostname aaa\n') ('\n') ('Match host b\n') ('\tHostname bbb\n') 
                ('\n') ('Match host c\n') ('\tHostname ccc\n') ('\n') ('Host d\n') ('\tHostname ddd\n') ('\n') ('Host e\n') 
                ('\tHostname eee\n') ('\n') ('Host f\n') ('\tHostname fff\n')
              )
            }
          do_expansion: True
          here_end: _EOF
          was_filled: True
          spids: [94]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_config.i.2)}
          spids: [119]
        )
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ('Match host a\n') ('\tHostname aaaa\n') ('\n') ('Match host b\n') 
                ('\tHostname bbbb\n') ('\n') ('Match host c\n') ('\tHostname cccc\n') ('\n') ('Host d\n') ('\tHostname dddd\n') ('\n') 
                ('Host e\n') ('\tHostname eeee\n') ('\n') ('Host f\n') ('\tHostname ffff\n') ('\n') ('Match all\n') 
                ('\tHostname xxxx\n')
              )
            }
          do_expansion: True
          here_end: _EOF
          was_filled: True
          spids: [124]
        )
      ]
    )
    (FuncDef
      name: trial
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_host)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [157]
                )
              ]
              spids: [157]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_exp)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [163]
                )
              ]
              spids: [163]
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [
                    {(${ VSub_Name REAL_SSH)}
                    {(-F)}
                    {($ VSub_Name '$OBJ') (/ssh_config.i)}
                    {(-G)}
                    {(DQ ($ VSub_Name '$_host'))}
                  ]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {($ VSub_Name '$OBJ') (/ssh_config.out)}
                      spids: [184]
                    )
                  ]
                )
                (C {(fatal)} {(DQ ('ssh config parse failed'))})
              ]
              op_id: Op_DPipe
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_got)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(grep)} {(-i)} {(SQ <'^hostname '>)} 
                                    {($ VSub_Name '$OBJ') (/ssh_config.out)}
                                  )
                                  (C {(awk)} {(SQ <'{print $2}'>)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [200 219]
                      )
                    }
                  spids: [199]
                )
              ]
              spids: [199]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(DQ (x) ($ VSub_Name '$_exp'))} {(KW_Bang '!') (Lit_Other '=')} 
                          {(DQ (x) ($ VSub_Name '$_got'))}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(fail)} 
                      {
                        (DQ ('host ') ($ VSub_Name '$_host') (' include fail: expected ') 
                          ($ VSub_Name '$_exp') (' got ') ($ VSub_Name '$_got')
                        )
                      }
                    )
                  ]
                  spids: [-1 241]
                )
              ]
              spids: [-1 256]
            )
          ]
          spids: [154]
        )
      spids: [150 153]
    )
    (C {(trial)} {(a)} {(aa)})
    (C {(trial)} {(b)} {(bb)})
    (C {(trial)} {(c)} {(ccc)})
    (C {(trial)} {(d)} {(dd)})
    (C {(trial)} {(e)} {(ee)})
    (C {(trial)} {(f)} {(fff)})
    (C {(trial)} {(m)} {(xxxx)})
    (C {(trial)} {(n)} {(xxxx)})
    (C {(trial)} {(x)} {(x)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_config.i.3)}
          spids: [322]
        )
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('Hostname xxxx\n') ('\tJunk\n'))}
          do_expansion: True
          here_end: _EOF
          was_filled: True
          spids: [327]
        )
      ]
    )
    (AndOr
      children: [
        (SimpleCommand
          words: [{(${ VSub_Name REAL_SSH)} {(-F)} {($ VSub_Name '$OBJ') (/ssh_config.i)} {(-G)} {(a)}]
          redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[348])]
        )
        (C {(fail)} {(DQ ('ssh include allowed invalid config'))})
      ]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (SimpleCommand
          words: [{(${ VSub_Name REAL_SSH)} {(-F)} {($ VSub_Name '$OBJ') (/ssh_config.i)} {(-G)} {(x)}]
          redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[375])]
        )
        (C {(fail)} {(DQ ('ssh include allowed invalid config'))})
      ]
      op_id: Op_DAmp
    )
    (C {(rm)} {(-f)} {($ VSub_Name '$OBJ') (/ssh_config.i.) (Lit_Other '*')})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_config.i)}
          spids: [403]
        )
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('Include ') ($ VSub_Name '$OBJ') ('/ssh_config.i.*\n') ('Hostname aa\n'))}
          do_expansion: True
          here_end: _EOF
          was_filled: True
          spids: [408]
        )
      ]
    )
    (C {(trial)} {(a)} {(aa)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_config.i.x)}
          spids: [430]
        )
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('Match host x\n'))}
          do_expansion: True
          here_end: _EOF
          was_filled: True
          spids: [435]
        )
      ]
    )
    (C {(trial)} {(a)} {(aa)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_config.i.x)}
          spids: [451]
        )
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('Host x\n'))}
          do_expansion: True
          here_end: _EOF
          was_filled: True
          spids: [456]
        )
      ]
    )
    (C {(trial)} {(a)} {(aa)})
    (C {(rm)} {(-f)} {($ VSub_Name '$OBJ') (/ssh_config.i)} 
      {($ VSub_Name '$OBJ') (/ssh_config.i.) (Lit_Other '*')} {($ VSub_Name '$OBJ') (/ssh_config.out)}
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:tid) op:Equal rhs:{(DQ ('config include'))} spids:[494])]
      spids: [494]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_config.i)}
          spids: [502]
        )
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ('Match host a\n') ('\tHostname aa\n') ('\n') ('Match host b\n') ('\tHostname bb\n') 
                ('\tInclude ') ($ VSub_Name '$OBJ') ('/ssh_config.i.*\n') ('\n') ('Match host c\n') ('\tInclude ') ($ VSub_Name '$OBJ') 
                ('/ssh_config.i.*\n') ('\tHostname cc\n') ('\n') ('Match host m\n') ('\tInclude ') ($ VSub_Name '$OBJ') ('/ssh_config.i.*\n') 
                ('\n') ('Host d\n') ('\tHostname dd\n') ('\n') ('Host e\n') ('\tHostname ee\n') ('\tInclude ') 
                ($ VSub_Name '$OBJ') ('/ssh_config.i.*\n') ('\n') ('Host f\n') ('\tInclude ') ($ VSub_Name '$OBJ') ('/ssh_config.i.*\n') 
                ('\tHostname ff\n') ('\n') ('Host n\n') ('\tInclude ') ($ VSub_Name '$OBJ') ('/ssh_config.i.*\n')
              )
            }
          do_expansion: True
          here_end: _EOF
          was_filled: True
          spids: [507]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_config.i.0)}
          spids: [554]
        )
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('Match host xxxxxx\n'))}
          do_expansion: True
          here_end: _EOF
          was_filled: True
          spids: [559]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_config.i.1)}
          spids: [568]
        )
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ('Match host a\n') ('\tHostname aaa\n') ('\n') ('Match host b\n') ('\tHostname bbb\n') 
                ('\n') ('Match host c\n') ('\tHostname ccc\n') ('\n') ('Host d\n') ('\tHostname ddd\n') ('\n') ('Host e\n') 
                ('\tHostname eee\n') ('\n') ('Host f\n') ('\tHostname fff\n')
              )
            }
          do_expansion: True
          here_end: _EOF
          was_filled: True
          spids: [573]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_config.i.2)}
          spids: [598]
        )
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ('Match host a\n') ('\tHostname aaaa\n') ('\n') ('Match host b\n') 
                ('\tHostname bbbb\n') ('\n') ('Match host c\n') ('\tHostname cccc\n') ('\n') ('Host d\n') ('\tHostname dddd\n') ('\n') 
                ('Host e\n') ('\tHostname eeee\n') ('\n') ('Host f\n') ('\tHostname ffff\n') ('\n') ('Match all\n') 
                ('\tHostname xxxx\n')
              )
            }
          do_expansion: True
          here_end: _EOF
          was_filled: True
          spids: [603]
        )
      ]
    )
    (FuncDef
      name: trial
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_host)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$1'))}
                  spids: [636]
                )
              ]
              spids: [636]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_exp)
                  op: Equal
                  rhs: {(DQ ($ VSub_Number '$2'))}
                  spids: [642]
                )
              ]
              spids: [642]
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [
                    {(${ VSub_Name REAL_SSH)}
                    {(-F)}
                    {($ VSub_Name '$OBJ') (/ssh_config.i)}
                    {(-G)}
                    {(DQ ($ VSub_Name '$_host'))}
                  ]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {($ VSub_Name '$OBJ') (/ssh_config.out)}
                      spids: [663]
                    )
                  ]
                )
                (C {(fatal)} {(DQ ('ssh config parse failed'))})
              ]
              op_id: Op_DPipe
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:_got)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(grep)} {(-i)} {(SQ <'^hostname '>)} 
                                    {($ VSub_Name '$OBJ') (/ssh_config.out)}
                                  )
                                  (C {(awk)} {(SQ <'{print $2}'>)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [679 698]
                      )
                    }
                  spids: [678]
                )
              ]
              spids: [678]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(test)} {(DQ (x) ($ VSub_Name '$_exp'))} {(KW_Bang '!') (Lit_Other '=')} 
                          {(DQ (x) ($ VSub_Name '$_got'))}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(fail)} 
                      {
                        (DQ ('host ') ($ VSub_Name '$_host') (' include fail: expected ') 
                          ($ VSub_Name '$_exp') (' got ') ($ VSub_Name '$_got')
                        )
                      }
                    )
                  ]
                  spids: [-1 720]
                )
              ]
              spids: [-1 735]
            )
          ]
          spids: [633]
        )
      spids: [629 632]
    )
    (C {(trial)} {(a)} {(aa)})
    (C {(trial)} {(b)} {(bb)})
    (C {(trial)} {(c)} {(ccc)})
    (C {(trial)} {(d)} {(dd)})
    (C {(trial)} {(e)} {(ee)})
    (C {(trial)} {(f)} {(fff)})
    (C {(trial)} {(m)} {(xxxx)})
    (C {(trial)} {(n)} {(xxxx)})
    (C {(trial)} {(x)} {(x)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_config.i.3)}
          spids: [801]
        )
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('Hostname xxxx\n') ('\tJunk\n'))}
          do_expansion: True
          here_end: _EOF
          was_filled: True
          spids: [806]
        )
      ]
    )
    (AndOr
      children: [
        (SimpleCommand
          words: [{(${ VSub_Name REAL_SSH)} {(-F)} {($ VSub_Name '$OBJ') (/ssh_config.i)} {(-G)} {(a)}]
          redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[827])]
        )
        (C {(fail)} {(DQ ('ssh include allowed invalid config'))})
      ]
      op_id: Op_DAmp
    )
    (AndOr
      children: [
        (SimpleCommand
          words: [{(${ VSub_Name REAL_SSH)} {(-F)} {($ VSub_Name '$OBJ') (/ssh_config.i)} {(-G)} {(x)}]
          redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[854])]
        )
        (C {(fail)} {(DQ ('ssh include allowed invalid config'))})
      ]
      op_id: Op_DAmp
    )
    (C {(rm)} {(-f)} {($ VSub_Name '$OBJ') (/ssh_config.i.) (Lit_Other '*')})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_config.i)}
          spids: [882]
        )
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('Include ') ($ VSub_Name '$OBJ') ('/ssh_config.i.*\n') ('Hostname aa\n'))}
          do_expansion: True
          here_end: _EOF
          was_filled: True
          spids: [887]
        )
      ]
    )
    (C {(trial)} {(a)} {(aa)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_config.i.x)}
          spids: [909]
        )
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('Match host x\n'))}
          do_expansion: True
          here_end: _EOF
          was_filled: True
          spids: [914]
        )
      ]
    )
    (C {(trial)} {(a)} {(aa)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_config.i.x)}
          spids: [930]
        )
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('Host x\n'))}
          do_expansion: True
          here_end: _EOF
          was_filled: True
          spids: [935]
        )
      ]
    )
    (C {(trial)} {(a)} {(aa)})
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name '$OBJ') (/ssh_config.i)}
          spids: [954]
        )
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('Include ') ($ VSub_Name '$OBJ') ('/ssh_config.i\n'))}
          do_expansion: True
          here_end: _EOF
          was_filled: True
          spids: [959]
        )
      ]
    )
    (AndOr
      children: [
        (SimpleCommand
          words: [{(${ VSub_Name REAL_SSH)} {(-F)} {($ VSub_Name '$OBJ') (/ssh_config.i)} {(-G)} {(a)}]
          redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[981])]
        )
        (C {(fail)} {(DQ ('ssh include allowed infinite recursion?'))})
      ]
      op_id: Op_DAmp
    )
    (C {(rm)} {(-f)} {($ VSub_Name '$OBJ') (/ssh_config.i)} 
      {($ VSub_Name '$OBJ') (/ssh_config.i.) (Lit_Other '*')} {($ VSub_Name '$OBJ') (/ssh_config.out)}
    )
  ]
)