# Path: tabun_api/compat.py
# PY2 = sys.version_info.major == 2


import re
import sys
import time
import random
import logging
import platform
import mimetypes
import lxml
import lxml.html
import lxml.etree
import iso8601
    import warnings
        import Image
        import imp
        import importlib
        import importlib.util
    import socks
from hashlib import md5
from .compat import text, text_types, binary, urequest, PY2, BaseCookie
        from PIL import Image
    from io import BytesIO
        from urlparse import urlparse
        from urllib.parse import urlparse

def parse_avatar_url(url):
    """Парсит ссылку на аватарку и возвращает id пользователя,
    дату отправки, размер, расширение и какой-то номер с конца ссылки.
    Если не удалось распарсить, то всё ``None``.

    :param url: ссылка
    :type url: строка
    :rtype: (int, "YYYY-MM-DD", (int, int), строка, int или None)
    """

    match = ava_regex.search(url)
    if not match:
        return None, None, None, None, None
    g = match.groups()
    user_id = int(g[3] + g[4] + g[5])
    date = g[6] + "-" + g[7] + "-" + g[8]
    size = (int(g[9]), int(g[10]))
    ext = g[11]
    num = int(g[13]) if g[13] is not None else None

    return user_id, date, size, ext, num


def decode_cf_email(data):
    key = int(data[0:2], 16)
    use_bytes = not isinstance(data, text)
    result = b''
    for i in range(1, len(data) // 2):
        b = int(data[i * 2:i * 2 + 2], 16) ^ key

# Path: tabun_api/compat.py
# PY2 = sys.version_info.major == 2


# Path: tabun_api/utils.py
import re
import sys
import time
import random
import logging
import platform
import mimetypes
import lxml
import lxml.html
import lxml.etree
import iso8601
    import warnings
        import Image
        import imp
        import importlib
        import importlib.util
    import socks
from hashlib import md5
from .compat import text, text_types, binary, urequest, PY2, BaseCookie
        from PIL import Image
    from io import BytesIO
        from urlparse import urlparse
        from urllib.parse import urlparse


def parse_avatar_url(url):
    """Парсит ссылку на аватарку и возвращает id пользователя,
    дату отправки, размер, расширение и какой-то номер с конца ссылки.
    Если не удалось распарсить, то всё ``None``.

    :param url: ссылка
    :type url: строка
    :rtype: (int, "YYYY-MM-DD", (int, int), строка, int или None)
    """

    match = ava_regex.search(url)
    if not match:
        return None, None, None, None, None
    g = match.groups()
    user_id = int(g[3] + g[4] + g[5])
    date = g[6] + "-" + g[7] + "-" + g[8]
    size = (int(g[9]), int(g[10]))
    ext = g[11]
    num = int(g[13]) if g[13] is not None else None

    return user_id, date, size, ext, num


def decode_cf_email(data):
    key = int(data[0:2], 16)
    use_bytes = not isinstance(data, text)
    result = b''
    for i in range(1, len(data) // 2):
        b = int(data[i * 2:i * 2 + 2], 16) ^ key

        if PY2: