<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def abort_keepalive_pings(self) -> None: """ Raise ConnectionClosed in pending keepalive pings. They'll never receive a pong once the connection is closed. """

        assert self.state is State.CLOSED
        exc = ConnectionClosed(self.close_code, self.close_reason)
        exc.__cause__ = self.transfer_data_exc  # emulate raise ... from ...

        for ping in self.pings.values():
            ping.set_exception(exc)

        if self.pings:
            pings_hex = ", ".join(
                binascii.hexlify(ping_id).decode() or "[empty]"
                for ping_id in self.pings
            )
            plural = "s" if len(self.pings) > 1 else ""
            logger.debug(
                "%s - aborted pending ping%s: %s", self.side, plural, pings_hex
            )