<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def read(self, amt=None):
 """Read at most amt bytes from the stream. If the amt argument is omitted, read all data. """

        # botocore to aiohttp mapping
        chunk = await self.__wrapped__.read(amt if amt is not None else -1)
        self._self_amount_read += len(chunk)
        if amt is None or (not chunk and amt > 0):
            # If the server sends empty contents or
            # we ask to read all of the contents, then we know
            # we need to verify the content length.
            self._verify_content_length()
        return chunk