code: def decode_timestamp(timestamp: str) -> bytes:
      
      encoded = str_to_bytes(timestamp, 10)
  
      decoding = DECODING
  
      return bytes((
          ((decoding[encoded[0]] << 5) | decoding[encoded[1]]) & 0xFF,
          ((decoding[encoded[2]] << 3) | (decoding[encoded[3]] >> 2)) & 0xFF,
          ((decoding[encoded[3]] << 6) | (decoding[encoded[4]] << 1) | (decoding[encoded[5]] >> 4)) & 0xFF,
          ((decoding[encoded[5]] << 4) | (decoding[encoded[6]] >> 1)) & 0xFF,
          ((decoding[encoded[6]] << 7) | (decoding[encoded[7]] << 2) | (decoding[encoded[8]] >> 3)) & 0xFF,
          ((decoding[encoded[8]] << 5) | (decoding[encoded[9]])) & 0xFF
      ))
docs: Decode the given Base32 encoded :class:`~str` instance to :class:`~bytes`.
  
      The given :class:`~str` are expected to represent the first 10 characters of a ULID, which
      are the timestamp in milliseconds.
  
      .. note:: This uses an optimized strategy from the `NUlid` project for decoding ULID
          strings specifically and is not meant for arbitrary decoding.
  
      :param timestamp: String to decode
      :type timestamp: :class:`~str`
      :return: Value decoded from Base32 string
      :rtype: :class:`~bytes`
      :raises ValueError: when value is not 10 characters
      :raises ValueError: when value cannot be encoded in ASCII