<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def download_files_maybe_extract(urls, directory, check_files=[]):
 """ Download the files at ``urls`` to ``directory``. Extract to ``directory`` if tar or zip. Args: urls (str):
 Url of files. directory (str):
 Directory to download to. check_files (list of str):
 Check if these files exist, ensuring the download succeeded. If these files exist before the download, the download is skipped. Raises: ValueError: Error if one of the ``check_files`` are not found following the download. """

    check_files = [os.path.join(directory, f) for f in check_files]
    if _check_download(*check_files):
        return

    for url in urls:
        download_file_maybe_extract(url=url, directory=directory)

    if not _check_download(*check_files):
        raise ValueError('[DOWNLOAD FAILED] `*check_files` not found')