(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OUT_FN)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: (C {<basename>} {($ Id.VSub_Number '$1')} {<.img>})
              ) <.zip>
            }
          spids: [4]
        )
      ]
    )
    (C {<zip>} {<-9>} {(${ Id.VSub_Name OUT_FN)} {($ Id.VSub_Number '$1')})
    (C {<echo>} {(${ Id.VSub_Name OUT_FN)})
    (C {<echo>} 
      {
        (DQ <'SHA1: '> 
          (command_sub
            left_token: <Id.Left_Backtick '`'>
            child: 
              (command.Pipeline
                children: [
                  (C {<sha1sum>} {(${ Id.VSub_Name OUT_FN)})
                  (C {<cut>} {<-f1>} {<-d> (SQ <' '>)})
                ]
                negated: F
              )
          )
        )
      }
    )
    (C {<echo>} 
      {
        (DQ <'MD5: '> 
          (command_sub
            left_token: <Id.Left_Backtick '`'>
            child: 
              (command.Pipeline
                children: [
                  (C {<md5sum>} {(${ Id.VSub_Name OUT_FN)})
                  (C {<cut>} {<-f1>} {<-d> (SQ <' '>)})
                ]
                negated: F
              )
          )
        )
      }
    )
    (C {<echo>} 
      {
        (DQ <'SHA256: '> 
          (command_sub
            left_token: <Id.Left_Backtick '`'>
            child: 
              (command.Pipeline
                children: [
                  (C {<sha256sum>} {(${ Id.VSub_Name OUT_FN)})
                  (C {<cut>} {<-f1>} {<-d> (SQ <' '>)})
                ]
                negated: F
              )
          )
        )
      }
    )
  ]
)