# Path: resources/lib/compat.py



import time
import hashlib
import platform
import xbmc
from functools import wraps
from types import FunctionType
from resources.lib.compat import itername

    def log(self, msg, level=xbmc.LOGDEBUG):
        """
        Log a message
        """
        self._log('{}: {}'.format(self.__class__.__name__, msg), level)


def noop(**kwargs):
    """Takes everything, does nothing, classic no operation function"""
    return kwargs


def log(func):
    """
    Log decarator that is used to annotate methods & output everything to
    the Kodi debug log

    :param delay: retry delay in sec
    :type delay: int
    :returns:  string -- Devices MAC address
    """
    name = func.__name__

    @wraps(func)
    def wrapped(*args, **kwargs):
        """Wrapper function to maintain correct stack traces"""
        that = args[0]
        class_name = that.__class__.__name__
        arguments = ''

# Path: resources/lib/compat.py



# Path: resources/lib/utils.py
import time
import hashlib
import platform
import xbmc
from functools import wraps
from types import FunctionType
from resources.lib.compat import itername


    def log(self, msg, level=xbmc.LOGDEBUG):
        """
        Log a message
        """
        self._log('{}: {}'.format(self.__class__.__name__, msg), level)


def noop(**kwargs):
    """Takes everything, does nothing, classic no operation function"""
    return kwargs


def log(func):
    """
    Log decarator that is used to annotate methods & output everything to
    the Kodi debug log

    :param delay: retry delay in sec
    :type delay: int
    :returns:  string -- Devices MAC address
    """
    name = func.__name__

    @wraps(func)
    def wrapped(*args, **kwargs):
        """Wrapper function to maintain correct stack traces"""
        that = args[0]
        class_name = that.__class__.__name__
        arguments = ''

        for key, value in getattr(kwargs, itername)():