<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 remove(request: web.Request) -> web.Response: """ Remove a public key from authorized_keys DELETE /server/ssh_keys/:key_md5_hexdigest -> 200 OK if the key was found -> 404 Not Found otherwise """

    requested_hash = request.match_info['key_md5']
    new_keys: List[str] = []
    found = False
    for keyhash, key in get_keys():
        if keyhash == requested_hash:
            found = True
        else:
            new_keys.append(key)

    if not found:
        return web.json_response(
            data={'error': 'invalid-key-hash',
                  'message': f'No such key md5 {requested_hash}'},
            status=404)

    with authorized_keys('w') as ak:
        ak.write('\n'.join(new_keys) + '\n')

    return web.json_response(
        data={
            'message': f'Key {requested_hash} deleted. '
            'Restart robot to take effect',
            'restart_url': '/server/restart'},
        status=200)