(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]"))})
  ]
)