(CommandList
  children: [
    (C {(set)} {(-ev)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DTC_UPSTREAM_PATH)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(pwd)})])
                left_token: <Left_Backtick '`'>
                spids: [85 87]
              ) (/../dtc)
            }
          spids: [84]
        )
      ]
      spids: [84]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DTC_LINUX_PATH)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(pwd)})])
                left_token: <Left_Backtick '`'>
                spids: [91 93]
              ) (/scripts/dtc)
            }
          spids: [90]
        )
      ]
      spids: [90]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DTC_SOURCE)
          op: Equal
          rhs: 
            {
              (DQ ('checks.c data.c dtc.c dtc.h flattree.c fstree.c livetree.c srcpos.c ') 
                ('\t\tsrcpos.h treesource.c util.c util.h version_gen.h Makefile.dtc ') ('\t\tdtc-lexer.l dtc-parser.y')
              )
            }
          spids: [97]
        )
      ]
      spids: [97]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DTC_GENERATED)
          op: Equal
          rhs: {(DQ ('dtc-lexer.lex.c dtc-parser.tab.c dtc-parser.tab.h'))}
          spids: [106]
        )
      ]
      spids: [106]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:LIBFDT_SOURCE)
          op: Equal
          rhs: 
            {
              (DQ 
                (
'Makefile.libfdt fdt.c fdt.h fdt_empty_tree.c fdt_ro.c fdt_rw.c fdt_strerror.c fdt_sw.c fdt_wip.c libfdt.h libfdt_env.h libfdt_internal.h'
                )
              )
            }
          spids: [111]
        )
      ]
      spids: [111]
    )
    (C {(cd)} {($ VSub_Name '$DTC_UPSTREAM_PATH')})
    (C {(make)} {(clean)})
    (C {(make)} {(check)})
    (C {(cd)} {($ VSub_Name '$DTC_LINUX_PATH')})
    (ForEach
      iter_name: f
      iter_words: [{($ VSub_Name '$DTC_SOURCE')}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(cp)} {(${ VSub_Name DTC_UPSTREAM_PATH) (/) (${ VSub_Name f)} {(${ VSub_Name f)})
            (C {(git)} {(add)} {(${ VSub_Name f)})
          ]
          spids: [149 175]
        )
      spids: [145 147]
    )
    (ForEach
      iter_name: f
      iter_words: [{($ VSub_Name '$DTC_GENERATED')}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(cp)} {(${ VSub_Name DTC_UPSTREAM_PATH) (/) ($ VSub_Name '$f')} 
              {(${ VSub_Name f) (_shipped)}
            )
            (C {(git)} {(add)} {(${ VSub_Name f) (_shipped)})
          ]
          spids: [186 212]
        )
      spids: [182 184]
    )
    (ForEach
      iter_name: f
      iter_words: [{($ VSub_Name '$LIBFDT_SOURCE')}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(cp)} {(${ VSub_Name DTC_UPSTREAM_PATH) (/libfdt/) (${ VSub_Name f)} 
              {(libfdt/) (${ VSub_Name f)}
            )
            (C {(git)} {(add)} {(libfdt/) (${ VSub_Name f)})
          ]
          spids: [223 251]
        )
      spids: [219 221]
    )
    (C {(sed)} {(-i)} {(--)} {(SQ <'s/#include <libfdt_env.h>/#include "libfdt_env.h"/g'>)} 
      {(./libfdt/libfdt.h)}
    )
    (C {(sed)} {(-i)} {(--)} {(SQ <'s/#include <fdt.h>/#include "fdt.h"/g'>)} {(./libfdt/libfdt.h)})
    (C {(git)} {(add)} {(./libfdt/libfdt.h)})
    (C {(git)} {(commit)} {(-e)} {(-v)} {(-m)} {(DQ ('scripts/dtc: Update to upstream version [CHANGEME]'))})
  ]
)