docs: def show_item_v3(h):
      """Show any RAR3 record.
      """
      st = rar3_type(h.type)
      xprint("%s: hdrlen=%d datlen=%d", st, h.header_size, h.add_size)
      if h.type in (rf.RAR_BLOCK_FILE, rf.RAR_BLOCK_SUB):
          if h.host_os == rf.RAR_OS_UNIX:
              s_mode = "0%o" % h.mode
          else:
              s_mode = "0x%x" % h.mode
          xprint("  flags=0x%04x:%s", h.flags, get_file_flags(h.flags))
          if h.host_os >= 0 and h.host_os < len(os_list):
              s_os = os_list[h.host_os]
          else:
              s_os = "?"
          xprint("  os=%d:%s ver=%d mode=%s meth=%c cmp=%d dec=%d vol=%d",
                 h.host_os, s_os,
                 h.extract_version, s_mode, h.compress_type,
                 h.compress_size, h.file_size, h.volume)
          ucrc = (h.CRC + (1 << 32)) & ((1 << 32) - 1)
          xprint("  crc=0x%08x (%d) date_time=%s", ucrc, h.CRC, fmt_time(h.date_time))
          xprint("  name=%s", h.filename)
          if h.mtime:
              xprint("  mtime=%s", fmt_time(h.mtime))
          if h.ctime:
              xprint("  ctime=%s", fmt_time(h.ctime))
          if h.atime:
              xprint("  atime=%s", fmt_time(h.atime))
          if h.arctime:
              xprint("  arctime=%s", fmt_time(h.arctime))
      elif h.type == rf.RAR_BLOCK_MAIN:
          xprint("  flags=0x%04x:%s", h.flags, render_flags(h.flags, main_bits))
      elif h.type == rf.RAR_BLOCK_ENDARC:
          xprint("  flags=0x%04x:%s", h.flags, render_flags(h.flags, endarc_bits))
      elif h.type == rf.RAR_BLOCK_MARK:
          xprint("  flags=0x%04x:", h.flags)
      else:
          xprint("  flags=0x%04x:%s", h.flags, render_flags(h.flags, generic_bits))
  
      if h.comment is not None:
          cm = repr(h.comment)
          if cm[0] == 'u':
              cm = cm[1:]
          xprint("  comment=%s", cm)