(command.CommandList
  children: [
    (C {<set>} {<-e>})
    (command.ShFunction
      name: die
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              words: [{<echo>} {(DQ ($ Id.VSub_At '@'))}]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'img='> name:img)
          op: assign_op.Equal
          rhs: {<'/usr/share/clear-containers/clear-containers.img'>}
          spids: [33]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'img='> name:img)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<readlink>} {<-f>} {(DQ ($ Id.VSub_DollarName img))})
                right: <Id.Eof_RParen _>
              )
            }
          spids: [36]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'img_size='> name:img_size)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<du>} {<-b>} {(DQ (${ Id.VSub_Name img))})
                      (C {<awk>} {(SQ <'{print $1}'>)})
                    ]
                    negated: F
                    stderr_indices: []
                  )
                right: <Id.Eof_RParen _>
              )
            }
          spids: [47]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'kernel='> name:kernel)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<pwd>})
                  right: <Id.Eof_RParen _>
                ) <'/clear-containers-vmlinux'>
              )
            }
          spids: [69]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'kernel_cmdline_file='>
              name: kernel_cmdline_file
            )
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<pwd>})
                  right: <Id.Eof_RParen _>
                ) <'/clear-containers-cmdline'>
              )
            }
          spids: [77]
        )
      ]
      redirects: []
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ (${ Id.VSub_Name img))} {<Id.Lit_RBracket ']'>})
        (C {<die>} {(DQ <'Image s required'>)})
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ (${ Id.VSub_Name kernel))} {<Id.Lit_RBracket ']'>})
        (C {<die>} {(DQ <'Kernel is required'>)})
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-f>} {(${ Id.VSub_Name kernel_cmdline_file)} {<Id.Lit_RBracket ']'>})
        (C {<die>} {(DQ <'Kernel cmdline file is required'>)})
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'kernel_cmdline='> name:kernel_cmdline)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<cat>} {(DQ ($ Id.VSub_DollarName kernel_cmdline_file))})
                right: <Id.Eof_RParen _>
              )
            }
          spids: [146]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: {(DQ <'/usr/bin/qemu-lite-system-x86_64'>)}
          spids: [156]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName cmd) <' -machine pc-lite,accel=kvm,kernel_irqchip,nvdimm'>)}
          spids: [161]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName cmd) <' -device nvdimm,memdev=mem0,id=nv0'>)}
          spids: [167]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName cmd) <' -object memory-backend-file,id=mem0,mem-path='> 
                (${ Id.VSub_Name img) <',size='> (${ Id.VSub_Name img_size)
              )
            }
          spids: [176]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName cmd) <' -m 2G,slots=2,maxmem=3G'>)}
          spids: [192]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName cmd) <' -kernel '> (${ Id.VSub_Name kernel))}
          spids: [201]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: 
            {(DQ ($ Id.VSub_DollarName cmd) <' -append \''> (${ Id.VSub_Name kernel_cmdline) <'\''>)}
          spids: [210]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName cmd) <' -smp 2,sockets=1,cores=2,threads=1'>)}
          spids: [223]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName cmd) <' -cpu host'>)}
          spids: [229]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName cmd) <' -rtc base=utc,driftfix=slew'>)}
          spids: [238]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName cmd) <' -no-user-config'>)}
          spids: [244]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName cmd) <' -nodefaults'>)}
          spids: [250]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName cmd) <' -global'>)}
          spids: [256]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName cmd) <' kvm-pit.lost_tick_policy=discard'>)}
          spids: [262]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName cmd) <' -device virtio-serial-pci,id=virtio-serial0'>)}
          spids: [271]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName cmd) <' -chardev stdio,id=charconsole0,signal=off'>)}
          spids: [277]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: 
            {
              (DQ ($ Id.VSub_DollarName cmd) <' -device virtconsole,chardev=charconsole0,id=console0'>)
            }
          spids: [283]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName cmd) <' -nographic'>)}
          spids: [289]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName cmd) <' -vga none'>)}
          spids: [295]
        )
      ]
      redirects: []
    )
    (C {<eval>} {(DQ ($ Id.VSub_DollarName cmd))})
  ]
)