# Path: mezzanine/utils/deprecation.py
# def mark_safe(s):
#     from django.utils.safestring import mark_safe as django_safe
# 
#     if callable(s):
# 
#         @wraps(s)
#         def wrapper(*args, **kwargs):
#             return django_safe(s(*args, **kwargs))
# 
#         return wrapper
#     return django_safe(s)


    from html.entities import name2codepoint
    from html.parser import HTMLParser
        from html.parser import HTMLParseError
    from HTMLParser import HTMLParser, HTMLParseError
    from htmlentitydefs import name2codepoint
from mezzanine.utils.deprecation import mark_safe
    from bs4 import BeautifulSoup
    from mezzanine.core.request import current_request
    from bleach import ALLOWED_PROTOCOLS, clean
    from mezzanine.conf import settings
    from mezzanine.core import defaults
    from bs4 import BeautifulSoup
    from django.conf import settings
    from mezzanine.core.templatetags.mezzanine_tags import thumbnail
import re
    try:
    except ImportError:  # Python 3.5+

        class HTMLParseError(Exception):
            pass


except ImportError:  # Python 2



SELF_CLOSING_TAGS = ["br", "img"]
NON_SELF_CLOSING_TAGS = ["script", "iframe"]
ABSOLUTE_URL_TAGS = {"img": "src", "a": "href", "iframe": "src"}

# Tags and attributes added to richtext filtering whitelist when the
# RICHTEXT_FILTER_LEVEL is set to low. General use-case for these is
# allowing embedded video, but we will add to this fixed list over
# time as more use-cases come up. We won't ever add script tags or
# events (onclick etc) to this list. To enable those, filtering can
# be turned off in the settings admin.
LOW_FILTER_TAGS = ("iframe", "embed", "video", "param", "source", "object")
LOW_FILTER_ATTRS = (
    "allowfullscreen",
    "autostart",
    "loop",
    "hidden",
    "playcount",
    "volume",
    "controls",

# Path: mezzanine/utils/deprecation.py
# def mark_safe(s):
#     from django.utils.safestring import mark_safe as django_safe
# 
#     if callable(s):
# 
#         @wraps(s)
#         def wrapper(*args, **kwargs):
#             return django_safe(s(*args, **kwargs))
# 
#         return wrapper
#     return django_safe(s)


# Path: mezzanine/utils/html.py
    from html.entities import name2codepoint
    from html.parser import HTMLParser
        from html.parser import HTMLParseError
    from HTMLParser import HTMLParser, HTMLParseError
    from htmlentitydefs import name2codepoint
from mezzanine.utils.deprecation import mark_safe
    from bs4 import BeautifulSoup
    from mezzanine.core.request import current_request
    from bleach import ALLOWED_PROTOCOLS, clean
    from mezzanine.conf import settings
    from mezzanine.core import defaults
    from bs4 import BeautifulSoup
    from django.conf import settings
    from mezzanine.core.templatetags.mezzanine_tags import thumbnail
import re

    try:
    except ImportError:  # Python 3.5+

        class HTMLParseError(Exception):
            pass


except ImportError:  # Python 2



SELF_CLOSING_TAGS = ["br", "img"]
NON_SELF_CLOSING_TAGS = ["script", "iframe"]
ABSOLUTE_URL_TAGS = {"img": "src", "a": "href", "iframe": "src"}

# Tags and attributes added to richtext filtering whitelist when the
# RICHTEXT_FILTER_LEVEL is set to low. General use-case for these is
# allowing embedded video, but we will add to this fixed list over
# time as more use-cases come up. We won't ever add script tags or
# events (onclick etc) to this list. To enable those, filtering can
# be turned off in the settings admin.
LOW_FILTER_TAGS = ("iframe", "embed", "video", "param", "source", "object")
LOW_FILTER_ATTRS = (
    "allowfullscreen",
    "autostart",
    "loop",
    "hidden",
    "playcount",
    "volume",
    "controls",

    "data",