(command.CommandList
  children: [
    (command.Simple blame_tok:<set> more_env:[] words:[{<set>} {<-e>}] redirects:[] do_fork:T)
    (command.Simple blame_tok:<cd> more_env:[] words:[{<cd>} {<'/tmp'>}] redirects:[] do_fork:T)
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <Id.Lit_LBracket '['>
          more_env: []
          words: [{<Id.Lit_LBracket '['>} {<-t>} {<0>} {<Id.Lit_RBracket ']'>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <bsdtar>
          more_env: []
          words: [{<bsdtar>} {<xzf>} {<->}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TGZ='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TGZ='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TGZ='> name:TGZ)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (CommandSub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Simple
                      blame_tok: <find>
                      more_env: []
                      words: [{<find>} {<.>} {<-name>} {(SQ <'*.tgz'>)} {<-or>} {<-name>} {(SQ <'*.tar.gz'>)}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Eof_RParen _>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <Id.Lit_LBracket '['>
          more_env: []
          words: [
            {<Id.Lit_LBracket '['>}
            {<-n>}
            {(DQ ($ Id.VSub_DollarName TGZ))}
            {<Id.Lit_RBracket ']'>}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <bsdtar>
          more_env: []
          words: [{<bsdtar>} {<xzf>} {(DQ ($ Id.VSub_DollarName TGZ))}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'EFI_ISO='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'EFI_ISO='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EFI_ISO='> name:EFI_ISO)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (CommandSub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Simple
                      blame_tok: <find>
                      more_env: []
                      words: [{<find>} {<.>} {<-name>} {(SQ <'*efi.iso'>)}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Eof_RParen _>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ISO='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ISO='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ISO='> name:ISO)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (CommandSub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Simple
                      blame_tok: <find>
                      more_env: []
                      words: [{<find>} {<.>} {<-name>} {(SQ <'*.iso'>)}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Eof_RParen _>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'RAW='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'RAW='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RAW='> name:RAW)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (CommandSub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Simple
                      blame_tok: <find>
                      more_env: []
                      words: [{<find>} {<.>} {<-name>} {(SQ <'*.raw'>)}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Eof_RParen _>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'INITRD='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'INITRD='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INITRD='> name:INITRD)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (CommandSub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Simple
                      blame_tok: <find>
                      more_env: []
                      words: [{<find>} {<.>} {<-name>} {(SQ <'*.img'>)}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Eof_RParen _>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'KERNEL='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'KERNEL='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KERNEL='> name:KERNEL)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (CommandSub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Simple
                      blame_tok: <find>
                      more_env: []
                      words: [{<find>} {<.>} {<-name>} {<vmlinuz64>} {<-or>} {<-name>} {(SQ <'*bzImage'>)}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Eof_RParen _>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'CMDLINE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'CMDLINE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CMDLINE='> name:CMDLINE)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (CommandSub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Simple
                      blame_tok: <find>
                      more_env: []
                      words: [{<find>} {<.>} {<-name>} {(SQ <'*-cmdline'>)}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Eof_RParen _>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<-n>}
                    {(DQ ($ Id.VSub_DollarName EFI_ISO))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ARGS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ARGS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARGS='> name:ARGS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'-pflash /usr/share/ovmf/bios.bin -usbdevice tablet -cdrom '> 
                        ($ Id.VSub_DollarName EFI_ISO) <' -boot d -drive file=systemdisk.img,format=raw'>
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          spids: [178 190]
        )
        (IfArm
          keyword: <Id.KW_Elif elif>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<-n>}
                    {(DQ ($ Id.VSub_DollarName ISO))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ARGS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ARGS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARGS='> name:ARGS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'-cdrom '> ($ Id.VSub_DollarName ISO) 
                        <' -drive file=systemdisk.img,format=raw'>
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          spids: [200 212]
        )
        (IfArm
          keyword: <Id.KW_Elif elif>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<-n>}
                    {(DQ ($ Id.VSub_DollarName RAW))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ARGS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ARGS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARGS='> name:ARGS)
                  op: assign_op.Equal
                  rhs: {(DQ <'-drive file='> ($ Id.VSub_DollarName RAW) <',format=raw'>)}
                )
              ]
              redirects: []
            )
          ]
          spids: [222 234]
        )
        (IfArm
          keyword: <Id.KW_Elif elif>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<-n>}
                    {(DQ ($ Id.VSub_DollarName KERNEL))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ARGS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ARGS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARGS='> name:ARGS)
                  op: assign_op.Equal
                  rhs: {(DQ <'-kernel '> ($ Id.VSub_DollarName KERNEL))}
                )
              ]
              redirects: []
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {<-n>}
                            {(DQ ($ Id.VSub_DollarName INITRD))}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'ARGS='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'ARGS='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARGS='> name:ARGS)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName ARGS) <' -initrd '> 
                                ($ Id.VSub_DollarName INITRD)
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [270 283]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ARGS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ARGS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARGS='> name:ARGS)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName ARGS) <' -drive file=systemdisk.img,format=raw'>)}
                )
              ]
              redirects: []
            )
          ]
          spids: [248 260]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {(DQ <'no recognised boot media'>)}]
          redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
          do_fork: T
        )
        (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Pipeline
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ ($ Id.VSub_DollarName ARGS))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <grep>
              more_env: []
              words: [{<grep>} {<-q>} {<systemdisk>}]
              redirects: []
              do_fork: T
            )
          ]
          ops: [<Id.Op_Pipe _>]
        )
        (command.Simple
          blame_tok: <qemu-img>
          more_env: []
          words: [{<qemu-img>} {<create>} {<-f>} {<raw>} {<systemdisk.img>} {<256M>}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<-n>}
                    {(DQ (${ Id.VSub_Name CMDLINE))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'APPEND='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'APPEND='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'APPEND='> name:APPEND)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <cat>
                              more_env: []
                              words: [{<cat>} {($ Id.VSub_DollarName CMDLINE)}]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          spids: [352 366]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.ShAssignment
          left: <Id.Lit_VarLike 'APPEND='>
          pairs: [
            (AssignPair
              left: <Id.Lit_VarLike 'APPEND='>
              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'APPEND='> name:APPEND)
              op: assign_op.Equal
              rhs: {(DQ ($ Id.VSub_Star '*'))}
            )
          ]
          redirects: []
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<-z>}
                    {(DQ (${ Id.VSub_Name APPEND))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'APPEND='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'APPEND='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'APPEND='> name:APPEND)
                  op: assign_op.Equal
                  rhs: {(DQ <'console=ttyS0'>)}
                )
              ]
              redirects: []
            )
          ]
          spids: [388 402]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.AndOr
                  children: [
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {<-z>}
                        {(DQ ($ Id.VSub_DollarName EFI_ISO))}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {<-z>}
                        {(DQ ($ Id.VSub_DollarName ISO))}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_DAmp _>]
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ARGS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ARGS='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARGS='> name:ARGS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'-append '> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\"'>
                          ch: '"'
                        ) (${ Id.VSub_Name APPEND) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> 
                        (${ Id.VSub_Name ARGS)
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          spids: [413 437]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <eval>
      more_env: []
      words: [
        {<eval>}
        {<qemu-system-x86_64>}
        {<-machine>}
        {<q35> <Id.Lit_Comma ','> <Id.Lit_VarLike 'accel='> <kvm> <Id.Lit_Colon ':'> <tcg>}
        {<-device>}
        {<virtio-rng-pci>}
        {<-nographic>}
        {<-vnc>}
        {<none>}
        {<-m>}
        {<1024>}
        {($ Id.VSub_DollarName ARGS)}
      ]
      redirects: []
      do_fork: T
    )
  ]
)