(CommandList
  children: [
    (FuncDef
      name: die
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('ERROR: ') ($ VSub_Star '$*'))}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/stderr)} spids:[18])]
            )
            (SimpleCommand
              words: [{(patch)} {(-p0)} {(make.conf.example)}]
              redirects: [
                (Redir
                  op_id: Redir_Less
                  fd: 16777215
                  arg_word: {(make.conf.example.diff)}
                  spids: [29]
                )
              ]
            )
            (C {(exit)} {(1)})
          ]
          spids: [8]
        )
      spids: [4 7]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (LogicalOr
                      left: (LogicalNot child:(BoolUnary op_id:BoolUnary_f child:{(make.conf.example)}))
                      right: 
                        (LogicalOr
                          left: 
                            (LogicalNot
                              child: (BoolUnary op_id:BoolUnary_f child:{(make.conf.example.x86.diff)})
                            )
                          right: (LogicalNot child:(BoolUnary op_id:BoolUnary_d child:{(../.git)}))
                        )
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(echo)} {(DQ ('ERROR: current directory is invalid'))}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/stderr)} spids:[79])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [16777215 70]
        )
      ]
      spids: [16777215 88]
    )
    (SimpleCommand
      words: [
        {(git)}
        {(diff)}
        {(--no-prefix)}
        {(--relative) (Lit_Other '=') 
          (DQ 
            (CommandSubPart
              command_list: 
                (CommandList
                  children: [
                    (C {(basename)} 
                      {
                        (DQ 
                          (CommandSubPart
                            command_list: (CommandList children:[(C {(pwd)})])
                            left_token: <Left_CommandSub '$('>
                            spids: [104 106]
                          )
                        )
                      }
                    )
                  ]
                )
              left_token: <Left_CommandSub '$('>
              spids: [100 108]
            )
          )
        }
        {(make.conf.example)}
      ]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(make.conf.example.diff)} spids:[113])
      ]
    )
    (C {(git)} {(checkout)} {(--)} {(make.conf.example)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:archs) op:Equal rhs:{(ArrayLiteralPart)} spids:[126])]
      spids: [126]
    )
    (ForEach
      iter_name: x
      iter_words: [{(make.conf.example.) (Lit_Other '*') (.diff)}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:archs)
                  op: PlusEqual
                  rhs: 
                    {
                      (ArrayLiteralPart
                        words: [
                          {
                            (DQ 
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(basename)} 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name x>
                                            suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 18)}))
                                            spids: [150 154]
                                          )
                                        } {(.diff)}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [147 157]
                              )
                            )
                          }
                        ]
                      )
                    }
                  spids: [144]
                )
              ]
              spids: [144]
            )
          ]
          spids: [141 161]
        )
      spids: [135 139]
    )
    (ForEach
      iter_name: arch
      iter_words: [
        {
          (DQ 
            (BracedVarSub
              token: <VSub_Name archs>
              bracket_op: (WholeArray op_id:Lit_At)
              spids: [172 177]
            )
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(echo)} {(DQ ('* Patching ') (${ VSub_Name arch))})
            (AndOr
              children: [
                (C {(cp)} {(make.conf.example)} {(make.conf.example.) (${ VSub_Name arch)})
                (C {(die)} {(DQ ('copy failed'))})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [{(patch)} {(-p0)} {(make.conf.example.) (${ VSub_Name arch)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: 16777215
                      arg_word: {(make.conf.example.) (${ VSub_Name arch) (.diff)}
                      spids: [221]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [229]
                    )
                  ]
                )
                (C {(die)} {(DQ ('arch-patch failed'))})
              ]
              op_id: Op_DPipe
            )
            (AndOr
              children: [
                (SimpleCommand
                  words: [{(patch)} {(-p0)} {(make.conf.example.) (${ VSub_Name arch)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Less
                      fd: 16777215
                      arg_word: {(make.conf.example.diff)}
                      spids: [251]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(/dev/null)}
                      spids: [255]
                    )
                  ]
                )
                (C {(die)} {(DQ ('patch failed'))})
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [181 267]
        )
      spids: [170 179]
    )
    (C {(echo)} {(DQ ('* Re-patching make.conf.example'))})
    (AndOr
      children: [
        (SimpleCommand
          words: [{(patch)} {(-p0)} {(make.conf.example)}]
          redirects: [
            (Redir
              op_id: Redir_Less
              fd: 16777215
              arg_word: {(make.conf.example.diff)}
              spids: [282]
            )
            (Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[286])
          ]
        )
        (C {(die)} {(DQ ('repatch failed'))})
      ]
      op_id: Op_DPipe
    )
    (ForEach
      iter_name: arch
      iter_words: [
        {
          (DQ 
            (BracedVarSub
              token: <VSub_Name archs>
              bracket_op: (WholeArray op_id:Lit_At)
              spids: [306 311]
            )
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(echo)} {(DQ ('* Creating diff for ') (${ VSub_Name arch))})
            (SimpleCommand
              words: [{(diff)} {(-u)} {(make.conf.example)} {(make.conf.example.) (${ VSub_Name arch)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: 16777215
                  arg_word: {(make.conf.example.) (${ VSub_Name arch) (.diff)}
                  spids: [339]
                )
              ]
            )
            (AndOr
              children: [
                (DBracket
                  expr: 
                    (BoolUnary
                      op_id: BoolUnary_z
                      child: {(${ VSub_Name KEEP_ARCH_MAKE_CONF_EXAMPLE)}
                    )
                )
                (C {(rm)} {(-f)} {(make.conf.example.) (${ VSub_Name arch)} 
                  {(make.conf.example.) (${ VSub_Name arch) (.orig)}
                )
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [315 375]
        )
      spids: [304 313]
    )
    (C {(rm)} {(make.conf.example.diff)})
    (C {(echo)} {(DQ (Done))})
  ]
)