docs: async def _connect(self, remote_addresses):
          '''Connect to the proxy and perform a handshake requesting a connection to each address in
          addresses.
  
          Return an (open_socket, remote_address) pair on success.
          '''
          assert remote_addresses
  
          exceptions = []
          for remote_address in remote_addresses:
              sock = await self._connect_one(remote_address)
              if isinstance(sock, socket.socket):
                  return sock, remote_address
              exceptions.append(sock)
  
          strings = set(f'{exc!r}' for exc in exceptions)
          raise (exceptions[0] if len(strings) == 1 else
                 OSError(f'multiple exceptions: {", ".join(strings)}'))