master 70bd87200a5f cached
241 files
1.3 MB
402.9k tokens
200 symbols
1 requests
Download .txt
Showing preview only (1,388K chars total). Download the full file or copy to clipboard to get everything.
Repository: thecodinghouse/mezzanine-themes
Branch: master
Commit: 70bd87200a5f
Files: 241
Total size: 1.3 MB

Directory structure:
gitextract_vc20vo_6/

├── .gitignore
├── .hgignore
├── LICENSE
├── README.md
├── __init__.py
├── deploy/
│   ├── crontab
│   ├── gunicorn.conf.py.template
│   ├── local_settings.py.template
│   ├── nginx.conf
│   └── supervisor.conf
├── fabfile.py
├── flat/
│   ├── __init__.py
│   ├── admin.py
│   ├── models.py
│   ├── static/
│   │   ├── css/
│   │   │   ├── animate.css
│   │   │   ├── main.css
│   │   │   ├── main.css~
│   │   │   └── prettyPhoto.css
│   │   ├── fonts/
│   │   │   └── FontAwesome.otf
│   │   └── js/
│   │       ├── html5shiv.js
│   │       ├── jquery.js
│   │       ├── jquery.prettyPhoto.js
│   │       └── main.js
│   ├── templates/
│   │   ├── accounts/
│   │   │   ├── account_form.html
│   │   │   ├── account_login.html
│   │   │   ├── account_password_reset.html
│   │   │   ├── account_profile.html
│   │   │   ├── account_profile_update.html
│   │   │   ├── account_signup.html
│   │   │   └── includes/
│   │   │       ├── user_panel.html
│   │   │       └── user_panel_nav.html
│   │   ├── base.html
│   │   ├── blog/
│   │   │   ├── blog_post_detail.html
│   │   │   ├── blog_post_list.html
│   │   │   └── includes/
│   │   │       └── filter_panel.html
│   │   ├── generic/
│   │   │   ├── comments.html
│   │   │   └── includes/
│   │   │       ├── comment.html
│   │   │       ├── comment_form.html
│   │   │       ├── comments.html
│   │   │       ├── disqus_comments.html
│   │   │       ├── disqus_counts.html
│   │   │       ├── disqus_sso.html
│   │   │       └── rating.html
│   │   ├── includes/
│   │   │   ├── editable_form.html
│   │   │   ├── editable_loader.html
│   │   │   ├── editable_toolbar.html
│   │   │   ├── footer_scripts.html
│   │   │   ├── form_errors.html
│   │   │   ├── form_fields.html
│   │   │   ├── pagination.html
│   │   │   ├── search_form.html
│   │   │   └── user_panel.html
│   │   ├── index.html
│   │   ├── pages/
│   │   │   ├── form.html
│   │   │   ├── gallery.html
│   │   │   ├── index.html
│   │   │   ├── menus/
│   │   │   │   ├── admin.html
│   │   │   │   ├── breadcrumb.html
│   │   │   │   ├── dropdown.html
│   │   │   │   ├── footer.html
│   │   │   │   ├── footer_tree.html
│   │   │   │   ├── mobile.html
│   │   │   │   ├── primary.html
│   │   │   │   └── tree.html
│   │   │   ├── page.html
│   │   │   └── richtextpage.html
│   │   └── search_results.html
│   ├── tests.py
│   └── views.py
├── manage.py
├── moderna/
│   ├── __init__.py
│   ├── admin.py
│   ├── models.py
│   ├── static/
│   │   ├── css/
│   │   │   ├── animate.css
│   │   │   ├── custom-fonts.css
│   │   │   ├── fancybox/
│   │   │   │   └── jquery.fancybox.css
│   │   │   ├── flexslider.css
│   │   │   ├── font-awesome.css
│   │   │   ├── mezzanine.css
│   │   │   ├── overwrite.css
│   │   │   └── style.css
│   │   ├── fonts/
│   │   │   └── FontAwesome.otf
│   │   ├── js/
│   │   │   ├── animate.js
│   │   │   ├── custom.js
│   │   │   ├── flexslider/
│   │   │   │   ├── jquery.flexslider.js
│   │   │   │   └── setting.js
│   │   │   ├── google-code-prettify/
│   │   │   │   ├── prettify.css
│   │   │   │   └── prettify.js
│   │   │   ├── jquery.easing.1.3.js
│   │   │   ├── jquery.fancybox-media.js
│   │   │   ├── jquery.fancybox.pack.js
│   │   │   ├── jquery.flexslider.js
│   │   │   ├── jquery.js
│   │   │   ├── portfolio/
│   │   │   │   ├── jquery.quicksand.js
│   │   │   │   └── setting.js
│   │   │   ├── quicksand/
│   │   │   │   ├── jquery.quicksand.js
│   │   │   │   └── setting.js
│   │   │   └── validate.js
│   │   └── skins/
│   │       └── default.css
│   ├── templates/
│   │   ├── base.html
│   │   ├── blog/
│   │   │   ├── blog_post_detail.html
│   │   │   ├── blog_post_list.html
│   │   │   └── includes/
│   │   │       └── filter_panel.html
│   │   ├── generic/
│   │   │   ├── comments.html
│   │   │   └── includes/
│   │   │       ├── comment.html
│   │   │       ├── comment_form.html
│   │   │       ├── comments.html
│   │   │       ├── disqus_comments.html
│   │   │       ├── disqus_counts.html
│   │   │       ├── disqus_sso.html
│   │   │       └── rating.html
│   │   ├── index.html
│   │   ├── pages/
│   │   │   ├── form.html
│   │   │   ├── gallery.html
│   │   │   ├── index.html
│   │   │   ├── menus/
│   │   │   │   ├── admin.html
│   │   │   │   ├── breadcrumb.html
│   │   │   │   ├── dropdown.html
│   │   │   │   ├── footer.html
│   │   │   │   ├── footer_tree.html
│   │   │   │   ├── mobile.html
│   │   │   │   ├── primary.html
│   │   │   │   └── tree.html
│   │   │   ├── page.html
│   │   │   └── richtextpage.html
│   │   └── search_results.html
│   ├── tests.py
│   └── views.py
├── nova/
│   ├── __init__.py
│   ├── admin.py
│   ├── models.py
│   ├── static/
│   │   ├── css/
│   │   │   ├── docs.css
│   │   │   ├── main.css
│   │   │   ├── main.less
│   │   │   ├── mezzanine.css
│   │   │   ├── mixins.css
│   │   │   ├── mixins.less
│   │   │   ├── prettify.css
│   │   │   ├── sl-slide.css
│   │   │   ├── variables.css
│   │   │   └── variables.less
│   │   ├── font/
│   │   │   └── FontAwesome.otf
│   │   ├── images/
│   │   │   └── sample/
│   │   │       └── index.html
│   │   └── js/
│   │       ├── jquery.slitslider.js
│   │       └── main.js
│   ├── templates/
│   │   ├── base.html
│   │   ├── blog/
│   │   │   ├── blog_post_detail.html
│   │   │   ├── blog_post_list.html
│   │   │   └── includes/
│   │   │       └── filter_panel.html
│   │   ├── generic/
│   │   │   ├── comments.html
│   │   │   └── includes/
│   │   │       ├── comment.html
│   │   │       ├── comment_form.html
│   │   │       ├── comments.html
│   │   │       ├── disqus_comments.html
│   │   │       ├── disqus_counts.html
│   │   │       ├── disqus_sso.html
│   │   │       └── rating.html
│   │   ├── index.html
│   │   ├── pages/
│   │   │   ├── form.html
│   │   │   ├── gallery.html
│   │   │   ├── index.html
│   │   │   ├── menus/
│   │   │   │   ├── admin.html
│   │   │   │   ├── breadcrumb.html
│   │   │   │   ├── dropdown.html
│   │   │   │   ├── footer.html
│   │   │   │   ├── footer_tree.html
│   │   │   │   ├── mobile.html
│   │   │   │   ├── primary.html
│   │   │   │   └── tree.html
│   │   │   ├── page.html
│   │   │   └── richtextpage.html
│   │   ├── search_results.html
│   │   └── twitter/
│   │       └── tweets.html
│   ├── tests.py
│   └── views.py
├── requirements.txt
├── settings.py
├── solid/
│   ├── __init__.py
│   ├── admin.py
│   ├── models.py
│   ├── static/
│   │   ├── css/
│   │   │   ├── bootstrap.css
│   │   │   ├── hoverex-all.css
│   │   │   ├── mezzanine.css
│   │   │   ├── prettyPhoto.css
│   │   │   └── style.css
│   │   ├── fonts/
│   │   │   └── FontAwesome.otf
│   │   └── js/
│   │       ├── custom.js
│   │       ├── jquery.hoverdir.js
│   │       ├── jquery.prettyPhoto.js
│   │       └── retina-1.1.0.js
│   ├── templates/
│   │   ├── base.html
│   │   ├── blog/
│   │   │   ├── blog_post_detail.html
│   │   │   ├── blog_post_list.html
│   │   │   └── includes/
│   │   │       └── filter_panel.html
│   │   ├── email/
│   │   │   ├── base.html
│   │   │   ├── base.txt
│   │   │   ├── comment_notification.html
│   │   │   ├── comment_notification.txt
│   │   │   ├── form_response.html
│   │   │   ├── form_response.txt
│   │   │   ├── form_response_copies.html
│   │   │   └── form_response_copies.txt
│   │   ├── errors/
│   │   │   ├── 404.html
│   │   │   └── 500.html
│   │   ├── generic/
│   │   │   ├── comments.html
│   │   │   └── includes/
│   │   │       ├── comment.html
│   │   │       ├── comments.html
│   │   │       ├── disqus_comments.html
│   │   │       ├── disqus_counts.html
│   │   │       ├── disqus_sso.html
│   │   │       └── rating.html
│   │   ├── includes/
│   │   │   ├── editable_form.html
│   │   │   ├── editable_loader.html
│   │   │   ├── editable_toolbar.html
│   │   │   ├── footer_scripts.html
│   │   │   ├── footer_scripts.html~
│   │   │   ├── form_errors.html
│   │   │   ├── form_fields.html
│   │   │   ├── pagination.html
│   │   │   ├── search_form.html
│   │   │   └── user_panel.html
│   │   ├── index.html
│   │   ├── pages/
│   │   │   ├── form.html
│   │   │   ├── gallery.html
│   │   │   ├── index.html
│   │   │   ├── menus/
│   │   │   │   ├── admin.html
│   │   │   │   ├── breadcrumb.html
│   │   │   │   ├── dropdown1.html
│   │   │   │   ├── footer.html
│   │   │   │   ├── footer_tree.html
│   │   │   │   ├── mobile.html
│   │   │   │   ├── primary.html
│   │   │   │   └── tree.html
│   │   │   ├── page.html
│   │   │   └── richtextpage.html
│   │   ├── search_results.html
│   │   └── twitter/
│   │       └── tweets.html
│   ├── tests.py
│   └── views.py
├── urls.py
└── wsgi.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
*.pyc
*.pyo
*.db
.DS_Store
.coverage
local_settings.py
/static


================================================
FILE: .hgignore
================================================
syntax: glob
*.pyc
*.pyo
*.db
.DS_Store
.coverage
local_settings.py

syntax: regexp
^static/


================================================
FILE: LICENSE
================================================
The MIT License (MIT)

Copyright (c) 2014 thecodinghouse

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.



================================================
FILE: README.md
================================================
# mezzanine-themes

### Free themes for Mezzanine CMS.



This is a mezzanine project which contains free mezzanine themes(flat/nova/solid/moderna).

Download and run the project to try each theme by changing theme name in settings.py

For example:

```
INSTALLED_APPS = (
    # "moderna",
    # "flat",
    # "nova",
    "solid",
    "django.contrib.admin",
    "django.contrib.auth",
    ...
)
```
Preview:
- Moderna:
![Moderna](https://cloud.githubusercontent.com/assets/1374633/21468864/5d6c20de-ca34-11e6-8eb3-68094c512155.png)

- Flat:
![Flat](https://cloud.githubusercontent.com/assets/1374633/21468874/d2e564b0-ca34-11e6-89dd-39bbf85ea5da.png)

- Nova:
![Nova](https://cloud.githubusercontent.com/assets/1374633/21468877/f6077eec-ca34-11e6-9f13-10dee46d1618.png)

- Solid:
![Solid](https://cloud.githubusercontent.com/assets/1374633/21468881/1d29edd4-ca35-11e6-9638-25c6b30a61a5.png)


================================================
FILE: __init__.py
================================================


================================================
FILE: deploy/crontab
================================================
*/5 * * * * %(user)s %(manage)s poll_twitter


================================================
FILE: deploy/gunicorn.conf.py.template
================================================
from __future__ import unicode_literals
import multiprocessing

bind = "127.0.0.1:%(gunicorn_port)s"
workers = multiprocessing.cpu_count() * 2 + 1
loglevel = "error"
proc_name = "%(proj_name)s"


================================================
FILE: deploy/local_settings.py.template
================================================
from __future__ import unicode_literals

SECRET_KEY = "%(secret_key)s"
NEVERCACHE_KEY = "%(nevercache_key)s"
ALLOWED_HOSTS = [%(domains_python)s]

DATABASES = {
    "default": {
        # Ends with "postgresql_psycopg2", "mysql", "sqlite3" or "oracle".
        "ENGINE": "django.db.backends.postgresql_psycopg2",
        # DB name or path to database file if using sqlite3.
        "NAME": "%(proj_name)s",
        # Not used with sqlite3.
        "USER": "%(proj_name)s",
        # Not used with sqlite3.
        "PASSWORD": "%(db_pass)s",
        # Set to empty string for localhost. Not used with sqlite3.
        "HOST": "127.0.0.1",
        # Set to empty string for default. Not used with sqlite3.
        "PORT": "",
    }
}

SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTOCOL", "https")

CACHE_MIDDLEWARE_SECONDS = 60

CACHE_MIDDLEWARE_KEY_PREFIX = "%(proj_name)s"

CACHES = {
    "default": {
        "BACKEND": "django.core.cache.backends.memcached.MemcachedCache",
        "LOCATION": "127.0.0.1:11211",
    }
}

SESSION_ENGINE = "django.contrib.sessions.backends.cache"


================================================
FILE: deploy/nginx.conf
================================================

upstream %(proj_name)s {
    server 127.0.0.1:%(gunicorn_port)s;
}

server {

    listen 80;
    %(ssl_disabled)s listen 443 ssl;
    server_name %(domains_nginx)s;
    client_max_body_size 10M;
    keepalive_timeout    15;

    %(ssl_disabled)s ssl_certificate      conf/%(proj_name)s.crt;
    %(ssl_disabled)s ssl_certificate_key  conf/%(proj_name)s.key;
    %(ssl_disabled)s ssl_session_cache    shared:SSL:10m;
    %(ssl_disabled)s ssl_session_timeout  10m;
    %(ssl_disabled)s ssl_ciphers RC4:HIGH:!aNULL:!MD5;
    %(ssl_disabled)s ssl_prefer_server_ciphers on;

    location / {
        proxy_redirect      off;
        proxy_set_header    Host                    $host;
        proxy_set_header    X-Real-IP               $remote_addr;
        proxy_set_header    X-Forwarded-For         $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Protocol    $scheme;
        proxy_pass          http://%(proj_name)s;
    }

    location /static/ {
        root            %(proj_path)s;
        access_log      off;
        log_not_found   off;
    }

    location /robots.txt {
        root            %(proj_path)s/static;
        access_log      off;
        log_not_found   off;
    }

    location /favicon.ico {
        root            %(proj_path)s/static/img;
        access_log      off;
        log_not_found   off;
    }

}


================================================
FILE: deploy/supervisor.conf
================================================
[group:%(proj_name)s]
programs=gunicorn_%(proj_name)s

[program:gunicorn_%(proj_name)s]
command=%(venv_path)s/bin/gunicorn_django -c gunicorn.conf.py -p gunicorn.pid
directory=%(proj_path)s
user=%(user)s
autostart=true
autorestart=true
redirect_stderr=true
environment=LANG="%(locale)s",LC_ALL="%(locale)s",LC_LANG="%(locale)s"


================================================
FILE: fabfile.py
================================================
from __future__ import print_function, unicode_literals
from future.builtins import input, open

import os
import re
import sys
from functools import wraps
from getpass import getpass, getuser
from glob import glob
from contextlib import contextmanager
from posixpath import join

from fabric.api import env, cd, prefix, sudo as _sudo, run as _run, hide, task
from fabric.contrib.files import exists, upload_template
from fabric.colors import yellow, green, blue, red


################
# Config setup #
################

conf = {}
if sys.argv[0].split(os.sep)[-1] in ("fab", "fab-script.py"):
    # Ensure we import settings from the current dir
    try:
        conf = __import__("settings", globals(), locals(), [], 0).FABRIC
        try:
            conf["HOSTS"][0]
        except (KeyError, ValueError):
            raise ImportError
    except (ImportError, AttributeError):
        print("Aborting, no hosts defined.")
        exit()

env.db_pass = conf.get("DB_PASS", None)
env.admin_pass = conf.get("ADMIN_PASS", None)
env.user = conf.get("SSH_USER", getuser())
env.password = conf.get("SSH_PASS", None)
env.key_filename = conf.get("SSH_KEY_PATH", None)
env.hosts = conf.get("HOSTS", [""])

env.proj_name = conf.get("PROJECT_NAME", os.getcwd().split(os.sep)[-1])
env.venv_home = conf.get("VIRTUALENV_HOME", "/home/%s" % env.user)
env.venv_path = "%s/%s" % (env.venv_home, env.proj_name)
env.proj_dirname = "project"
env.proj_path = "%s/%s" % (env.venv_path, env.proj_dirname)
env.manage = "%s/bin/python %s/project/manage.py" % ((env.venv_path,) * 2)
env.domains = conf.get("DOMAINS", [conf.get("LIVE_HOSTNAME", env.hosts[0])])
env.domains_nginx = " ".join(env.domains)
env.domains_python = ", ".join(["'%s'" % s for s in env.domains])
env.ssl_disabled = "#" if len(env.domains) > 1 else ""
env.repo_url = conf.get("REPO_URL", "")
env.git = env.repo_url.startswith("git") or env.repo_url.endswith(".git")
env.reqs_path = conf.get("REQUIREMENTS_PATH", None)
env.gunicorn_port = conf.get("GUNICORN_PORT", 8000)
env.locale = conf.get("LOCALE", "en_US.UTF-8")

env.secret_key = conf.get("SECRET_KEY", "")
env.nevercache_key = conf.get("NEVERCACHE_KEY", "")


##################
# Template setup #
##################

# Each template gets uploaded at deploy time, only if their
# contents has changed, in which case, the reload command is
# also run.

templates = {
    "nginx": {
        "local_path": "deploy/nginx.conf",
        "remote_path": "/etc/nginx/sites-enabled/%(proj_name)s.conf",
        "reload_command": "service nginx restart",
    },
    "supervisor": {
        "local_path": "deploy/supervisor.conf",
        "remote_path": "/etc/supervisor/conf.d/%(proj_name)s.conf",
        "reload_command": "supervisorctl reload",
    },
    "cron": {
        "local_path": "deploy/crontab",
        "remote_path": "/etc/cron.d/%(proj_name)s",
        "owner": "root",
        "mode": "600",
    },
    "gunicorn": {
        "local_path": "deploy/gunicorn.conf.py.template",
        "remote_path": "%(proj_path)s/gunicorn.conf.py",
    },
    "settings": {
        "local_path": "deploy/local_settings.py.template",
        "remote_path": "%(proj_path)s/local_settings.py",
    },
}


######################################
# Context for virtualenv and project #
######################################

@contextmanager
def virtualenv():
    """
    Runs commands within the project's virtualenv.
    """
    with cd(env.venv_path):
        with prefix("source %s/bin/activate" % env.venv_path):
            yield


@contextmanager
def project():
    """
    Runs commands within the project's directory.
    """
    with virtualenv():
        with cd(env.proj_dirname):
            yield


@contextmanager
def update_changed_requirements():
    """
    Checks for changes in the requirements file across an update,
    and gets new requirements if changes have occurred.
    """
    reqs_path = join(env.proj_path, env.reqs_path)
    get_reqs = lambda: run("cat %s" % reqs_path, show=False)
    old_reqs = get_reqs() if env.reqs_path else ""
    yield
    if old_reqs:
        new_reqs = get_reqs()
        if old_reqs == new_reqs:
            # Unpinned requirements should always be checked.
            for req in new_reqs.split("\n"):
                if req.startswith("-e"):
                    if "@" not in req:
                        # Editable requirement without pinned commit.
                        break
                elif req.strip() and not req.startswith("#"):
                    if not set(">=<") & set(req):
                        # PyPI requirement without version.
                        break
            else:
                # All requirements are pinned.
                return
        pip("-r %s/%s" % (env.proj_path, env.reqs_path))


###########################################
# Utils and wrappers for various commands #
###########################################

def _print(output):
    print()
    print(output)
    print()


def print_command(command):
    _print(blue("$ ", bold=True) +
           yellow(command, bold=True) +
           red(" ->", bold=True))


@task
def run(command, show=True):
    """
    Runs a shell comand on the remote server.
    """
    if show:
        print_command(command)
    with hide("running"):
        return _run(command)


@task
def sudo(command, show=True):
    """
    Runs a command as sudo.
    """
    if show:
        print_command(command)
    with hide("running"):
        return _sudo(command)


def log_call(func):
    @wraps(func)
    def logged(*args, **kawrgs):
        header = "-" * len(func.__name__)
        _print(green("\n".join([header, func.__name__, header]), bold=True))
        return func(*args, **kawrgs)
    return logged


def get_templates():
    """
    Returns each of the templates with env vars injected.
    """
    injected = {}
    for name, data in templates.items():
        injected[name] = dict([(k, v % env) for k, v in data.items()])
    return injected


def upload_template_and_reload(name):
    """
    Uploads a template only if it has changed, and if so, reload a
    related service.
    """
    template = get_templates()[name]
    local_path = template["local_path"]
    if not os.path.exists(local_path):
        project_root = os.path.dirname(os.path.abspath(__file__))
        local_path = os.path.join(project_root, local_path)
    remote_path = template["remote_path"]
    reload_command = template.get("reload_command")
    owner = template.get("owner")
    mode = template.get("mode")
    remote_data = ""
    if exists(remote_path):
        with hide("stdout"):
            remote_data = sudo("cat %s" % remote_path, show=False)
    with open(local_path, "r") as f:
        local_data = f.read()
        # Escape all non-string-formatting-placeholder occurrences of '%':
        local_data = re.sub(r"%(?!\(\w+\)s)", "%%", local_data)
        if "%(db_pass)s" in local_data:
            env.db_pass = db_pass()
        local_data %= env
    clean = lambda s: s.replace("\n", "").replace("\r", "").strip()
    if clean(remote_data) == clean(local_data):
        return
    upload_template(local_path, remote_path, env, use_sudo=True, backup=False)
    if owner:
        sudo("chown %s %s" % (owner, remote_path))
    if mode:
        sudo("chmod %s %s" % (mode, remote_path))
    if reload_command:
        sudo(reload_command)


def db_pass():
    """
    Prompts for the database password if unknown.
    """
    if not env.db_pass:
        env.db_pass = getpass("Enter the database password: ")
    return env.db_pass


@task
def apt(packages):
    """
    Installs one or more system packages via apt.
    """
    return sudo("apt-get install -y -q " + packages)


@task
def pip(packages):
    """
    Installs one or more Python packages within the virtual environment.
    """
    with virtualenv():
        return sudo("pip install %s" % packages)


def postgres(command):
    """
    Runs the given command as the postgres user.
    """
    show = not command.startswith("psql")
    return run("sudo -u root sudo -u postgres %s" % command, show=show)


@task
def psql(sql, show=True):
    """
    Runs SQL against the project's database.
    """
    out = postgres('psql -c "%s"' % sql)
    if show:
        print_command(sql)
    return out


@task
def backup(filename):
    """
    Backs up the database.
    """
    return postgres("pg_dump -Fc %s > %s" % (env.proj_name, filename))


@task
def restore(filename):
    """
    Restores the database.
    """
    return postgres("pg_restore -c -d %s %s" % (env.proj_name, filename))


@task
def python(code, show=True):
    """
    Runs Python code in the project's virtual environment, with Django loaded.
    """
    setup = "import os; os.environ[\'DJANGO_SETTINGS_MODULE\']=\'settings\';"
    full_code = 'python -c "%s%s"' % (setup, code.replace("`", "\\\`"))
    with project():
        result = run(full_code, show=False)
        if show:
            print_command(code)
    return result


def static():
    """
    Returns the live STATIC_ROOT directory.
    """
    return python("from django.conf import settings;"
                  "print settings.STATIC_ROOT", show=False).split("\n")[-1]


@task
def manage(command):
    """
    Runs a Django management command.
    """
    return run("%s %s" % (env.manage, command))


#########################
# Install and configure #
#########################

@task
@log_call
def install():
    """
    Installs the base system and Python requirements for the entire server.
    """
    locale = "LC_ALL=%s" % env.locale
    with hide("stdout"):
        if locale not in sudo("cat /etc/default/locale"):
            sudo("update-locale %s" % locale)
            run("exit")
    sudo("apt-get update -y -q")
    apt("nginx libjpeg-dev python-dev python-setuptools git-core "
        "postgresql libpq-dev memcached supervisor")
    sudo("easy_install pip")
    sudo("pip install virtualenv mercurial")


@task
@log_call
def create():
    """
    Create a new virtual environment for a project.
    Pulls the project's repo from version control, adds system-level
    configs for the project, and initialises the database with the
    live host.
    """

    # Create virtualenv
    with cd(env.venv_home):
        if exists(env.proj_name):
            prompt = input("\nVirtualenv exists: %s"
                           "\nWould you like to replace it? (yes/no) "
                           % env.proj_name)
            if prompt.lower() != "yes":
                print("\nAborting!")
                return False
            remove()
        run("virtualenv %s --distribute" % env.proj_name)
        vcs = "git" if env.git else "hg"
        run("%s clone %s %s" % (vcs, env.repo_url, env.proj_path))

    # Create DB and DB user.
    pw = db_pass()
    user_sql_args = (env.proj_name, pw.replace("'", "\'"))
    user_sql = "CREATE USER %s WITH ENCRYPTED PASSWORD '%s';" % user_sql_args
    psql(user_sql, show=False)
    shadowed = "*" * len(pw)
    print_command(user_sql.replace("'%s'" % pw, "'%s'" % shadowed))
    psql("CREATE DATABASE %s WITH OWNER %s ENCODING = 'UTF8' "
         "LC_CTYPE = '%s' LC_COLLATE = '%s' TEMPLATE template0;" %
         (env.proj_name, env.proj_name, env.locale, env.locale))

    # Set up SSL certificate.
    if not env.ssl_disabled:
        conf_path = "/etc/nginx/conf"
        if not exists(conf_path):
            sudo("mkdir %s" % conf_path)
        with cd(conf_path):
            crt_file = env.proj_name + ".crt"
            key_file = env.proj_name + ".key"
            if not exists(crt_file) and not exists(key_file):
                try:
                    crt_local, = glob(join("deploy", "*.crt"))
                    key_local, = glob(join("deploy", "*.key"))
                except ValueError:
                    parts = (crt_file, key_file, env.domains[0])
                    sudo("openssl req -new -x509 -nodes -out %s -keyout %s "
                         "-subj '/CN=%s' -days 3650" % parts)
                else:
                    upload_template(crt_local, crt_file, use_sudo=True)
                    upload_template(key_local, key_file, use_sudo=True)

    # Set up project.
    upload_template_and_reload("settings")
    with project():
        if env.reqs_path:
            pip("-r %s/%s" % (env.proj_path, env.reqs_path))
        pip("gunicorn setproctitle south psycopg2 "
            "django-compressor python-memcached")
        manage("createdb --noinput --nodata")
        python("from django.conf import settings;"
               "from django.contrib.sites.models import Site;"
               "Site.objects.filter(id=settings.SITE_ID).update(domain='%s');"
               % env.domains[0])
        for domain in env.domains:
            python("from django.contrib.sites.models import Site;"
                   "Site.objects.get_or_create(domain='%s');" % domain)
        if env.admin_pass:
            pw = env.admin_pass
            user_py = ("from mezzanine.utils.models import get_user_model;"
                       "User = get_user_model();"
                       "u, _ = User.objects.get_or_create(username='admin');"
                       "u.is_staff = u.is_superuser = True;"
                       "u.set_password('%s');"
                       "u.save();" % pw)
            python(user_py, show=False)
            shadowed = "*" * len(pw)
            print_command(user_py.replace("'%s'" % pw, "'%s'" % shadowed))

    return True


@task
@log_call
def remove():
    """
    Blow away the current project.
    """
    if exists(env.venv_path):
        sudo("rm -rf %s" % env.venv_path)
    for template in get_templates().values():
        remote_path = template["remote_path"]
        if exists(remote_path):
            sudo("rm %s" % remote_path)
    psql("DROP DATABASE IF EXISTS %s;" % env.proj_name)
    psql("DROP USER IF EXISTS %s;" % env.proj_name)


##############
# Deployment #
##############

@task
@log_call
def restart():
    """
    Restart gunicorn worker processes for the project.
    """
    pid_path = "%s/gunicorn.pid" % env.proj_path
    if exists(pid_path):
        sudo("kill -HUP `cat %s`" % pid_path)
    else:
        start_args = (env.proj_name, env.proj_name)
        sudo("supervisorctl start %s:gunicorn_%s" % start_args)


@task
@log_call
def deploy():
    """
    Deploy latest version of the project.
    Check out the latest version of the project from version
    control, install new requirements, sync and migrate the database,
    collect any new static assets, and restart gunicorn's work
    processes for the project.
    """
    if not exists(env.venv_path):
        prompt = input("\nVirtualenv doesn't exist: %s"
                       "\nWould you like to create it? (yes/no) "
                       % env.proj_name)
        if prompt.lower() != "yes":
            print("\nAborting!")
            return False
        create()
    for name in get_templates():
        upload_template_and_reload(name)
    with project():
        backup("last.db")
        static_dir = static()
        if exists(static_dir):
            run("tar -cf last.tar %s" % static_dir)
        git = env.git
        last_commit = "git rev-parse HEAD" if git else "hg id -i"
        run("%s > last.commit" % last_commit)
        with update_changed_requirements():
            run("git pull origin master -f" if git else "hg pull && hg up -C")
        manage("collectstatic -v 0 --noinput")
        manage("syncdb --noinput")
        manage("migrate --noinput")
    restart()
    return True


@task
@log_call
def rollback():
    """
    Reverts project state to the last deploy.
    When a deploy is performed, the current state of the project is
    backed up. This includes the last commit checked out, the database,
    and all static files. Calling rollback will revert all of these to
    their state prior to the last deploy.
    """
    with project():
        with update_changed_requirements():
            update = "git checkout" if env.git else "hg up -C"
            run("%s `cat last.commit`" % update)
        with cd(join(static(), "..")):
            run("tar -xf %s" % join(env.proj_path, "last.tar"))
        restore("last.db")
    restart()


@task
@log_call
def all():
    """
    Installs everything required on a new system and deploy.
    From the base software, up to the deployed project.
    """
    install()
    if create():
        deploy()


================================================
FILE: flat/__init__.py
================================================


================================================
FILE: flat/admin.py
================================================
from django.contrib import admin





================================================
FILE: flat/models.py
================================================



================================================
FILE: flat/static/css/animate.css
================================================
@charset "UTF-8";
/*
Animate.css - http://daneden.me/animate
Licensed under the MIT license

Copyright (c) 2013 Daniel Eden

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
body { /* Addresses a small issue in webkit: http://bit.ly/NEdoDq */
	-webkit-backface-visibility: hidden;
}
.animated {
	-webkit-animation-duration: 1s;
	   -moz-animation-duration: 1s;
	     -o-animation-duration: 1s;
	        animation-duration: 1s;
	-webkit-animation-fill-mode: both;
	   -moz-animation-fill-mode: both;
	     -o-animation-fill-mode: both;
	        animation-fill-mode: both;
}

.animated.hinge {
	-webkit-animation-duration: 2s;
	   -moz-animation-duration: 2s;
	     -o-animation-duration: 2s;
	        animation-duration: 2s;
}

@-webkit-keyframes flash {
	0%, 50%, 100% {opacity: 1;}	
	25%, 75% {opacity: 0;}
}

@-moz-keyframes flash {
	0%, 50%, 100% {opacity: 1;}	
	25%, 75% {opacity: 0;}
}

@-o-keyframes flash {
	0%, 50%, 100% {opacity: 1;}	
	25%, 75% {opacity: 0;}
}

@keyframes flash {
	0%, 50%, 100% {opacity: 1;}	
	25%, 75% {opacity: 0;}
}

.animated.flash {
	-webkit-animation-name: flash;
	-moz-animation-name: flash;
	-o-animation-name: flash;
	animation-name: flash;
}
@-webkit-keyframes shake {
	0%, 100% {-webkit-transform: translateX(0);}
	10%, 30%, 50%, 70%, 90% {-webkit-transform: translateX(-10px);}
	20%, 40%, 60%, 80% {-webkit-transform: translateX(10px);}
}

@-moz-keyframes shake {
	0%, 100% {-moz-transform: translateX(0);}
	10%, 30%, 50%, 70%, 90% {-moz-transform: translateX(-10px);}
	20%, 40%, 60%, 80% {-moz-transform: translateX(10px);}
}

@-o-keyframes shake {
	0%, 100% {-o-transform: translateX(0);}
	10%, 30%, 50%, 70%, 90% {-o-transform: translateX(-10px);}
	20%, 40%, 60%, 80% {-o-transform: translateX(10px);}
}

@keyframes shake {
	0%, 100% {transform: translateX(0);}
	10%, 30%, 50%, 70%, 90% {transform: translateX(-10px);}
	20%, 40%, 60%, 80% {transform: translateX(10px);}
}

.animated.shake {
	-webkit-animation-name: shake;
	-moz-animation-name: shake;
	-o-animation-name: shake;
	animation-name: shake;
}
@-webkit-keyframes bounce {
	0%, 20%, 50%, 80%, 100% {-webkit-transform: translateY(0);}
	40% {-webkit-transform: translateY(-30px);}
	60% {-webkit-transform: translateY(-15px);}
}

@-moz-keyframes bounce {
	0%, 20%, 50%, 80%, 100% {-moz-transform: translateY(0);}
	40% {-moz-transform: translateY(-30px);}
	60% {-moz-transform: translateY(-15px);}
}

@-o-keyframes bounce {
	0%, 20%, 50%, 80%, 100% {-o-transform: translateY(0);}
	40% {-o-transform: translateY(-30px);}
	60% {-o-transform: translateY(-15px);}
}
@keyframes bounce {
	0%, 20%, 50%, 80%, 100% {transform: translateY(0);}
	40% {transform: translateY(-30px);}
	60% {transform: translateY(-15px);}
}

.animated.bounce {
	-webkit-animation-name: bounce;
	-moz-animation-name: bounce;
	-o-animation-name: bounce;
	animation-name: bounce;
}
@-webkit-keyframes tada {
	0% {-webkit-transform: scale(1);}	
	10%, 20% {-webkit-transform: scale(0.9) rotate(-3deg);}
	30%, 50%, 70%, 90% {-webkit-transform: scale(1.1) rotate(3deg);}
	40%, 60%, 80% {-webkit-transform: scale(1.1) rotate(-3deg);}
	100% {-webkit-transform: scale(1) rotate(0);}
}

@-moz-keyframes tada {
	0% {-moz-transform: scale(1);}	
	10%, 20% {-moz-transform: scale(0.9) rotate(-3deg);}
	30%, 50%, 70%, 90% {-moz-transform: scale(1.1) rotate(3deg);}
	40%, 60%, 80% {-moz-transform: scale(1.1) rotate(-3deg);}
	100% {-moz-transform: scale(1) rotate(0);}
}

@-o-keyframes tada {
	0% {-o-transform: scale(1);}	
	10%, 20% {-o-transform: scale(0.9) rotate(-3deg);}
	30%, 50%, 70%, 90% {-o-transform: scale(1.1) rotate(3deg);}
	40%, 60%, 80% {-o-transform: scale(1.1) rotate(-3deg);}
	100% {-o-transform: scale(1) rotate(0);}
}

@keyframes tada {
	0% {transform: scale(1);}	
	10%, 20% {transform: scale(0.9) rotate(-3deg);}
	30%, 50%, 70%, 90% {transform: scale(1.1) rotate(3deg);}
	40%, 60%, 80% {transform: scale(1.1) rotate(-3deg);}
	100% {transform: scale(1) rotate(0);}
}

.animated.tada {
	-webkit-animation-name: tada;
	-moz-animation-name: tada;
	-o-animation-name: tada;
	animation-name: tada;
}
@-webkit-keyframes swing {
	20%, 40%, 60%, 80%, 100% { -webkit-transform-origin: top center; }
	20% { -webkit-transform: rotate(15deg); }	
	40% { -webkit-transform: rotate(-10deg); }
	60% { -webkit-transform: rotate(5deg); }	
	80% { -webkit-transform: rotate(-5deg); }	
	100% { -webkit-transform: rotate(0deg); }
}

@-moz-keyframes swing {
	20% { -moz-transform: rotate(15deg); }	
	40% { -moz-transform: rotate(-10deg); }
	60% { -moz-transform: rotate(5deg); }	
	80% { -moz-transform: rotate(-5deg); }	
	100% { -moz-transform: rotate(0deg); }
}

@-o-keyframes swing {
	20% { -o-transform: rotate(15deg); }	
	40% { -o-transform: rotate(-10deg); }
	60% { -o-transform: rotate(5deg); }	
	80% { -o-transform: rotate(-5deg); }	
	100% { -o-transform: rotate(0deg); }
}

@keyframes swing {
	20% { transform: rotate(15deg); }	
	40% { transform: rotate(-10deg); }
	60% { transform: rotate(5deg); }	
	80% { transform: rotate(-5deg); }	
	100% { transform: rotate(0deg); }
}

.animated.swing {
	-webkit-transform-origin: top center;
	-moz-transform-origin: top center;
	-o-transform-origin: top center;
	transform-origin: top center;
	-webkit-animation-name: swing;
	-moz-animation-name: swing;
	-o-animation-name: swing;
	animation-name: swing;
}
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes wobble {
  0% { -webkit-transform: translateX(0%); }
  15% { -webkit-transform: translateX(-25%) rotate(-5deg); }
  30% { -webkit-transform: translateX(20%) rotate(3deg); }
  45% { -webkit-transform: translateX(-15%) rotate(-3deg); }
  60% { -webkit-transform: translateX(10%) rotate(2deg); }
  75% { -webkit-transform: translateX(-5%) rotate(-1deg); }
  100% { -webkit-transform: translateX(0%); }
}

@-moz-keyframes wobble {
  0% { -moz-transform: translateX(0%); }
  15% { -moz-transform: translateX(-25%) rotate(-5deg); }
  30% { -moz-transform: translateX(20%) rotate(3deg); }
  45% { -moz-transform: translateX(-15%) rotate(-3deg); }
  60% { -moz-transform: translateX(10%) rotate(2deg); }
  75% { -moz-transform: translateX(-5%) rotate(-1deg); }
  100% { -moz-transform: translateX(0%); }
}

@-o-keyframes wobble {
  0% { -o-transform: translateX(0%); }
  15% { -o-transform: translateX(-25%) rotate(-5deg); }
  30% { -o-transform: translateX(20%) rotate(3deg); }
  45% { -o-transform: translateX(-15%) rotate(-3deg); }
  60% { -o-transform: translateX(10%) rotate(2deg); }
  75% { -o-transform: translateX(-5%) rotate(-1deg); }
  100% { -o-transform: translateX(0%); }
}

@keyframes wobble {
  0% { transform: translateX(0%); }
  15% { transform: translateX(-25%) rotate(-5deg); }
  30% { transform: translateX(20%) rotate(3deg); }
  45% { transform: translateX(-15%) rotate(-3deg); }
  60% { transform: translateX(10%) rotate(2deg); }
  75% { transform: translateX(-5%) rotate(-1deg); }
  100% { transform: translateX(0%); }
}

.animated.wobble {
	-webkit-animation-name: wobble;
	-moz-animation-name: wobble;
	-o-animation-name: wobble;
	animation-name: wobble;
}
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes pulse {
    0% { -webkit-transform: scale(1); }	
	50% { -webkit-transform: scale(1.1); }
    100% { -webkit-transform: scale(1); }
}
@-moz-keyframes pulse {
    0% { -moz-transform: scale(1); }	
	50% { -moz-transform: scale(1.1); }
    100% { -moz-transform: scale(1); }
}
@-o-keyframes pulse {
    0% { -o-transform: scale(1); }	
	50% { -o-transform: scale(1.1); }
    100% { -o-transform: scale(1); }
}
@keyframes pulse {
    0% { transform: scale(1); }	
	50% { transform: scale(1.1); }
    100% { transform: scale(1); }
}

.animated.pulse {
	-webkit-animation-name: pulse;
	-moz-animation-name: pulse;
	-o-animation-name: pulse;
	animation-name: pulse;
}
@-webkit-keyframes flip {
	0% {
		-webkit-transform: perspective(400px) rotateY(0);
		-webkit-animation-timing-function: ease-out;
	}
	40% {
		-webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg);
		-webkit-animation-timing-function: ease-out;
	}
	50% {
		-webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
		-webkit-animation-timing-function: ease-in;
	}
	80% {
		-webkit-transform: perspective(400px) rotateY(360deg) scale(.95);
		-webkit-animation-timing-function: ease-in;
	}
	100% {
		-webkit-transform: perspective(400px) scale(1);
		-webkit-animation-timing-function: ease-in;
	}
}
@-moz-keyframes flip {
	0% {
		-moz-transform: perspective(400px) rotateY(0);
		-moz-animation-timing-function: ease-out;
	}
	40% {
		-moz-transform: perspective(400px) translateZ(150px) rotateY(170deg);
		-moz-animation-timing-function: ease-out;
	}
	50% {
		-moz-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
		-moz-animation-timing-function: ease-in;
	}
	80% {
		-moz-transform: perspective(400px) rotateY(360deg) scale(.95);
		-moz-animation-timing-function: ease-in;
	}
	100% {
		-moz-transform: perspective(400px) scale(1);
		-moz-animation-timing-function: ease-in;
	}
}
@-o-keyframes flip {
	0% {
		-o-transform: perspective(400px) rotateY(0);
		-o-animation-timing-function: ease-out;
	}
	40% {
		-o-transform: perspective(400px) translateZ(150px) rotateY(170deg);
		-o-animation-timing-function: ease-out;
	}
	50% {
		-o-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
		-o-animation-timing-function: ease-in;
	}
	80% {
		-o-transform: perspective(400px) rotateY(360deg) scale(.95);
		-o-animation-timing-function: ease-in;
	}
	100% {
		-o-transform: perspective(400px) scale(1);
		-o-animation-timing-function: ease-in;
	}
}
@keyframes flip {
	0% {
		transform: perspective(400px) rotateY(0);
		animation-timing-function: ease-out;
	}
	40% {
		transform: perspective(400px) translateZ(150px) rotateY(170deg);
		animation-timing-function: ease-out;
	}
	50% {
		transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
		animation-timing-function: ease-in;
	}
	80% {
		transform: perspective(400px) rotateY(360deg) scale(.95);
		animation-timing-function: ease-in;
	}
	100% {
		transform: perspective(400px) scale(1);
		animation-timing-function: ease-in;
	}
}

.animated.flip {
	-webkit-backface-visibility: visible !important;
	-webkit-animation-name: flip;
	-moz-backface-visibility: visible !important;
	-moz-animation-name: flip;
	-o-backface-visibility: visible !important;
	-o-animation-name: flip;
	backface-visibility: visible !important;
	animation-name: flip;
}
@-webkit-keyframes flipInX {
    0% {
        -webkit-transform: perspective(400px) rotateX(90deg);
        opacity: 0;
    }
    
    40% {
        -webkit-transform: perspective(400px) rotateX(-10deg);
    }
    
    70% {
        -webkit-transform: perspective(400px) rotateX(10deg);
    }
    
    100% {
        -webkit-transform: perspective(400px) rotateX(0deg);
        opacity: 1;
    }
}
@-moz-keyframes flipInX {
    0% {
        -moz-transform: perspective(400px) rotateX(90deg);
        opacity: 0;
    }
    
    40% {
        -moz-transform: perspective(400px) rotateX(-10deg);
    }
    
    70% {
        -moz-transform: perspective(400px) rotateX(10deg);
    }
    
    100% {
        -moz-transform: perspective(400px) rotateX(0deg);
        opacity: 1;
    }
}
@-o-keyframes flipInX {
    0% {
        -o-transform: perspective(400px) rotateX(90deg);
        opacity: 0;
    }
    
    40% {
        -o-transform: perspective(400px) rotateX(-10deg);
    }
    
    70% {
        -o-transform: perspective(400px) rotateX(10deg);
    }
    
    100% {
        -o-transform: perspective(400px) rotateX(0deg);
        opacity: 1;
    }
}
@keyframes flipInX {
    0% {
        transform: perspective(400px) rotateX(90deg);
        opacity: 0;
    }
    
    40% {
        transform: perspective(400px) rotateX(-10deg);
    }
    
    70% {
        transform: perspective(400px) rotateX(10deg);
    }
    
    100% {
        transform: perspective(400px) rotateX(0deg);
        opacity: 1;
    }
}

.animated.flipInX {
	-webkit-backface-visibility: visible !important;
	-webkit-animation-name: flipInX;
	-moz-backface-visibility: visible !important;
	-moz-animation-name: flipInX;
	-o-backface-visibility: visible !important;
	-o-animation-name: flipInX;
	backface-visibility: visible !important;
	animation-name: flipInX;
}
@-webkit-keyframes flipOutX {
    0% {
        -webkit-transform: perspective(400px) rotateX(0deg);
        opacity: 1;
    }
	100% {
        -webkit-transform: perspective(400px) rotateX(90deg);
        opacity: 0;
    }
}

@-moz-keyframes flipOutX {
    0% {
        -moz-transform: perspective(400px) rotateX(0deg);
        opacity: 1;
    }
	100% {
        -moz-transform: perspective(400px) rotateX(90deg);
        opacity: 0;
    }
}

@-o-keyframes flipOutX {
    0% {
        -o-transform: perspective(400px) rotateX(0deg);
        opacity: 1;
    }
	100% {
        -o-transform: perspective(400px) rotateX(90deg);
        opacity: 0;
    }
}

@keyframes flipOutX {
    0% {
        transform: perspective(400px) rotateX(0deg);
        opacity: 1;
    }
	100% {
        transform: perspective(400px) rotateX(90deg);
        opacity: 0;
    }
}

.animated.flipOutX {
	-webkit-animation-name: flipOutX;
	-webkit-backface-visibility: visible !important;
	-moz-animation-name: flipOutX;
	-moz-backface-visibility: visible !important;
	-o-animation-name: flipOutX;
	-o-backface-visibility: visible !important;
	animation-name: flipOutX;
	backface-visibility: visible !important;
}
@-webkit-keyframes flipInY {
    0% {
        -webkit-transform: perspective(400px) rotateY(90deg);
        opacity: 0;
    }
    
    40% {
        -webkit-transform: perspective(400px) rotateY(-10deg);
    }
    
    70% {
        -webkit-transform: perspective(400px) rotateY(10deg);
    }
    
    100% {
        -webkit-transform: perspective(400px) rotateY(0deg);
        opacity: 1;
    }
}
@-moz-keyframes flipInY {
    0% {
        -moz-transform: perspective(400px) rotateY(90deg);
        opacity: 0;
    }
    
    40% {
        -moz-transform: perspective(400px) rotateY(-10deg);
    }
    
    70% {
        -moz-transform: perspective(400px) rotateY(10deg);
    }
    
    100% {
        -moz-transform: perspective(400px) rotateY(0deg);
        opacity: 1;
    }
}
@-o-keyframes flipInY {
    0% {
        -o-transform: perspective(400px) rotateY(90deg);
        opacity: 0;
    }
    
    40% {
        -o-transform: perspective(400px) rotateY(-10deg);
    }
    
    70% {
        -o-transform: perspective(400px) rotateY(10deg);
    }
    
    100% {
        -o-transform: perspective(400px) rotateY(0deg);
        opacity: 1;
    }
}
@keyframes flipInY {
    0% {
        transform: perspective(400px) rotateY(90deg);
        opacity: 0;
    }
    
    40% {
        transform: perspective(400px) rotateY(-10deg);
    }
    
    70% {
        transform: perspective(400px) rotateY(10deg);
    }
    
    100% {
        transform: perspective(400px) rotateY(0deg);
        opacity: 1;
    }
}

.animated.flipInY {
	-webkit-backface-visibility: visible !important;
	-webkit-animation-name: flipInY;
	-moz-backface-visibility: visible !important;
	-moz-animation-name: flipInY;
	-o-backface-visibility: visible !important;
	-o-animation-name: flipInY;
	backface-visibility: visible !important;
	animation-name: flipInY;
}
@-webkit-keyframes flipOutY {
    0% {
        -webkit-transform: perspective(400px) rotateY(0deg);
        opacity: 1;
    }
	100% {
        -webkit-transform: perspective(400px) rotateY(90deg);
        opacity: 0;
    }
}
@-moz-keyframes flipOutY {
    0% {
        -moz-transform: perspective(400px) rotateY(0deg);
        opacity: 1;
    }
	100% {
        -moz-transform: perspective(400px) rotateY(90deg);
        opacity: 0;
    }
}
@-o-keyframes flipOutY {
    0% {
        -o-transform: perspective(400px) rotateY(0deg);
        opacity: 1;
    }
	100% {
        -o-transform: perspective(400px) rotateY(90deg);
        opacity: 0;
    }
}
@keyframes flipOutY {
    0% {
        transform: perspective(400px) rotateY(0deg);
        opacity: 1;
    }
	100% {
        transform: perspective(400px) rotateY(90deg);
        opacity: 0;
    }
}

.animated.flipOutY {
	-webkit-backface-visibility: visible !important;
	-webkit-animation-name: flipOutY;
	-moz-backface-visibility: visible !important;
	-moz-animation-name: flipOutY;
	-o-backface-visibility: visible !important;
	-o-animation-name: flipOutY;
	backface-visibility: visible !important;
	animation-name: flipOutY;
}
@-webkit-keyframes fadeIn {
	0% {opacity: 0;}	
	100% {opacity: 1;}
}

@-moz-keyframes fadeIn {
	0% {opacity: 0;}	
	100% {opacity: 1;}
}

@-o-keyframes fadeIn {
	0% {opacity: 0;}	
	100% {opacity: 1;}
}

@keyframes fadeIn {
	0% {opacity: 0;}	
	100% {opacity: 1;}
}

.animated.fadeIn {
	-webkit-animation-name: fadeIn;
	-moz-animation-name: fadeIn;
	-o-animation-name: fadeIn;
	animation-name: fadeIn;
}
@-webkit-keyframes fadeInUp {
	0% {
		opacity: 0;
		-webkit-transform: translateY(20px);
	}
	
	100% {
		opacity: 1;
		-webkit-transform: translateY(0);
	}
}

@-moz-keyframes fadeInUp {
	0% {
		opacity: 0;
		-moz-transform: translateY(20px);
	}
	
	100% {
		opacity: 1;
		-moz-transform: translateY(0);
	}
}

@-o-keyframes fadeInUp {
	0% {
		opacity: 0;
		-o-transform: translateY(20px);
	}
	
	100% {
		opacity: 1;
		-o-transform: translateY(0);
	}
}

@keyframes fadeInUp {
	0% {
		opacity: 0;
		transform: translateY(20px);
	}
	
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

.animated.fadeInUp {
	-webkit-animation-name: fadeInUp;
	-moz-animation-name: fadeInUp;
	-o-animation-name: fadeInUp;
	animation-name: fadeInUp;
}
@-webkit-keyframes fadeInDown {
	0% {
		opacity: 0;
		-webkit-transform: translateY(-20px);
	}
	
	100% {
		opacity: 1;
		-webkit-transform: translateY(0);
	}
}

@-moz-keyframes fadeInDown {
	0% {
		opacity: 0;
		-moz-transform: translateY(-20px);
	}
	
	100% {
		opacity: 1;
		-moz-transform: translateY(0);
	}
}

@-o-keyframes fadeInDown {
	0% {
		opacity: 0;
		-o-transform: translateY(-20px);
	}
	
	100% {
		opacity: 1;
		-o-transform: translateY(0);
	}
}

@keyframes fadeInDown {
	0% {
		opacity: 0;
		transform: translateY(-20px);
	}
	
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

.animated.fadeInDown {
	-webkit-animation-name: fadeInDown;
	-moz-animation-name: fadeInDown;
	-o-animation-name: fadeInDown;
	animation-name: fadeInDown;
}
@-webkit-keyframes fadeInLeft {
	0% {
		opacity: 0;
		-webkit-transform: translateX(-20px);
	}
	
	100% {
		opacity: 1;
		-webkit-transform: translateX(0);
	}
}

@-moz-keyframes fadeInLeft {
	0% {
		opacity: 0;
		-moz-transform: translateX(-20px);
	}
	
	100% {
		opacity: 1;
		-moz-transform: translateX(0);
	}
}

@-o-keyframes fadeInLeft {
	0% {
		opacity: 0;
		-o-transform: translateX(-20px);
	}
	
	100% {
		opacity: 1;
		-o-transform: translateX(0);
	}
}

@keyframes fadeInLeft {
	0% {
		opacity: 0;
		transform: translateX(-20px);
	}
	
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}

.animated.fadeInLeft {
	-webkit-animation-name: fadeInLeft;
	-moz-animation-name: fadeInLeft;
	-o-animation-name: fadeInLeft;
	animation-name: fadeInLeft;
}
@-webkit-keyframes fadeInRight {
	0% {
		opacity: 0;
		-webkit-transform: translateX(20px);
	}
	
	100% {
		opacity: 1;
		-webkit-transform: translateX(0);
	}
}

@-moz-keyframes fadeInRight {
	0% {
		opacity: 0;
		-moz-transform: translateX(20px);
	}
	
	100% {
		opacity: 1;
		-moz-transform: translateX(0);
	}
}

@-o-keyframes fadeInRight {
	0% {
		opacity: 0;
		-o-transform: translateX(20px);
	}
	
	100% {
		opacity: 1;
		-o-transform: translateX(0);
	}
}

@keyframes fadeInRight {
	0% {
		opacity: 0;
		transform: translateX(20px);
	}
	
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}

.animated.fadeInRight {
	-webkit-animation-name: fadeInRight;
	-moz-animation-name: fadeInRight;
	-o-animation-name: fadeInRight;
	animation-name: fadeInRight;
}
@-webkit-keyframes fadeInUpBig {
	0% {
		opacity: 0;
		-webkit-transform: translateY(2000px);
	}
	
	100% {
		opacity: 1;
		-webkit-transform: translateY(0);
	}
}

@-moz-keyframes fadeInUpBig {
	0% {
		opacity: 0;
		-moz-transform: translateY(2000px);
	}
	
	100% {
		opacity: 1;
		-moz-transform: translateY(0);
	}
}

@-o-keyframes fadeInUpBig {
	0% {
		opacity: 0;
		-o-transform: translateY(2000px);
	}
	
	100% {
		opacity: 1;
		-o-transform: translateY(0);
	}
}

@keyframes fadeInUpBig {
	0% {
		opacity: 0;
		transform: translateY(2000px);
	}
	
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

.animated.fadeInUpBig {
	-webkit-animation-name: fadeInUpBig;
	-moz-animation-name: fadeInUpBig;
	-o-animation-name: fadeInUpBig;
	animation-name: fadeInUpBig;
}
@-webkit-keyframes fadeInDownBig {
	0% {
		opacity: 0;
		-webkit-transform: translateY(-2000px);
	}
	
	100% {
		opacity: 1;
		-webkit-transform: translateY(0);
	}
}

@-moz-keyframes fadeInDownBig {
	0% {
		opacity: 0;
		-moz-transform: translateY(-2000px);
	}
	
	100% {
		opacity: 1;
		-moz-transform: translateY(0);
	}
}

@-o-keyframes fadeInDownBig {
	0% {
		opacity: 0;
		-o-transform: translateY(-2000px);
	}
	
	100% {
		opacity: 1;
		-o-transform: translateY(0);
	}
}

@keyframes fadeInDownBig {
	0% {
		opacity: 0;
		transform: translateY(-2000px);
	}
	
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

.animated.fadeInDownBig {
	-webkit-animation-name: fadeInDownBig;
	-moz-animation-name: fadeInDownBig;
	-o-animation-name: fadeInDownBig;
	animation-name: fadeInDownBig;
}
@-webkit-keyframes fadeInLeftBig {
	0% {
		opacity: 0;
		-webkit-transform: translateX(-2000px);
	}
	
	100% {
		opacity: 1;
		-webkit-transform: translateX(0);
	}
}
@-moz-keyframes fadeInLeftBig {
	0% {
		opacity: 0;
		-moz-transform: translateX(-2000px);
	}
	
	100% {
		opacity: 1;
		-moz-transform: translateX(0);
	}
}
@-o-keyframes fadeInLeftBig {
	0% {
		opacity: 0;
		-o-transform: translateX(-2000px);
	}
	
	100% {
		opacity: 1;
		-o-transform: translateX(0);
	}
}
@keyframes fadeInLeftBig {
	0% {
		opacity: 0;
		transform: translateX(-2000px);
	}
	
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}

.animated.fadeInLeftBig {
	-webkit-animation-name: fadeInLeftBig;
	-moz-animation-name: fadeInLeftBig;
	-o-animation-name: fadeInLeftBig;
	animation-name: fadeInLeftBig;
}
@-webkit-keyframes fadeInRightBig {
	0% {
		opacity: 0;
		-webkit-transform: translateX(2000px);
	}
	
	100% {
		opacity: 1;
		-webkit-transform: translateX(0);
	}
}

@-moz-keyframes fadeInRightBig {
	0% {
		opacity: 0;
		-moz-transform: translateX(2000px);
	}
	
	100% {
		opacity: 1;
		-moz-transform: translateX(0);
	}
}

@-o-keyframes fadeInRightBig {
	0% {
		opacity: 0;
		-o-transform: translateX(2000px);
	}
	
	100% {
		opacity: 1;
		-o-transform: translateX(0);
	}
}

@keyframes fadeInRightBig {
	0% {
		opacity: 0;
		transform: translateX(2000px);
	}
	
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}

.animated.fadeInRightBig {
	-webkit-animation-name: fadeInRightBig;
	-moz-animation-name: fadeInRightBig;
	-o-animation-name: fadeInRightBig;
	animation-name: fadeInRightBig;
}
@-webkit-keyframes fadeOut {
	0% {opacity: 1;}
	100% {opacity: 0;}
}

@-moz-keyframes fadeOut {
	0% {opacity: 1;}
	100% {opacity: 0;}
}

@-o-keyframes fadeOut {
	0% {opacity: 1;}
	100% {opacity: 0;}
}

@keyframes fadeOut {
	0% {opacity: 1;}
	100% {opacity: 0;}
}

.animated.fadeOut {
	-webkit-animation-name: fadeOut;
	-moz-animation-name: fadeOut;
	-o-animation-name: fadeOut;
	animation-name: fadeOut;
}
@-webkit-keyframes fadeOutUp {
	0% {
		opacity: 1;
		-webkit-transform: translateY(0);
	}
	
	100% {
		opacity: 0;
		-webkit-transform: translateY(-20px);
	}
}
@-moz-keyframes fadeOutUp {
	0% {
		opacity: 1;
		-moz-transform: translateY(0);
	}
	
	100% {
		opacity: 0;
		-moz-transform: translateY(-20px);
	}
}
@-o-keyframes fadeOutUp {
	0% {
		opacity: 1;
		-o-transform: translateY(0);
	}
	
	100% {
		opacity: 0;
		-o-transform: translateY(-20px);
	}
}
@keyframes fadeOutUp {
	0% {
		opacity: 1;
		transform: translateY(0);
	}
	
	100% {
		opacity: 0;
		transform: translateY(-20px);
	}
}

.animated.fadeOutUp {
	-webkit-animation-name: fadeOutUp;
	-moz-animation-name: fadeOutUp;
	-o-animation-name: fadeOutUp;
	animation-name: fadeOutUp;
}
@-webkit-keyframes fadeOutDown {
	0% {
		opacity: 1;
		-webkit-transform: translateY(0);
	}
	
	100% {
		opacity: 0;
		-webkit-transform: translateY(20px);
	}
}

@-moz-keyframes fadeOutDown {
	0% {
		opacity: 1;
		-moz-transform: translateY(0);
	}
	
	100% {
		opacity: 0;
		-moz-transform: translateY(20px);
	}
}

@-o-keyframes fadeOutDown {
	0% {
		opacity: 1;
		-o-transform: translateY(0);
	}
	
	100% {
		opacity: 0;
		-o-transform: translateY(20px);
	}
}

@keyframes fadeOutDown {
	0% {
		opacity: 1;
		transform: translateY(0);
	}
	
	100% {
		opacity: 0;
		transform: translateY(20px);
	}
}

.animated.fadeOutDown {
	-webkit-animation-name: fadeOutDown;
	-moz-animation-name: fadeOutDown;
	-o-animation-name: fadeOutDown;
	animation-name: fadeOutDown;
}
@-webkit-keyframes fadeOutLeft {
	0% {
		opacity: 1;
		-webkit-transform: translateX(0);
	}
	
	100% {
		opacity: 0;
		-webkit-transform: translateX(-20px);
	}
}

@-moz-keyframes fadeOutLeft {
	0% {
		opacity: 1;
		-moz-transform: translateX(0);
	}
	
	100% {
		opacity: 0;
		-moz-transform: translateX(-20px);
	}
}

@-o-keyframes fadeOutLeft {
	0% {
		opacity: 1;
		-o-transform: translateX(0);
	}
	
	100% {
		opacity: 0;
		-o-transform: translateX(-20px);
	}
}

@keyframes fadeOutLeft {
	0% {
		opacity: 1;
		transform: translateX(0);
	}
	
	100% {
		opacity: 0;
		transform: translateX(-20px);
	}
}

.animated.fadeOutLeft {
	-webkit-animation-name: fadeOutLeft;
	-moz-animation-name: fadeOutLeft;
	-o-animation-name: fadeOutLeft;
	animation-name: fadeOutLeft;
}
@-webkit-keyframes fadeOutRight {
	0% {
		opacity: 1;
		-webkit-transform: translateX(0);
	}
	
	100% {
		opacity: 0;
		-webkit-transform: translateX(20px);
	}
}

@-moz-keyframes fadeOutRight {
	0% {
		opacity: 1;
		-moz-transform: translateX(0);
	}
	
	100% {
		opacity: 0;
		-moz-transform: translateX(20px);
	}
}

@-o-keyframes fadeOutRight {
	0% {
		opacity: 1;
		-o-transform: translateX(0);
	}
	
	100% {
		opacity: 0;
		-o-transform: translateX(20px);
	}
}

@keyframes fadeOutRight {
	0% {
		opacity: 1;
		transform: translateX(0);
	}
	
	100% {
		opacity: 0;
		transform: translateX(20px);
	}
}

.animated.fadeOutRight {
	-webkit-animation-name: fadeOutRight;
	-moz-animation-name: fadeOutRight;
	-o-animation-name: fadeOutRight;
	animation-name: fadeOutRight;
}
@-webkit-keyframes fadeOutUpBig {
	0% {
		opacity: 1;
		-webkit-transform: translateY(0);
	}
	
	100% {
		opacity: 0;
		-webkit-transform: translateY(-2000px);
	}
}

@-moz-keyframes fadeOutUpBig {
	0% {
		opacity: 1;
		-moz-transform: translateY(0);
	}
	
	100% {
		opacity: 0;
		-moz-transform: translateY(-2000px);
	}
}

@-o-keyframes fadeOutUpBig {
	0% {
		opacity: 1;
		-o-transform: translateY(0);
	}
	
	100% {
		opacity: 0;
		-o-transform: translateY(-2000px);
	}
}

@keyframes fadeOutUpBig {
	0% {
		opacity: 1;
		transform: translateY(0);
	}
	
	100% {
		opacity: 0;
		transform: translateY(-2000px);
	}
}

.animated.fadeOutUpBig {
	-webkit-animation-name: fadeOutUpBig;
	-moz-animation-name: fadeOutUpBig;
	-o-animation-name: fadeOutUpBig;
	animation-name: fadeOutUpBig;
}
@-webkit-keyframes fadeOutDownBig {
	0% {
		opacity: 1;
		-webkit-transform: translateY(0);
	}
	
	100% {
		opacity: 0;
		-webkit-transform: translateY(2000px);
	}
}

@-moz-keyframes fadeOutDownBig {
	0% {
		opacity: 1;
		-moz-transform: translateY(0);
	}
	
	100% {
		opacity: 0;
		-moz-transform: translateY(2000px);
	}
}

@-o-keyframes fadeOutDownBig {
	0% {
		opacity: 1;
		-o-transform: translateY(0);
	}
	
	100% {
		opacity: 0;
		-o-transform: translateY(2000px);
	}
}

@keyframes fadeOutDownBig {
	0% {
		opacity: 1;
		transform: translateY(0);
	}
	
	100% {
		opacity: 0;
		transform: translateY(2000px);
	}
}

.animated.fadeOutDownBig {
	-webkit-animation-name: fadeOutDownBig;
	-moz-animation-name: fadeOutDownBig;
	-o-animation-name: fadeOutDownBig;
	animation-name: fadeOutDownBig;
}
@-webkit-keyframes fadeOutLeftBig {
	0% {
		opacity: 1;
		-webkit-transform: translateX(0);
	}
	
	100% {
		opacity: 0;
		-webkit-transform: translateX(-2000px);
	}
}

@-moz-keyframes fadeOutLeftBig {
	0% {
		opacity: 1;
		-moz-transform: translateX(0);
	}
	
	100% {
		opacity: 0;
		-moz-transform: translateX(-2000px);
	}
}

@-o-keyframes fadeOutLeftBig {
	0% {
		opacity: 1;
		-o-transform: translateX(0);
	}
	
	100% {
		opacity: 0;
		-o-transform: translateX(-2000px);
	}
}

@keyframes fadeOutLeftBig {
	0% {
		opacity: 1;
		transform: translateX(0);
	}
	
	100% {
		opacity: 0;
		transform: translateX(-2000px);
	}
}

.animated.fadeOutLeftBig {
	-webkit-animation-name: fadeOutLeftBig;
	-moz-animation-name: fadeOutLeftBig;
	-o-animation-name: fadeOutLeftBig;
	animation-name: fadeOutLeftBig;
}
@-webkit-keyframes fadeOutRightBig {
	0% {
		opacity: 1;
		-webkit-transform: translateX(0);
	}
	
	100% {
		opacity: 0;
		-webkit-transform: translateX(2000px);
	}
}
@-moz-keyframes fadeOutRightBig {
	0% {
		opacity: 1;
		-moz-transform: translateX(0);
	}
	
	100% {
		opacity: 0;
		-moz-transform: translateX(2000px);
	}
}
@-o-keyframes fadeOutRightBig {
	0% {
		opacity: 1;
		-o-transform: translateX(0);
	}
	
	100% {
		opacity: 0;
		-o-transform: translateX(2000px);
	}
}
@keyframes fadeOutRightBig {
	0% {
		opacity: 1;
		transform: translateX(0);
	}
	
	100% {
		opacity: 0;
		transform: translateX(2000px);
	}
}

.animated.fadeOutRightBig {
	-webkit-animation-name: fadeOutRightBig;
	-moz-animation-name: fadeOutRightBig;
	-o-animation-name: fadeOutRightBig;
	animation-name: fadeOutRightBig;
}
@-webkit-keyframes bounceIn {
	0% {
		opacity: 0;
		-webkit-transform: scale(.3);
	}
	
	50% {
		opacity: 1;
		-webkit-transform: scale(1.05);
	}
	
	70% {
		-webkit-transform: scale(.9);
	}
	
	100% {
		-webkit-transform: scale(1);
	}
}

@-moz-keyframes bounceIn {
	0% {
		opacity: 0;
		-moz-transform: scale(.3);
	}
	
	50% {
		opacity: 1;
		-moz-transform: scale(1.05);
	}
	
	70% {
		-moz-transform: scale(.9);
	}
	
	100% {
		-moz-transform: scale(1);
	}
}

@-o-keyframes bounceIn {
	0% {
		opacity: 0;
		-o-transform: scale(.3);
	}
	
	50% {
		opacity: 1;
		-o-transform: scale(1.05);
	}
	
	70% {
		-o-transform: scale(.9);
	}
	
	100% {
		-o-transform: scale(1);
	}
}

@keyframes bounceIn {
	0% {
		opacity: 0;
		transform: scale(.3);
	}
	
	50% {
		opacity: 1;
		transform: scale(1.05);
	}
	
	70% {
		transform: scale(.9);
	}
	
	100% {
		transform: scale(1);
	}
}

.animated.bounceIn {
	-webkit-animation-name: bounceIn;
	-moz-animation-name: bounceIn;
	-o-animation-name: bounceIn;
	animation-name: bounceIn;
}
@-webkit-keyframes bounceInUp {
	0% {
		opacity: 0;
		-webkit-transform: translateY(2000px);
	}
	
	60% {
		opacity: 1;
		-webkit-transform: translateY(-30px);
	}
	
	80% {
		-webkit-transform: translateY(10px);
	}
	
	100% {
		-webkit-transform: translateY(0);
	}
}
@-moz-keyframes bounceInUp {
	0% {
		opacity: 0;
		-moz-transform: translateY(2000px);
	}
	
	60% {
		opacity: 1;
		-moz-transform: translateY(-30px);
	}
	
	80% {
		-moz-transform: translateY(10px);
	}
	
	100% {
		-moz-transform: translateY(0);
	}
}

@-o-keyframes bounceInUp {
	0% {
		opacity: 0;
		-o-transform: translateY(2000px);
	}
	
	60% {
		opacity: 1;
		-o-transform: translateY(-30px);
	}
	
	80% {
		-o-transform: translateY(10px);
	}
	
	100% {
		-o-transform: translateY(0);
	}
}

@keyframes bounceInUp {
	0% {
		opacity: 0;
		transform: translateY(2000px);
	}
	
	60% {
		opacity: 1;
		transform: translateY(-30px);
	}
	
	80% {
		transform: translateY(10px);
	}
	
	100% {
		transform: translateY(0);
	}
}

.animated.bounceInUp {
	-webkit-animation-name: bounceInUp;
	-moz-animation-name: bounceInUp;
	-o-animation-name: bounceInUp;
	animation-name: bounceInUp;
}
@-webkit-keyframes bounceInDown {
	0% {
		opacity: 0;
		-webkit-transform: translateY(-2000px);
	}
	
	60% {
		opacity: 1;
		-webkit-transform: translateY(30px);
	}
	
	80% {
		-webkit-transform: translateY(-10px);
	}
	
	100% {
		-webkit-transform: translateY(0);
	}
}

@-moz-keyframes bounceInDown {
	0% {
		opacity: 0;
		-moz-transform: translateY(-2000px);
	}
	
	60% {
		opacity: 1;
		-moz-transform: translateY(30px);
	}
	
	80% {
		-moz-transform: translateY(-10px);
	}
	
	100% {
		-moz-transform: translateY(0);
	}
}

@-o-keyframes bounceInDown {
	0% {
		opacity: 0;
		-o-transform: translateY(-2000px);
	}
	
	60% {
		opacity: 1;
		-o-transform: translateY(30px);
	}
	
	80% {
		-o-transform: translateY(-10px);
	}
	
	100% {
		-o-transform: translateY(0);
	}
}

@keyframes bounceInDown {
	0% {
		opacity: 0;
		transform: translateY(-2000px);
	}
	
	60% {
		opacity: 1;
		transform: translateY(30px);
	}
	
	80% {
		transform: translateY(-10px);
	}
	
	100% {
		transform: translateY(0);
	}
}

.animated.bounceInDown {
	-webkit-animation-name: bounceInDown;
	-moz-animation-name: bounceInDown;
	-o-animation-name: bounceInDown;
	animation-name: bounceInDown;
}
@-webkit-keyframes bounceInLeft {
	0% {
		opacity: 0;
		-webkit-transform: translateX(-2000px);
	}
	
	60% {
		opacity: 1;
		-webkit-transform: translateX(30px);
	}
	
	80% {
		-webkit-transform: translateX(-10px);
	}
	
	100% {
		-webkit-transform: translateX(0);
	}
}

@-moz-keyframes bounceInLeft {
	0% {
		opacity: 0;
		-moz-transform: translateX(-2000px);
	}
	
	60% {
		opacity: 1;
		-moz-transform: translateX(30px);
	}
	
	80% {
		-moz-transform: translateX(-10px);
	}
	
	100% {
		-moz-transform: translateX(0);
	}
}

@-o-keyframes bounceInLeft {
	0% {
		opacity: 0;
		-o-transform: translateX(-2000px);
	}
	
	60% {
		opacity: 1;
		-o-transform: translateX(30px);
	}
	
	80% {
		-o-transform: translateX(-10px);
	}
	
	100% {
		-o-transform: translateX(0);
	}
}

@keyframes bounceInLeft {
	0% {
		opacity: 0;
		transform: translateX(-2000px);
	}
	
	60% {
		opacity: 1;
		transform: translateX(30px);
	}
	
	80% {
		transform: translateX(-10px);
	}
	
	100% {
		transform: translateX(0);
	}
}

.animated.bounceInLeft {
	-webkit-animation-name: bounceInLeft;
	-moz-animation-name: bounceInLeft;
	-o-animation-name: bounceInLeft;
	animation-name: bounceInLeft;
}
@-webkit-keyframes bounceInRight {
	0% {
		opacity: 0;
		-webkit-transform: translateX(2000px);
	}
	
	60% {
		opacity: 1;
		-webkit-transform: translateX(-30px);
	}
	
	80% {
		-webkit-transform: translateX(10px);
	}
	
	100% {
		-webkit-transform: translateX(0);
	}
}

@-moz-keyframes bounceInRight {
	0% {
		opacity: 0;
		-moz-transform: translateX(2000px);
	}
	
	60% {
		opacity: 1;
		-moz-transform: translateX(-30px);
	}
	
	80% {
		-moz-transform: translateX(10px);
	}
	
	100% {
		-moz-transform: translateX(0);
	}
}

@-o-keyframes bounceInRight {
	0% {
		opacity: 0;
		-o-transform: translateX(2000px);
	}
	
	60% {
		opacity: 1;
		-o-transform: translateX(-30px);
	}
	
	80% {
		-o-transform: translateX(10px);
	}
	
	100% {
		-o-transform: translateX(0);
	}
}

@keyframes bounceInRight {
	0% {
		opacity: 0;
		transform: translateX(2000px);
	}
	
	60% {
		opacity: 1;
		transform: translateX(-30px);
	}
	
	80% {
		transform: translateX(10px);
	}
	
	100% {
		transform: translateX(0);
	}
}

.animated.bounceInRight {
	-webkit-animation-name: bounceInRight;
	-moz-animation-name: bounceInRight;
	-o-animation-name: bounceInRight;
	animation-name: bounceInRight;
}
@-webkit-keyframes bounceOut {
	0% {
		-webkit-transform: scale(1);
	}
	
	25% {
		-webkit-transform: scale(.95);
	}
	
	50% {
		opacity: 1;
		-webkit-transform: scale(1.1);
	}
	
	100% {
		opacity: 0;
		-webkit-transform: scale(.3);
	}	
}

@-moz-keyframes bounceOut {
	0% {
		-moz-transform: scale(1);
	}
	
	25% {
		-moz-transform: scale(.95);
	}
	
	50% {
		opacity: 1;
		-moz-transform: scale(1.1);
	}
	
	100% {
		opacity: 0;
		-moz-transform: scale(.3);
	}	
}

@-o-keyframes bounceOut {
	0% {
		-o-transform: scale(1);
	}
	
	25% {
		-o-transform: scale(.95);
	}
	
	50% {
		opacity: 1;
		-o-transform: scale(1.1);
	}
	
	100% {
		opacity: 0;
		-o-transform: scale(.3);
	}	
}

@keyframes bounceOut {
	0% {
		transform: scale(1);
	}
	
	25% {
		transform: scale(.95);
	}
	
	50% {
		opacity: 1;
		transform: scale(1.1);
	}
	
	100% {
		opacity: 0;
		transform: scale(.3);
	}	
}

.animated.bounceOut {
	-webkit-animation-name: bounceOut;
	-moz-animation-name: bounceOut;
	-o-animation-name: bounceOut;
	animation-name: bounceOut;
}
@-webkit-keyframes bounceOutUp {
	0% {
		-webkit-transform: translateY(0);
	}
	
	20% {
		opacity: 1;
		-webkit-transform: translateY(20px);
	}
	
	100% {
		opacity: 0;
		-webkit-transform: translateY(-2000px);
	}
}

@-moz-keyframes bounceOutUp {
	0% {
		-moz-transform: translateY(0);
	}
	
	20% {
		opacity: 1;
		-moz-transform: translateY(20px);
	}
	
	100% {
		opacity: 0;
		-moz-transform: translateY(-2000px);
	}
}

@-o-keyframes bounceOutUp {
	0% {
		-o-transform: translateY(0);
	}
	
	20% {
		opacity: 1;
		-o-transform: translateY(20px);
	}
	
	100% {
		opacity: 0;
		-o-transform: translateY(-2000px);
	}
}

@keyframes bounceOutUp {
	0% {
		transform: translateY(0);
	}
	
	20% {
		opacity: 1;
		transform: translateY(20px);
	}
	
	100% {
		opacity: 0;
		transform: translateY(-2000px);
	}
}

.animated.bounceOutUp {
	-webkit-animation-name: bounceOutUp;
	-moz-animation-name: bounceOutUp;
	-o-animation-name: bounceOutUp;
	animation-name: bounceOutUp;
}
@-webkit-keyframes bounceOutDown {
	0% {
		-webkit-transform: translateY(0);
	}
	
	20% {
		opacity: 1;
		-webkit-transform: translateY(-20px);
	}
	
	100% {
		opacity: 0;
		-webkit-transform: translateY(2000px);
	}
}

@-moz-keyframes bounceOutDown {
	0% {
		-moz-transform: translateY(0);
	}
	
	20% {
		opacity: 1;
		-moz-transform: translateY(-20px);
	}
	
	100% {
		opacity: 0;
		-moz-transform: translateY(2000px);
	}
}

@-o-keyframes bounceOutDown {
	0% {
		-o-transform: translateY(0);
	}
	
	20% {
		opacity: 1;
		-o-transform: translateY(-20px);
	}
	
	100% {
		opacity: 0;
		-o-transform: translateY(2000px);
	}
}

@keyframes bounceOutDown {
	0% {
		transform: translateY(0);
	}
	
	20% {
		opacity: 1;
		transform: translateY(-20px);
	}
	
	100% {
		opacity: 0;
		transform: translateY(2000px);
	}
}

.animated.bounceOutDown {
	-webkit-animation-name: bounceOutDown;
	-moz-animation-name: bounceOutDown;
	-o-animation-name: bounceOutDown;
	animation-name: bounceOutDown;
}
@-webkit-keyframes bounceOutLeft {
	0% {
		-webkit-transform: translateX(0);
	}
	
	20% {
		opacity: 1;
		-webkit-transform: translateX(20px);
	}
	
	100% {
		opacity: 0;
		-webkit-transform: translateX(-2000px);
	}
}

@-moz-keyframes bounceOutLeft {
	0% {
		-moz-transform: translateX(0);
	}
	
	20% {
		opacity: 1;
		-moz-transform: translateX(20px);
	}
	
	100% {
		opacity: 0;
		-moz-transform: translateX(-2000px);
	}
}

@-o-keyframes bounceOutLeft {
	0% {
		-o-transform: translateX(0);
	}
	
	20% {
		opacity: 1;
		-o-transform: translateX(20px);
	}
	
	100% {
		opacity: 0;
		-o-transform: translateX(-2000px);
	}
}

@keyframes bounceOutLeft {
	0% {
		transform: translateX(0);
	}
	
	20% {
		opacity: 1;
		transform: translateX(20px);
	}
	
	100% {
		opacity: 0;
		transform: translateX(-2000px);
	}
}

.animated.bounceOutLeft {
	-webkit-animation-name: bounceOutLeft;
	-moz-animation-name: bounceOutLeft;
	-o-animation-name: bounceOutLeft;
	animation-name: bounceOutLeft;
}
@-webkit-keyframes bounceOutRight {
	0% {
		-webkit-transform: translateX(0);
	}
	
	20% {
		opacity: 1;
		-webkit-transform: translateX(-20px);
	}
	
	100% {
		opacity: 0;
		-webkit-transform: translateX(2000px);
	}
}

@-moz-keyframes bounceOutRight {
	0% {
		-moz-transform: translateX(0);
	}
	
	20% {
		opacity: 1;
		-moz-transform: translateX(-20px);
	}
	
	100% {
		opacity: 0;
		-moz-transform: translateX(2000px);
	}
}

@-o-keyframes bounceOutRight {
	0% {
		-o-transform: translateX(0);
	}
	
	20% {
		opacity: 1;
		-o-transform: translateX(-20px);
	}
	
	100% {
		opacity: 0;
		-o-transform: translateX(2000px);
	}
}

@keyframes bounceOutRight {
	0% {
		transform: translateX(0);
	}
	
	20% {
		opacity: 1;
		transform: translateX(-20px);
	}
	
	100% {
		opacity: 0;
		transform: translateX(2000px);
	}
}

.animated.bounceOutRight {
	-webkit-animation-name: bounceOutRight;
	-moz-animation-name: bounceOutRight;
	-o-animation-name: bounceOutRight;
	animation-name: bounceOutRight;
}
@-webkit-keyframes rotateIn {
	0% {
		-webkit-transform-origin: center center;
		-webkit-transform: rotate(-200deg);
		opacity: 0;
	}
	
	100% {
		-webkit-transform-origin: center center;
		-webkit-transform: rotate(0);
		opacity: 1;
	}
}
@-moz-keyframes rotateIn {
	0% {
		-moz-transform-origin: center center;
		-moz-transform: rotate(-200deg);
		opacity: 0;
	}
	
	100% {
		-moz-transform-origin: center center;
		-moz-transform: rotate(0);
		opacity: 1;
	}
}
@-o-keyframes rotateIn {
	0% {
		-o-transform-origin: center center;
		-o-transform: rotate(-200deg);
		opacity: 0;
	}
	
	100% {
		-o-transform-origin: center center;
		-o-transform: rotate(0);
		opacity: 1;
	}
}
@keyframes rotateIn {
	0% {
		transform-origin: center center;
		transform: rotate(-200deg);
		opacity: 0;
	}
	
	100% {
		transform-origin: center center;
		transform: rotate(0);
		opacity: 1;
	}
}

.animated.rotateIn {
	-webkit-animation-name: rotateIn;
	-moz-animation-name: rotateIn;
	-o-animation-name: rotateIn;
	animation-name: rotateIn;
}
@-webkit-keyframes rotateInUpLeft {
	0% {
		-webkit-transform-origin: left bottom;
		-webkit-transform: rotate(90deg);
		opacity: 0;
	}
	
	100% {
		-webkit-transform-origin: left bottom;
		-webkit-transform: rotate(0);
		opacity: 1;
	}
}

@-moz-keyframes rotateInUpLeft {
	0% {
		-moz-transform-origin: left bottom;
		-moz-transform: rotate(90deg);
		opacity: 0;
	}
	
	100% {
		-moz-transform-origin: left bottom;
		-moz-transform: rotate(0);
		opacity: 1;
	}
}

@-o-keyframes rotateInUpLeft {
	0% {
		-o-transform-origin: left bottom;
		-o-transform: rotate(90deg);
		opacity: 0;
	}
	
	100% {
		-o-transform-origin: left bottom;
		-o-transform: rotate(0);
		opacity: 1;
	}
}

@keyframes rotateInUpLeft {
	0% {
		transform-origin: left bottom;
		transform: rotate(90deg);
		opacity: 0;
	}
	
	100% {
		transform-origin: left bottom;
		transform: rotate(0);
		opacity: 1;
	}
}

.animated.rotateInUpLeft {
	-webkit-animation-name: rotateInUpLeft;
	-moz-animation-name: rotateInUpLeft;
	-o-animation-name: rotateInUpLeft;
	animation-name: rotateInUpLeft;
}
@-webkit-keyframes rotateInDownLeft {
	0% {
		-webkit-transform-origin: left bottom;
		-webkit-transform: rotate(-90deg);
		opacity: 0;
	}
	
	100% {
		-webkit-transform-origin: left bottom;
		-webkit-transform: rotate(0);
		opacity: 1;
	}
}

@-moz-keyframes rotateInDownLeft {
	0% {
		-moz-transform-origin: left bottom;
		-moz-transform: rotate(-90deg);
		opacity: 0;
	}
	
	100% {
		-moz-transform-origin: left bottom;
		-moz-transform: rotate(0);
		opacity: 1;
	}
}

@-o-keyframes rotateInDownLeft {
	0% {
		-o-transform-origin: left bottom;
		-o-transform: rotate(-90deg);
		opacity: 0;
	}
	
	100% {
		-o-transform-origin: left bottom;
		-o-transform: rotate(0);
		opacity: 1;
	}
}

@keyframes rotateInDownLeft {
	0% {
		transform-origin: left bottom;
		transform: rotate(-90deg);
		opacity: 0;
	}
	
	100% {
		transform-origin: left bottom;
		transform: rotate(0);
		opacity: 1;
	}
}

.animated.rotateInDownLeft {
	-webkit-animation-name: rotateInDownLeft;
	-moz-animation-name: rotateInDownLeft;
	-o-animation-name: rotateInDownLeft;
	animation-name: rotateInDownLeft;
}
@-webkit-keyframes rotateInUpRight {
	0% {
		-webkit-transform-origin: right bottom;
		-webkit-transform: rotate(-90deg);
		opacity: 0;
	}
	
	100% {
		-webkit-transform-origin: right bottom;
		-webkit-transform: rotate(0);
		opacity: 1;
	}
}

@-moz-keyframes rotateInUpRight {
	0% {
		-moz-transform-origin: right bottom;
		-moz-transform: rotate(-90deg);
		opacity: 0;
	}
	
	100% {
		-moz-transform-origin: right bottom;
		-moz-transform: rotate(0);
		opacity: 1;
	}
}

@-o-keyframes rotateInUpRight {
	0% {
		-o-transform-origin: right bottom;
		-o-transform: rotate(-90deg);
		opacity: 0;
	}
	
	100% {
		-o-transform-origin: right bottom;
		-o-transform: rotate(0);
		opacity: 1;
	}
}

@keyframes rotateInUpRight {
	0% {
		transform-origin: right bottom;
		transform: rotate(-90deg);
		opacity: 0;
	}
	
	100% {
		transform-origin: right bottom;
		transform: rotate(0);
		opacity: 1;
	}
}

.animated.rotateInUpRight {
	-webkit-animation-name: rotateInUpRight;
	-moz-animation-name: rotateInUpRight;
	-o-animation-name: rotateInUpRight;
	animation-name: rotateInUpRight;
}
@-webkit-keyframes rotateInDownRight {
	0% {
		-webkit-transform-origin: right bottom;
		-webkit-transform: rotate(90deg);
		opacity: 0;
	}
	
	100% {
		-webkit-transform-origin: right bottom;
		-webkit-transform: rotate(0);
		opacity: 1;
	}
}

@-moz-keyframes rotateInDownRight {
	0% {
		-moz-transform-origin: right bottom;
		-moz-transform: rotate(90deg);
		opacity: 0;
	}
	
	100% {
		-moz-transform-origin: right bottom;
		-moz-transform: rotate(0);
		opacity: 1;
	}
}

@-o-keyframes rotateInDownRight {
	0% {
		-o-transform-origin: right bottom;
		-o-transform: rotate(90deg);
		opacity: 0;
	}
	
	100% {
		-o-transform-origin: right bottom;
		-o-transform: rotate(0);
		opacity: 1;
	}
}

@keyframes rotateInDownRight {
	0% {
		transform-origin: right bottom;
		transform: rotate(90deg);
		opacity: 0;
	}
	
	100% {
		transform-origin: right bottom;
		transform: rotate(0);
		opacity: 1;
	}
}

.animated.rotateInDownRight {
	-webkit-animation-name: rotateInDownRight;
	-moz-animation-name: rotateInDownRight;
	-o-animation-name: rotateInDownRight;
	animation-name: rotateInDownRight;
}
@-webkit-keyframes rotateOut {
	0% {
		-webkit-transform-origin: center center;
		-webkit-transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		-webkit-transform-origin: center center;
		-webkit-transform: rotate(200deg);
		opacity: 0;
	}
}

@-moz-keyframes rotateOut {
	0% {
		-moz-transform-origin: center center;
		-moz-transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		-moz-transform-origin: center center;
		-moz-transform: rotate(200deg);
		opacity: 0;
	}
}

@-o-keyframes rotateOut {
	0% {
		-o-transform-origin: center center;
		-o-transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		-o-transform-origin: center center;
		-o-transform: rotate(200deg);
		opacity: 0;
	}
}

@keyframes rotateOut {
	0% {
		transform-origin: center center;
		transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		transform-origin: center center;
		transform: rotate(200deg);
		opacity: 0;
	}
}

.animated.rotateOut {
	-webkit-animation-name: rotateOut;
	-moz-animation-name: rotateOut;
	-o-animation-name: rotateOut;
	animation-name: rotateOut;
}
@-webkit-keyframes rotateOutUpLeft {
	0% {
		-webkit-transform-origin: left bottom;
		-webkit-transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		-webkit-transform-origin: left bottom;
		-webkit-transform: rotate(-90deg);
		opacity: 0;
	}
}

@-moz-keyframes rotateOutUpLeft {
	0% {
		-moz-transform-origin: left bottom;
		-moz-transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		-moz-transform-origin: left bottom;
		-moz-transform: rotate(-90deg);
		opacity: 0;
	}
}

@-o-keyframes rotateOutUpLeft {
	0% {
		-o-transform-origin: left bottom;
		-o-transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		-o-transform-origin: left bottom;
		-o-transform: rotate(-90deg);
		opacity: 0;
	}
}

@keyframes rotateOutUpLeft {
	0% {
		transform-origin: left bottom;
		transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		transform-origin: left bottom;
		transform: rotate(-90deg);
		opacity: 0;
	}
}

.animated.rotateOutUpLeft {
	-webkit-animation-name: rotateOutUpLeft;
	-moz-animation-name: rotateOutUpLeft;
	-o-animation-name: rotateOutUpLeft;
	animation-name: rotateOutUpLeft;
}
@-webkit-keyframes rotateOutDownLeft {
	0% {
		-webkit-transform-origin: left bottom;
		-webkit-transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		-webkit-transform-origin: left bottom;
		-webkit-transform: rotate(90deg);
		opacity: 0;
	}
}

@-moz-keyframes rotateOutDownLeft {
	0% {
		-moz-transform-origin: left bottom;
		-moz-transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		-moz-transform-origin: left bottom;
		-moz-transform: rotate(90deg);
		opacity: 0;
	}
}

@-o-keyframes rotateOutDownLeft {
	0% {
		-o-transform-origin: left bottom;
		-o-transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		-o-transform-origin: left bottom;
		-o-transform: rotate(90deg);
		opacity: 0;
	}
}

@keyframes rotateOutDownLeft {
	0% {
		transform-origin: left bottom;
		transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		transform-origin: left bottom;
		transform: rotate(90deg);
		opacity: 0;
	}
}

.animated.rotateOutDownLeft {
	-webkit-animation-name: rotateOutDownLeft;
	-moz-animation-name: rotateOutDownLeft;
	-o-animation-name: rotateOutDownLeft;
	animation-name: rotateOutDownLeft;
}
@-webkit-keyframes rotateOutUpRight {
	0% {
		-webkit-transform-origin: right bottom;
		-webkit-transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		-webkit-transform-origin: right bottom;
		-webkit-transform: rotate(90deg);
		opacity: 0;
	}
}

@-moz-keyframes rotateOutUpRight {
	0% {
		-moz-transform-origin: right bottom;
		-moz-transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		-moz-transform-origin: right bottom;
		-moz-transform: rotate(90deg);
		opacity: 0;
	}
}

@-o-keyframes rotateOutUpRight {
	0% {
		-o-transform-origin: right bottom;
		-o-transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		-o-transform-origin: right bottom;
		-o-transform: rotate(90deg);
		opacity: 0;
	}
}

@keyframes rotateOutUpRight {
	0% {
		transform-origin: right bottom;
		transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		transform-origin: right bottom;
		transform: rotate(90deg);
		opacity: 0;
	}
}

.animated.rotateOutUpRight {
	-webkit-animation-name: rotateOutUpRight;
	-moz-animation-name: rotateOutUpRight;
	-o-animation-name: rotateOutUpRight;
	animation-name: rotateOutUpRight;
}
@-webkit-keyframes rotateOutDownRight {
	0% {
		-webkit-transform-origin: right bottom;
		-webkit-transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		-webkit-transform-origin: right bottom;
		-webkit-transform: rotate(-90deg);
		opacity: 0;
	}
}

@-moz-keyframes rotateOutDownRight {
	0% {
		-moz-transform-origin: right bottom;
		-moz-transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		-moz-transform-origin: right bottom;
		-moz-transform: rotate(-90deg);
		opacity: 0;
	}
}

@-o-keyframes rotateOutDownRight {
	0% {
		-o-transform-origin: right bottom;
		-o-transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		-o-transform-origin: right bottom;
		-o-transform: rotate(-90deg);
		opacity: 0;
	}
}

@keyframes rotateOutDownRight {
	0% {
		transform-origin: right bottom;
		transform: rotate(0);
		opacity: 1;
	}
	
	100% {
		transform-origin: right bottom;
		transform: rotate(-90deg);
		opacity: 0;
	}
}

.animated.rotateOutDownRight {
	-webkit-animation-name: rotateOutDownRight;
	-moz-animation-name: rotateOutDownRight;
	-o-animation-name: rotateOutDownRight;
	animation-name: rotateOutDownRight;
}
@-webkit-keyframes hinge {
	0% { -webkit-transform: rotate(0); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; }	
	20%, 60% { -webkit-transform: rotate(80deg); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; }	
	40% { -webkit-transform: rotate(60deg); -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; }	
	80% { -webkit-transform: rotate(60deg) translateY(0); opacity: 1; -webkit-transform-origin: top left; -webkit-animation-timing-function: ease-in-out; }	
	100% { -webkit-transform: translateY(700px); opacity: 0; }
}

@-moz-keyframes hinge {
	0% { -moz-transform: rotate(0); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; }	
	20%, 60% { -moz-transform: rotate(80deg); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; }	
	40% { -moz-transform: rotate(60deg); -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; }	
	80% { -moz-transform: rotate(60deg) translateY(0); opacity: 1; -moz-transform-origin: top left; -moz-animation-timing-function: ease-in-out; }	
	100% { -moz-transform: translateY(700px); opacity: 0; }
}

@-o-keyframes hinge {
	0% { -o-transform: rotate(0); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; }	
	20%, 60% { -o-transform: rotate(80deg); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; }	
	40% { -o-transform: rotate(60deg); -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; }	
	80% { -o-transform: rotate(60deg) translateY(0); opacity: 1; -o-transform-origin: top left; -o-animation-timing-function: ease-in-out; }	
	100% { -o-transform: translateY(700px); opacity: 0; }
}

@keyframes hinge {
	0% { transform: rotate(0); transform-origin: top left; animation-timing-function: ease-in-out; }	
	20%, 60% { transform: rotate(80deg); transform-origin: top left; animation-timing-function: ease-in-out; }	
	40% { transform: rotate(60deg); transform-origin: top left; animation-timing-function: ease-in-out; }	
	80% { transform: rotate(60deg) translateY(0); opacity: 1; transform-origin: top left; animation-timing-function: ease-in-out; }	
	100% { transform: translateY(700px); opacity: 0; }
}

.animated.hinge {
	-webkit-animation-name: hinge;
	-moz-animation-name: hinge;
	-o-animation-name: hinge;
	animation-name: hinge;
}
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes rollIn {
	0% { opacity: 0; -webkit-transform: translateX(-100%) rotate(-120deg); }
	100% { opacity: 1; -webkit-transform: translateX(0px) rotate(0deg); }
}

@-moz-keyframes rollIn {
	0% { opacity: 0; -moz-transform: translateX(-100%) rotate(-120deg); }
	100% { opacity: 1; -moz-transform: translateX(0px) rotate(0deg); }
}

@-o-keyframes rollIn {
	0% { opacity: 0; -o-transform: translateX(-100%) rotate(-120deg); }
	100% { opacity: 1; -o-transform: translateX(0px) rotate(0deg); }
}

@keyframes rollIn {
	0% { opacity: 0; transform: translateX(-100%) rotate(-120deg); }
	100% { opacity: 1; transform: translateX(0px) rotate(0deg); }
}

.animated.rollIn {
	-webkit-animation-name: rollIn;
	-moz-animation-name: rollIn;
	-o-animation-name: rollIn;
	animation-name: rollIn;
}
/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes rollOut {
    0% {
		opacity: 1;
		-webkit-transform: translateX(0px) rotate(0deg);
	}

    100% {
		opacity: 0;
		-webkit-transform: translateX(100%) rotate(120deg);
	}
}

@-moz-keyframes rollOut {
    0% {
		opacity: 1;
		-moz-transform: translateX(0px) rotate(0deg);
	}

    100% {
		opacity: 0;
		-moz-transform: translateX(100%) rotate(120deg);
	}
}

@-o-keyframes rollOut {
    0% {
		opacity: 1;
		-o-transform: translateX(0px) rotate(0deg);
	}

    100% {
		opacity: 0;
		-o-transform: translateX(100%) rotate(120deg);
	}
}

@keyframes rollOut {
    0% {
		opacity: 1;
		transform: translateX(0px) rotate(0deg);
	}

    100% {
		opacity: 0;
		transform: translateX(100%) rotate(120deg);
	}
}

.animated.rollOut {
	-webkit-animation-name: rollOut;
	-moz-animation-name: rollOut;
	-o-animation-name: rollOut;
	animation-name: rollOut;
}

/* originally authored by Angelo Rohit - https://github.com/angelorohit */

@-webkit-keyframes lightSpeedIn {
	0% { -webkit-transform: translateX(100%) skewX(-30deg); opacity: 0; }
	60% { -webkit-transform: translateX(-20%) skewX(30deg); opacity: 1; }
	80% { -webkit-transform: translateX(0%) skewX(-15deg); opacity: 1; }
	100% { -webkit-transform: translateX(0%) skewX(0deg); opacity: 1; }
}

@-moz-keyframes lightSpeedIn {
	0% { -moz-transform: translateX(100%) skewX(-30deg); opacity: 0; }
	60% { -moz-transform: translateX(-20%) skewX(30deg); opacity: 1; }
	80% { -moz-transform: translateX(0%) skewX(-15deg); opacity: 1; }
	100% { -moz-transform: translateX(0%) skewX(0deg); opacity: 1; }
}

@-o-keyframes lightSpeedIn {
	0% { -o-transform: translateX(100%) skewX(-30deg); opacity: 0; }
	60% { -o-transform: translateX(-20%) skewX(30deg); opacity: 1; }
	80% { -o-transform: translateX(0%) skewX(-15deg); opacity: 1; }
	100% { -o-transform: translateX(0%) skewX(0deg); opacity: 1; }
}

@keyframes lightSpeedIn {
	0% { transform: translateX(100%) skewX(-30deg); opacity: 0; }
	60% { transform: translateX(-20%) skewX(30deg); opacity: 1; }
	80% { transform: translateX(0%) skewX(-15deg); opacity: 1; }
	100% { transform: translateX(0%) skewX(0deg); opacity: 1; }
}

.animated.lightSpeedIn {
    -webkit-animation-name: lightSpeedIn;
    -moz-animation-name: lightSpeedIn;
    -o-animation-name: lightSpeedIn;
    animation-name: lightSpeedIn;

    -webkit-animation-timing-function: ease-out;
    -moz-animation-timing-function: ease-out;
    -o-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
}

.animated.lightSpeedIn {
    -webkit-animation-duration: 0.5s;
    -moz-animation-duration: 0.5s;
    -o-animation-duration: 0.5s;
    animation-duration: 0.5s;
}

/* originally authored by Angelo Rohit - https://github.com/angelorohit */

@-webkit-keyframes lightSpeedOut {
    0% { -webkit-transform: translateX(0%) skewX(0deg); opacity: 1; }
	100% { -webkit-transform: translateX(100%) skewX(-30deg); opacity: 0; }
}

@-moz-keyframes lightSpeedOut {
	0% { -moz-transform: translateX(0%) skewX(0deg); opacity: 1; }
	100% { -moz-transform: translateX(100%) skewX(-30deg); opacity: 0; }
}

@-o-keyframes lightSpeedOut {
	0% { -o-transform: translateX(0%) skewX(0deg); opacity: 1; }
	100% { -o-transform: translateX(100%) skewX(-30deg); opacity: 0; }
}

@keyframes lightSpeedOut {
	0% { transform: translateX(0%) skewX(0deg); opacity: 1; }
	100% { transform: translateX(100%) skewX(-30deg); opacity: 0; }
}

.animated.lightSpeedOut {
    -webkit-animation-name: lightSpeedOut;
    -moz-animation-name: lightSpeedOut;
    -o-animation-name: lightSpeedOut;
    animation-name: lightSpeedOut;

    -webkit-animation-timing-function: ease-in;
    -moz-animation-timing-function: ease-in;
    -o-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
}

.animated.lightSpeedOut {
    -webkit-animation-duration: 0.25s;
    -moz-animation-duration: 0.25s;
    -o-animation-duration: 0.25s;
    animation-duration: 0.25s;
}

/* originally authored by Angelo Rohit - https://github.com/angelorohit */

@-webkit-keyframes wiggle {
    0% { -webkit-transform: skewX(9deg); }
    10% { -webkit-transform: skewX(-8deg); }
    20% { -webkit-transform: skewX(7deg); }
    30% { -webkit-transform: skewX(-6deg); }
    40% { -webkit-transform: skewX(5deg); }
    50% { -webkit-transform: skewX(-4deg); }
    60% { -webkit-transform: skewX(3deg); }
    70% { -webkit-transform: skewX(-2deg); }
    80% { -webkit-transform: skewX(1deg); }
    90% { -webkit-transform: skewX(0deg); }
	100% { -webkit-transform: skewX(0deg); }
}

@-moz-keyframes wiggle {
    0% { -moz-transform: skewX(9deg); }
    10% { -moz-transform: skewX(-8deg); }
    20% { -moz-transform: skewX(7deg); }
    30% { -moz-transform: skewX(-6deg); }
    40% { -moz-transform: skewX(5deg); }
    50% { -moz-transform: skewX(-4deg); }
    60% { -moz-transform: skewX(3deg); }
    70% { -moz-transform: skewX(-2deg); }
    80% { -moz-transform: skewX(1deg); }
    90% { -moz-transform: skewX(0deg); }
	100% { -moz-transform: skewX(0deg); }
}

@-o-keyframes wiggle {
    0% { -o-transform: skewX(9deg); }
    10% { -o-transform: skewX(-8deg); }
    20% { -o-transform: skewX(7deg); }
    30% { -o-transform: skewX(-6deg); }
    40% { -o-transform: skewX(5deg); }
    50% { -o-transform: skewX(-4deg); }
    60% { -o-transform: skewX(3deg); }
    70% { -o-transform: skewX(-2deg); }
    80% { -o-transform: skewX(1deg); }
    90% { -o-transform: skewX(0deg); }
	100% { -o-transform: skewX(0deg); }
}

@keyframes wiggle {
    0% { transform: skewX(9deg); }
    10% { transform: skewX(-8deg); }
    20% { transform: skewX(7deg); }
    30% { transform: skewX(-6deg); }
    40% { transform: skewX(5deg); }
    50% { transform: skewX(-4deg); }
    60% { transform: skewX(3deg); }
    70% { transform: skewX(-2deg); }
    80% { transform: skewX(1deg); }
    90% { transform: skewX(0deg); }
	100% { transform: skewX(0deg); }
}

.animated.wiggle {
    -webkit-animation-name: wiggle;
    -moz-animation-name: wiggle;
    -o-animation-name: wiggle;
    animation-name: wiggle;

    -webkit-animation-timing-function: ease-in;
    -moz-animation-timing-function: ease-in;
    -o-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
}

.animated.wiggle {
    -webkit-animation-duration: 0.75s;
    -moz-animation-duration: 0.75s;
    -o-animation-duration: 0.75s;
    animation-duration: 0.75s;
}


================================================
FILE: flat/static/css/main.css
================================================
@import url(http://fonts.googleapis.com/css?family=Roboto:400,700,300);
.clearfix {
  *zoom: 1;
}
.clearfix:before,
.clearfix:after {
  display: table;
  content: "";
  line-height: 0;
}
.clearfix:after {
  clear: both;
}
.hide-text {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.input-block-level {
  display: block;
  width: 100%;
  min-height: 30px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
body {
  padding-top: 80px;
  color: #34495e;
  background: #f5f5f5;
  font-family: 'Roboto', sans-serif;
  font-weight: 300;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'Roboto', sans-serif;
  font-weight: 400;
}
a {
  color: #34495e;
  -webkit-transition: 300ms;
  -moz-transition: 300ms;
  -o-transition: 300ms;
  transition: 300ms;
}
hr {
  border-top: 1px solid #e5e5e5;
  border-bottom: 1px solid #fff;
}
.btn {
  font-weight: 400;
}
.btn-transparent {
  border: 3px solid #fff;
  background: transparent;
  color: #fff;
}
.btn-transparent:hover {
  border-color: rgba(255, 255, 255, 0.5);
}
a:hover,
a:focus {
  color: #d9534f;
  text-decoration: none;
  outline: none;
}
.dropdown-menu {
  margin-top: -1px;
  min-width: 180px;
}
body > section {
  padding: 50px 0;
}
.turquoise,
.green-sea,
.sun-flower,
.orange,
.emerald,
.nephrits,
.carrot,
.pumkin,
.peter-river,
.belize-hole,
.alizarin,
.pomegranate,
.amethyst,
.wisteria,
.clouds .silver,
.wet-asphalt,
.midnight-blue,
.concrete,
.asbestos {
  color: #fff;
}
.turquoise h1,
.green-sea h1,
.sun-flower h1,
.orange h1,
.emerald h1,
.nephrits h1,
.carrot h1,
.pumkin h1,
.peter-river h1,
.belize-hole h1,
.alizarin h1,
.pomegranate h1,
.amethyst h1,
.wisteria h1,
.clouds .silver h1,
.wet-asphalt h1,
.midnight-blue h1,
.concrete h1,
.asbestos h1,
.turquoise h2,
.green-sea h2,
.sun-flower h2,
.orange h2,
.emerald h2,
.nephrits h2,
.carrot h2,
.pumkin h2,
.peter-river h2,
.belize-hole h2,
.alizarin h2,
.pomegranate h2,
.amethyst h2,
.wisteria h2,
.clouds .silver h2,
.wet-asphalt h2,
.midnight-blue h2,
.concrete h2,
.asbestos h2,
.turquoise h3,
.green-sea h3,
.sun-flower h3,
.orange h3,
.emerald h3,
.nephrits h3,
.carrot h3,
.pumkin h3,
.peter-river h3,
.belize-hole h3,
.alizarin h3,
.pomegranate h3,
.amethyst h3,
.wisteria h3,
.clouds .silver h3,
.wet-asphalt h3,
.midnight-blue h3,
.concrete h3,
.asbestos h3,
.turquoise h4,
.green-sea h4,
.sun-flower h4,
.orange h4,
.emerald h4,
.nephrits h4,
.carrot h4,
.pumkin h4,
.peter-river h4,
.belize-hole h4,
.alizarin h4,
.pomegranate h4,
.amethyst h4,
.wisteria h4,
.clouds .silver h4,
.wet-asphalt h4,
.midnight-blue h4,
.concrete h4,
.asbestos h4,
.turquoise h5,
.green-sea h5,
.sun-flower h5,
.orange h5,
.emerald h5,
.nephrits h5,
.carrot h5,
.pumkin h5,
.peter-river h5,
.belize-hole h5,
.alizarin h5,
.pomegranate h5,
.amethyst h5,
.wisteria h5,
.clouds .silver h5,
.wet-asphalt h5,
.midnight-blue h5,
.concrete h5,
.asbestos h5,
.turquoise h6,
.green-sea h6,
.sun-flower h6,
.orange h6,
.emerald h6,
.nephrits h6,
.carrot h6,
.pumkin h6,
.peter-river h6,
.belize-hole h6,
.alizarin h6,
.pomegranate h6,
.amethyst h6,
.wisteria h6,
.clouds .silver h6,
.wet-asphalt h6,
.midnight-blue h6,
.concrete h6,
.asbestos h6 {
  color: #fff;
}
.turquoise small,
.green-sea small,
.sun-flower small,
.orange small,
.emerald small,
.nephrits small,
.carrot small,
.pumkin small,
.peter-river small,
.belize-hole small,
.alizarin small,
.pomegranate small,
.amethyst small,
.wisteria small,
.clouds .silver small,
.wet-asphalt small,
.midnight-blue small,
.concrete small,
.asbestos small {
  color: rgba(255, 255, 255, 0.8);
}
.turquoise {
  background-color: #1abc9c;
}
.green-sea {
  background-color: #16a085;
}
.sun-flower {
  background-color: #f1c40f;
}
.orange {
  background-color: #f39c12;
}
.emerald {
  background-color: #2ecc71;
}
.nephritis {
  background-color: #27ae60;
}
.carrot {
  background-color: #e67e22;
}
.pumkin {
  background-color: #d35400;
}
.peter-river {
  background-color: #3498db;
}
.belize-hole {
  background-color: #2980b9;
}
.alizarin {
  background-color: #e74c3c;
}
.pomegranate {
  background-color: #c0392b;
}
.amethyst {
  background-color: #9b59b6;
}
.wisteria {
  background-color: #8e44ad;
}
.clouds {
  background-color: #ecf0f1;
}
.silver {
  background-color: #bdc3c7;
}
.wet-asphalt {
  background-color: #34495e;
}
.wet-asphalt a:not(.btn) {
  color: #bdc3c7;
}
.wet-asphalt a:not(.btn):hover {
  color: #d9534f;
}
.midnight-blue {
  background-color: #2c3e50;
}
.concrete {
  background-color: #95a5a6;
}
.asbestos {
  background-color: #7f8c8d;
}
.embed-container {
  position: relative;
  padding-bottom: 56.25%;
  /* 16/9 ratio */

  padding-top: 30px;
  /* IE6 workaround*/

  height: 0;
  overflow: hidden;
}
.embed-container iframe,
.embed-container object,
.embed-container embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
#main-slider {
  position: relative;
}
#main-slider .carousel h2 {
  font-size: 36px;
}
#main-slider .carousel .btn {
  border: 3px solid rgba(255, 255, 255, 0.5);
  color: #fff;
  border-radius: 0;
  margin-top: 5px;
}
#main-slider .carousel .btn:hover {
  background-color: rgba(255, 255, 255, 0.3);
}
#main-slider .carousel .boxed {
  padding: 10px 15px;
  background-color: rgba(0, 0, 0, 0.8);
  display: inline-block;
}
#main-slider .carousel .item {
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: cover;
  left: 0 !important;
  opacity: 0;
  top: 0;
  position: absolute;
  width: 100%;
  display: block !important;
  height: 600px;
  -webkit-transition: opacity ease-in-out 500ms;
  -moz-transition: opacity ease-in-out 500ms;
  -o-transition: opacity ease-in-out 500ms;
  transition: opacity ease-in-out 500ms;
}
#main-slider .carousel .item:first-child {
  top: auto;
  position: relative;
}
#main-slider .carousel .item.active {
  opacity: 1;
  -webkit-transition: opacity ease-in-out 500ms;
  -moz-transition: opacity ease-in-out 500ms;
  -o-transition: opacity ease-in-out 500ms;
  transition: opacity ease-in-out 500ms;
  z-index: 1;
}
#main-slider .prev,
#main-slider .next {
  position: absolute;
  top: 50%;
  background-color: rgba(0, 0, 0, 0.3);
  color: #fff;
  display: inline-block;
  margin-top: -25px;
  font-size: 24px;
  height: 50px;
  width: 50px;
  line-height: 50px;
  text-align: center;
  border-radius: 4px;
  z-index: 5;
}
#main-slider .prev:hover,
#main-slider .next:hover {
  background-color: rgba(0, 0, 0, 0.5);
  border-radius: 10px;
}
#main-slider .prev {
  left: 10px;
}
#main-slider .next {
  right: 10px;
}
#main-slider .active .animation.animated-item-1 {
  -webkit-animation: fadeInUp 300ms linear 300ms both;
  -moz-animation: fadeInUp 300ms linear 300ms both;
  -o-animation: fadeInUp 300ms linear 300ms both;
  -ms-animation: fadeInUp 300ms linear 300ms both;
  animation: fadeInUp 300ms linear 300ms both;
}
#main-slider .active .animation.animated-item-2 {
  -webkit-animation: fadeInUp 300ms linear 600ms both;
  -moz-animation: fadeInUp 300ms linear 600ms both;
  -o-animation: fadeInUp 300ms linear 600ms both;
  -ms-animation: fadeInUp 300ms linear 600ms both;
  animation: fadeInUp 300ms linear 600ms both;
}
#main-slider .active .animation.animated-item-3 {
  -webkit-animation: fadeInUp 300ms linear 900ms both;
  -moz-animation: fadeInUp 300ms linear 900ms both;
  -o-animation: fadeInUp 300ms linear 900ms both;
  -ms-animation: fadeInUp 300ms linear 900ms both;
  animation: fadeInUp 300ms linear 900ms both;
}
#main-slider .active .animation.animated-item-4 {
  -webkit-animation: fadeInUp 300ms linear 1200ms both;
  -moz-animation: fadeInUp 300ms linear 1200ms both;
  -o-animation: fadeInUp 300ms linear 1200ms both;
  -ms-animation: fadeInUp 300ms linear 1200ms both;
  animation: fadeInUp 300ms linear 1200ms both;
}
#services .media:hover .icon-md {
  border-radius: 10px;
  background-color: rgba(0, 0, 0, 0.8);
}
#recent-works {
  padding: 90px 0;
}
#recent-works .item-inner {
  position: relative;
  margin: 0;
}
.portfolio-items,
.portfolio-filter {
  list-style: none;
  padding: 0;
  margin: 0 -20px 20px 0;
}
.portfolio-filter > li {
  display: inline-block;
}
.portfolio-items > li {
  float: left;
  padding: 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.portfolio-items.col-2 > li {
  width: 50%;
}
.portfolio-items.col-3 > li {
  width: 33%;
}
.portfolio-items.col-4 > li {
  width: 25%;
}
.portfolio-items.col-5 > li {
  width: 20%;
}
.portfolio-items.col-6 > li {
  width: 16%;
}
.portfolio-item {
  padding: 0;
  margin: 0;
}
.portfolio-item .item-inner {
  background: #fff;
  border: 1px solid #eee;
  padding: 10px 10px 0;
  margin: 0 20px 20px 0;
  position: relative;
}
.portfolio-item img {
  width: 100%;
}
.portfolio-item h5 {
  background: #fff;
  margin: 0;
  padding: 10px 0;
  font-weight: 700;
  font-size: 14px;
  color: #2c3e50;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.portfolio-item .overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  background: rgba(255, 255, 255, 0.9);
  text-align: center;
  vertical-align: middle;
  -webkit-transition: opacity 300ms;
  -moz-transition: opacity 300ms;
  -o-transition: opacity 300ms;
  transition: opacity 300ms;
}
.portfolio-item .overlay .preview {
  position: relative;
  top: 50%;
  display: inline-block;
  margin-top: -20px;
}
.portfolio-item:hover .overlay {
  opacity: 1;
}
/* Start: Recommended Isotope styles */
/**** Isotope Filtering ****/
.isotope-item {
  z-index: 2;
}
.isotope-hidden.isotope-item {
  pointer-events: none;
  z-index: 1;
}
/**** Isotope CSS3 transitions ****/
.isotope,
.isotope .isotope-item {
  -webkit-transition-duration: 0.8s;
  -moz-transition-duration: 0.8s;
  -ms-transition-duration: 0.8s;
  -o-transition-duration: 0.8s;
  transition-duration: 0.8s;
}
.isotope {
  -webkit-transition-property: height, width;
  -moz-transition-property: height, width;
  -ms-transition-property: height, width;
  -o-transition-property: height, width;
  transition-property: height, width;
}
.isotope .isotope-item {
  -webkit-transition-property: -webkit-transform, opacity;
  -moz-transition-property: -moz-transform, opacity;
  -ms-transition-property: -ms-transform, opacity;
  -o-transition-property: -o-transform, opacity;
  transition-property: transform, opacity;
}
/**** disabling Isotope CSS3 transitions ****/
.isotope.no-transition,
.isotope.no-transition .isotope-item,
.isotope .isotope-item.no-transition {
  -webkit-transition-duration: 0s;
  -moz-transition-duration: 0s;
  -ms-transition-duration: 0s;
  -o-transition-duration: 0s;
  transition-duration: 0s;
}
/* End: Recommended Isotope styles */
/* disable CSS transitions for containers with infinite scrolling*/
.isotope.infinite-scrolling {
  -webkit-transition: none;
  -moz-transition: none;
  -ms-transition: none;
  -o-transition: none;
  transition: none;
}
#pricing-table .plan {
  border-radius: 4px;
  list-style: none;
  margin: 0 0 20px;
  background: #3498db;
  text-align: center;
  padding: 30px 0;
}
#pricing-table .plan li {
  padding: 5px 0;
  color: #fff;
  -webkit-transition: 300ms;
  -moz-transition: 300ms;
  -o-transition: 300ms;
  transition: 300ms;
}
#pricing-table .plan li.plan-name {
  font-size: 24px;
  line-height: 24px;
  color: #fff;
}
#pricing-table .plan li.plan-name h3 {
  margin: 0;
}
#pricing-table .plan li.plan-price {
  margin-bottom: 10px;
}
#pricing-table .plan li.plan-price > div {
  display: inline-block;
  background-color: rgba(0, 0, 0, 0.2);
  padding: 10px;
  font-size: 24px;
  border-radius: 100%;
  width: 70px;
  height: 70px;
}
#pricing-table .plan li.plan-price > div sup {
  font-size: 10px;
  line-height: 10px;
}
#pricing-table .plan li.plan-price > div > small {
  display: block;
  font-size: 11px;
}
#pricing-table .plan li.plan-action {
  margin-top: 10px;
  border-top: 0;
}
#pricing-table .plan.featured {
  background-color: #2c3e50;
}
#title h1 {
  margin: 0;
  font-size: 36px;
  font-weight: 300;
}
.center {
  text-align: center;
}
#meet-the-team .designation {
  margin-top: 5px;
  display: block;
  font-size: 13px;
}
.img-thumbnail {
  border: 0;
}
.progress,
.progress .bar {
  background: #fff;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  height: 30px;
  line-height: 30px;
}
.well {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  border: 0;
}
ul.breadcrumb {
  margin: 20px 0 0;
  background: transparent;
}
ul.breadcrumb > li {
  text-shadow: none;
}
ul.breadcrumb > li > a,
ul.breadcrumb > li .divider {
  color: #fff;
}
ul.breadcrumb > li.active {
  color: rgba(255, 255, 255, 0.7);
}
ul.tag-cloud {
  list-style: none;
  padding: 0;
  margin: 0;
}
ul.tag-cloud li {
  display: inline-block;
  margin: 0 0 2px 0;
}
.btn-social {
  border: 0;
  color: #fff;
  border-radius: 100%;
  display: inline-block;
  width: 36px;
  height: 36px;
  line-height: 36px;
  text-align: center;
  padding: 0;
}
.btn-social.btn-facebook {
  background: #4f7dd4;
}
.btn-social.btn-facebook:hover {
  background: #789bde;
}
.btn-social.btn-twitter {
  background: #5bceff;
}
.btn-social.btn-twitter:hover {
  background: #8eddff;
}
.btn-social.btn-linkedin {
  background: #21a6d8;
}
.btn-social.btn-linkedin:hover {
  background: #49b9e3;
}
.btn-social.btn-google-plus {
  background: #dc422b;
}
.btn-social.btn-google-plus:hover {
  background: #e36957;
}
.btn-social:hover {
  color: #fff;
}
.navbar-inverse {
  border: none;
}
.navbar-inverse .navbar-brand {
  font-family: 'Bubbler One', sans-serif;
  font-size: 36px;
  line-height: 50px;
  color: #fff;
}
.navbar-inverse .navbar-nav {
  margin-top: 20px;
}
.navbar-inverse .navbar-nav > li > a {
  padding-top: 7px;
  padding-bottom: 7px;
  border-radius: 4px;
  color: #bdc3c7;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus,
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
  background-color: #2c3e50;
}
.navbar-inverse .navbar-nav .dropdown-menu {
  background-color: #2c3e50;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  border: 0;
  padding: 0;
  margin-top: -3px;
}
.navbar-inverse .navbar-nav .dropdown-menu > li > a {
  padding: 8px 15px;
  color: #bdc3c7;
}
.navbar-inverse .navbar-nav .dropdown-menu > li:hover > a,
.navbar-inverse .navbar-nav .dropdown-menu > li:focus > a,
.navbar-inverse .navbar-nav .dropdown-menu > li.active > a {
  background-color: rgba(0, 0, 0, 0.3);
}
.navbar-inverse .navbar-nav .dropdown-menu > li:last-child > a {
  border-radius: 0 0 3px 3px;
}
.navbar-inverse .navbar-nav .dropdown-menu > li.divider {
  background-color: rgba(0, 0, 0, 0.1);
}
.navbar-inverse .navbar-collapse,
.navbar-inverse .navbar-form {
  border-top: 0;
}
#social-media .icon-facebook {
  background-color: #3c5899;
}
#social-media .icon-facebook:hover {
  background-color: #4e6fba;
}
#social-media .icon-twitter {
  background-color: #29c5f6;
}
#social-media .icon-twitter:hover {
  background-color: #5ad2f8;
}
{{ page.richtextpage.content|richtext_filters|safe }}

footer {
   
    border-top: 0;
    margin-top: 0;

}
#social-media .icon-google-plus {
  background-color: #d13d2f;
}
#social-media .icon-google-plus:hover {
  background-color: #da6459;
}
#social-media .icon-pinterest {
  background-color: #c61118;
}
#social-media .icon-pinterest:hover {
  background-color: #ec1e26;
}
.icon-lg {
  font-size: 48px;
  height: 108px;
  width: 108px;
  line-height: 108px;
  color: #fff;
  margin: 10px;
  background-color: rgba(0, 0, 0, 0.4);
  text-align: center;
  display: inline-block !important;
  border-radius: 100%;
}
.icon-md {
  font-size: 36px;
  height: 68px;
  width: 68px;
  line-height: 68px;
  color: #fff;
  margin-right: 10px;
  background-color: rgba(0, 0, 0, 0.4);
  text-align: center;
  display: block;
  border-radius: 50%;
  -webkit-transition: 500ms;
  -moz-transition: 500ms;
  -o-transition: 500ms;
  transition: 500ms;
}
.modal {
  border: 0;
}
.modal#loginForm {
  width: 600px;
  margin-left: -300px;
}
.modal .modal-header {
  border: 0;
  padding: 20px 20px 0;
}
.modal .modal-header > h4 {
  font-weight: 300;
  font-size: 14px;
  color: #848484;
  text-transform: uppercase;
  margin: 0;
}
.modal .modal-body {
  padding: 20px;
}
.modal input[type="text"],
.modal input[type="password"] {
  padding: 5px 10px;
  min-height: 30px;
  width: 130px;
  margin-right: 10px;
}
.modal .icon-remove {
  color: #848484;
  position: absolute;
  right: -5px;
  top: -5px;
  width: 16px;
  height: 16px;
  line-height: 16px;
  text-align: center;
  display: block;
  background: #ebebeb;
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  border-radius: 100%;
  cursor: pointer;
}
.modal button {
  margin-left: 10px;
  border: 0;
}
.gap {
  margin-bottom: 50px;
}
.big-gap {
  margin-bottom: 100px;
}
.no-margin {
  margin: 0;
  padding: 0;
}
.registration-form {
  border: 0;
  background-color: #fff;
  padding: 20px;
  display: inline-block;
}
#bottom {
  color: #bdc3c7;
}
#bottom h4 {
  margin-top: 0;
  margin-bottom: 15px;
}
#bottom .media-heading {
  display: block;
  font-weight: 400;
}
.row > div {
  margin-bottom: 10px;
}
ul.unstyled {
  list-style: none;
  padding: 0;
  margin: 0;
}
/*Unordered Lists*/
ul.arrow,
ul.arrow-double,
ul.tick,
ul.cross,
ul.star,
ul.rss {
  list-style: none;
  padding: 0;
  margin: 0;
}
ul.arrow li::before,
ul.arrow-double li::before,
ul.tick li::before,
ul.cross li::before,
ul.star li::before,
ul.rss li::before,
ul.arrow li::after,
ul.arrow-double li::after,
ul.tick li::after,
ul.cross li::after,
ul.star li::after,
ul.rss li::after {
  font-family: FontAwesome;
  font-size: 11px;
}
ul.arrow li::before,
ul.arrow-double li::before,
ul.tick li::before,
ul.cross li::before,
ul.star li::before,
ul.rss li::before {
  margin-right: 5px;
}
ul.arrow li::before {
  content: "\f105";
}
ul.arrow-double li::before {
  content: "\f101";
}
ul.tick li::before {
  content: "\f00c";
}
ul.cross li::before {
  content: "\f00d";
}
ul.star li::before {
  content: "\f006";
}
ul.rss li::before {
  content: "\f09e";
}
#footer {
  padding-top: 30px;
  padding-bottom: 30px;
  color: #bdc3c7;
}
#footer a {
  color: #bdc3c7;
}
#footer a:hover {
  color: #d9534f;
}
#footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
#footer ul > li {
  display: inline-block;
  margin-left: 15px;
}
ul.social {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  display: inline-block;
}
ul.social > li {
  display: inline-block;
  margin: 0 5px;
}
ul.social > li > a {
  font-size: 24px;
  color: #666;
}
ul.social > li > a:hover {
  color: #999;
}
.box-border {
  padding: 15px;
}
.accordion-group {
  background-color: #fff;
  border-top: 1px solid #f0f0f0;
}
.accordion-heading .accordion-toggle {
  color: #666;
  font-weight: 700;
}
.accordion-inner {
  border-top: 0;
}
.blog .blog-item {
  background-color: #fff;
  border-radius: 5px;
  margin-bottom: 20px;
}
.blog .blog-item .img-blog {
  width: 100%;
  border-radius: 5px 5px 0 0;
}
.blog .blog-item .blog-content {
  padding: 20px;
}
.blog .blog-item h3 {
  margin-top: 0;
}
.blog .blog-item .entry-meta {
  margin-bottom: 20px;
}
.blog .blog-item .entry-meta > span {
  display: inline-block;
  color: #999;
  margin-right: 10px;
  font-size: 12px;
}
.blog .blog-item .entry-meta > span a {
  color: #999;
}
ul.pagination > li > a {
  border: 0;
}
ul.pagination > li.active > a,
ul.pagination > li:hover > a {
  background-color: #34495e;
  color: #fff;
}
textarea#message {
  padding: 10px 15px;
  height: 219px;
}
.widget {
  margin-bottom: 30px;
}
ul.gallery {
  list-style: none;
  padding: 0;
  margin: 0;
}
ul.gallery li {
  display: block;
  width: 60px;
  padding: 0;
  margin: 0 4px 4px 0;
  float: left;
}
ul.faq {
  list-style: none;
  margin: 0;
}
ul.faq li {
  margin-top: 30px;
}
ul.faq li:first-child {
  margin-top: 0;
}
ul.faq li span.number {
  display: block;
  float: left;
  width: 50px;
  height: 50px;
  line-height: 50px;
  text-align: center;
  background: #34495e;
  color: #fff;
  font-size: 24px;
}
ul.faq li > div {
  margin-left: 70px;
}
ul.faq li > div h3 {
  margin-top: 0;
}
#error {
  text-align: center;
  margin-top: 150px;
  margin-bottom: 150px;
}


================================================
FILE: flat/static/css/main.css~
================================================
@import url(http://fonts.googleapis.com/css?family=Roboto:400,700,300);
.clearfix {
  *zoom: 1;
}
.clearfix:before,
.clearfix:after {
  display: table;
  content: "";
  line-height: 0;
}
.clearfix:after {
  clear: both;
}
.hide-text {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.input-block-level {
  display: block;
  width: 100%;
  min-height: 30px;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
body {
  padding-top: 80px;
  color: #34495e;
  background: #f5f5f5;
  font-family: 'Roboto', sans-serif;
  font-weight: 300;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'Roboto', sans-serif;
  font-weight: 400;
}
a {
  color: #34495e;
  -webkit-transition: 300ms;
  -moz-transition: 300ms;
  -o-transition: 300ms;
  transition: 300ms;
}
hr {
  border-top: 1px solid #e5e5e5;
  border-bottom: 1px solid #fff;
}
.btn {
  font-weight: 400;
}
.btn-transparent {
  border: 3px solid #fff;
  background: transparent;
  color: #fff;
}
.btn-transparent:hover {
  border-color: rgba(255, 255, 255, 0.5);
}
a:hover,
a:focus {
  color: #d9534f;
  text-decoration: none;
  outline: none;
}
.dropdown-menu {
  margin-top: -1px;
  min-width: 180px;
}
body > section {
  padding: 50px 0;
}
.turquoise,
.green-sea,
.sun-flower,
.orange,
.emerald,
.nephrits,
.carrot,
.pumkin,
.peter-river,
.belize-hole,
.alizarin,
.pomegranate,
.amethyst,
.wisteria,
.clouds .silver,
.wet-asphalt,
.midnight-blue,
.concrete,
.asbestos {
  color: #fff;
}
.turquoise h1,
.green-sea h1,
.sun-flower h1,
.orange h1,
.emerald h1,
.nephrits h1,
.carrot h1,
.pumkin h1,
.peter-river h1,
.belize-hole h1,
.alizarin h1,
.pomegranate h1,
.amethyst h1,
.wisteria h1,
.clouds .silver h1,
.wet-asphalt h1,
.midnight-blue h1,
.concrete h1,
.asbestos h1,
.turquoise h2,
.green-sea h2,
.sun-flower h2,
.orange h2,
.emerald h2,
.nephrits h2,
.carrot h2,
.pumkin h2,
.peter-river h2,
.belize-hole h2,
.alizarin h2,
.pomegranate h2,
.amethyst h2,
.wisteria h2,
.clouds .silver h2,
.wet-asphalt h2,
.midnight-blue h2,
.concrete h2,
.asbestos h2,
.turquoise h3,
.green-sea h3,
.sun-flower h3,
.orange h3,
.emerald h3,
.nephrits h3,
.carrot h3,
.pumkin h3,
.peter-river h3,
.belize-hole h3,
.alizarin h3,
.pomegranate h3,
.amethyst h3,
.wisteria h3,
.clouds .silver h3,
.wet-asphalt h3,
.midnight-blue h3,
.concrete h3,
.asbestos h3,
.turquoise h4,
.green-sea h4,
.sun-flower h4,
.orange h4,
.emerald h4,
.nephrits h4,
.carrot h4,
.pumkin h4,
.peter-river h4,
.belize-hole h4,
.alizarin h4,
.pomegranate h4,
.amethyst h4,
.wisteria h4,
.clouds .silver h4,
.wet-asphalt h4,
.midnight-blue h4,
.concrete h4,
.asbestos h4,
.turquoise h5,
.green-sea h5,
.sun-flower h5,
.orange h5,
.emerald h5,
.nephrits h5,
.carrot h5,
.pumkin h5,
.peter-river h5,
.belize-hole h5,
.alizarin h5,
.pomegranate h5,
.amethyst h5,
.wisteria h5,
.clouds .silver h5,
.wet-asphalt h5,
.midnight-blue h5,
.concrete h5,
.asbestos h5,
.turquoise h6,
.green-sea h6,
.sun-flower h6,
.orange h6,
.emerald h6,
.nephrits h6,
.carrot h6,
.pumkin h6,
.peter-river h6,
.belize-hole h6,
.alizarin h6,
.pomegranate h6,
.amethyst h6,
.wisteria h6,
.clouds .silver h6,
.wet-asphalt h6,
.midnight-blue h6,
.concrete h6,
.asbestos h6 {
  color: #fff;
}
.turquoise small,
.green-sea small,
.sun-flower small,
.orange small,
.emerald small,
.nephrits small,
.carrot small,
.pumkin small,
.peter-river small,
.belize-hole small,
.alizarin small,
.pomegranate small,
.amethyst small,
.wisteria small,
.clouds .silver small,
.wet-asphalt small,
.midnight-blue small,
.concrete small,
.asbestos small {
  color: rgba(255, 255, 255, 0.8);
}
.turquoise {
  background-color: #1abc9c;
}
.green-sea {
  background-color: #16a085;
}
.sun-flower {
  background-color: #f1c40f;
}
.orange {
  background-color: #f39c12;
}
.emerald {
  background-color: #2ecc71;
}
.nephritis {
  background-color: #27ae60;
}
.carrot {
  background-color: #e67e22;
}
.pumkin {
  background-color: #d35400;
}
.peter-river {
  background-color: #3498db;
}
.belize-hole {
  background-color: #2980b9;
}
.alizarin {
  background-color: #e74c3c;
}
.pomegranate {
  background-color: #c0392b;
}
.amethyst {
  background-color: #9b59b6;
}
.wisteria {
  background-color: #8e44ad;
}
.clouds {
  background-color: #ecf0f1;
}
.silver {
  background-color: #bdc3c7;
}
.wet-asphalt {
  background-color: #34495e;
}
.wet-asphalt a:not(.btn) {
  color: #bdc3c7;
}
.wet-asphalt a:not(.btn):hover {
  color: #d9534f;
}
.midnight-blue {
  background-color: #2c3e50;
}
.concrete {
  background-color: #95a5a6;
}
.asbestos {
  background-color: #7f8c8d;
}
.embed-container {
  position: relative;
  padding-bottom: 56.25%;
  /* 16/9 ratio */

  padding-top: 30px;
  /* IE6 workaround*/

  height: 0;
  overflow: hidden;
}
.embed-container iframe,
.embed-container object,
.embed-container embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
#main-slider {
  position: relative;
}
#main-slider .carousel h2 {
  font-size: 36px;
}
#main-slider .carousel .btn {
  border: 3px solid rgba(255, 255, 255, 0.5);
  color: #fff;
  border-radius: 0;
  margin-top: 5px;
}
#main-slider .carousel .btn:hover {
  background-color: rgba(255, 255, 255, 0.3);
}
#main-slider .carousel .boxed {
  padding: 10px 15px;
  background-color: rgba(0, 0, 0, 0.8);
  display: inline-block;
}
#main-slider .carousel .item {
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: cover;
  left: 0 !important;
  opacity: 0;
  top: 0;
  position: absolute;
  width: 100%;
  display: block !important;
  height: 600px;
  -webkit-transition: opacity ease-in-out 500ms;
  -moz-transition: opacity ease-in-out 500ms;
  -o-transition: opacity ease-in-out 500ms;
  transition: opacity ease-in-out 500ms;
}
#main-slider .carousel .item:first-child {
  top: auto;
  position: relative;
}
#main-slider .carousel .item.active {
  opacity: 1;
  -webkit-transition: opacity ease-in-out 500ms;
  -moz-transition: opacity ease-in-out 500ms;
  -o-transition: opacity ease-in-out 500ms;
  transition: opacity ease-in-out 500ms;
  z-index: 1;
}
#main-slider .prev,
#main-slider .next {
  position: absolute;
  top: 50%;
  background-color: rgba(0, 0, 0, 0.3);
  color: #fff;
  display: inline-block;
  margin-top: -25px;
  font-size: 24px;
  height: 50px;
  width: 50px;
  line-height: 50px;
  text-align: center;
  border-radius: 4px;
  z-index: 5;
}
#main-slider .prev:hover,
#main-slider .next:hover {
  background-color: rgba(0, 0, 0, 0.5);
  border-radius: 10px;
}
#main-slider .prev {
  left: 10px;
}
#main-slider .next {
  right: 10px;
}
#main-slider .active .animation.animated-item-1 {
  -webkit-animation: fadeInUp 300ms linear 300ms both;
  -moz-animation: fadeInUp 300ms linear 300ms both;
  -o-animation: fadeInUp 300ms linear 300ms both;
  -ms-animation: fadeInUp 300ms linear 300ms both;
  animation: fadeInUp 300ms linear 300ms both;
}
#main-slider .active .animation.animated-item-2 {
  -webkit-animation: fadeInUp 300ms linear 600ms both;
  -moz-animation: fadeInUp 300ms linear 600ms both;
  -o-animation: fadeInUp 300ms linear 600ms both;
  -ms-animation: fadeInUp 300ms linear 600ms both;
  animation: fadeInUp 300ms linear 600ms both;
}
#main-slider .active .animation.animated-item-3 {
  -webkit-animation: fadeInUp 300ms linear 900ms both;
  -moz-animation: fadeInUp 300ms linear 900ms both;
  -o-animation: fadeInUp 300ms linear 900ms both;
  -ms-animation: fadeInUp 300ms linear 900ms both;
  animation: fadeInUp 300ms linear 900ms both;
}
#main-slider .active .animation.animated-item-4 {
  -webkit-animation: fadeInUp 300ms linear 1200ms both;
  -moz-animation: fadeInUp 300ms linear 1200ms both;
  -o-animation: fadeInUp 300ms linear 1200ms both;
  -ms-animation: fadeInUp 300ms linear 1200ms both;
  animation: fadeInUp 300ms linear 1200ms both;
}
#services .media:hover .icon-md {
  border-radius: 10px;
  background-color: rgba(0, 0, 0, 0.8);
}
#recent-works {
  padding: 90px 0;
}
#recent-works .item-inner {
  position: relative;
  margin: 0;
}
.portfolio-items,
.portfolio-filter {
  list-style: none;
  padding: 0;
  margin: 0 -20px 20px 0;
}
.portfolio-filter > li {
  display: inline-block;
}
.portfolio-items > li {
  float: left;
  padding: 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.portfolio-items.col-2 > li {
  width: 50%;
}
.portfolio-items.col-3 > li {
  width: 33%;
}
.portfolio-items.col-4 > li {
  width: 25%;
}
.portfolio-items.col-5 > li {
  width: 20%;
}
.portfolio-items.col-6 > li {
  width: 16%;
}
.portfolio-item {
  padding: 0;
  margin: 0;
}
.portfolio-item .item-inner {
  background: #fff;
  border: 1px solid #eee;
  padding: 10px 10px 0;
  margin: 0 20px 20px 0;
  position: relative;
}
.portfolio-item img {
  width: 100%;
}
.portfolio-item h5 {
  background: #fff;
  margin: 0;
  padding: 10px 0;
  font-weight: 700;
  font-size: 14px;
  color: #2c3e50;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.portfolio-item .overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  background: rgba(255, 255, 255, 0.9);
  text-align: center;
  vertical-align: middle;
  -webkit-transition: opacity 300ms;
  -moz-transition: opacity 300ms;
  -o-transition: opacity 300ms;
  transition: opacity 300ms;
}
.portfolio-item .overlay .preview {
  position: relative;
  top: 50%;
  display: inline-block;
  margin-top: -20px;
}
.portfolio-item:hover .overlay {
  opacity: 1;
}
/* Start: Recommended Isotope styles */
/**** Isotope Filtering ****/
.isotope-item {
  z-index: 2;
}
.isotope-hidden.isotope-item {
  pointer-events: none;
  z-index: 1;
}
/**** Isotope CSS3 transitions ****/
.isotope,
.isotope .isotope-item {
  -webkit-transition-duration: 0.8s;
  -moz-transition-duration: 0.8s;
  -ms-transition-duration: 0.8s;
  -o-transition-duration: 0.8s;
  transition-duration: 0.8s;
}
.isotope {
  -webkit-transition-property: height, width;
  -moz-transition-property: height, width;
  -ms-transition-property: height, width;
  -o-transition-property: height, width;
  transition-property: height, width;
}
.isotope .isotope-item {
  -webkit-transition-property: -webkit-transform, opacity;
  -moz-transition-property: -moz-transform, opacity;
  -ms-transition-property: -ms-transform, opacity;
  -o-transition-property: -o-transform, opacity;
  transition-property: transform, opacity;
}
/**** disabling Isotope CSS3 transitions ****/
.isotope.no-transition,
.isotope.no-transition .isotope-item,
.isotope .isotope-item.no-transition {
  -webkit-transition-duration: 0s;
  -moz-transition-duration: 0s;
  -ms-transition-duration: 0s;
  -o-transition-duration: 0s;
  transition-duration: 0s;
}
/* End: Recommended Isotope styles */
/* disable CSS transitions for containers with infinite scrolling*/
.isotope.infinite-scrolling {
  -webkit-transition: none;
  -moz-transition: none;
  -ms-transition: none;
  -o-transition: none;
  transition: none;
}
#pricing-table .plan {
  border-radius: 4px;
  list-style: none;
  margin: 0 0 20px;
  background: #3498db;
  text-align: center;
  padding: 30px 0;
}
#pricing-table .plan li {
  padding: 5px 0;
  color: #fff;
  -webkit-transition: 300ms;
  -moz-transition: 300ms;
  -o-transition: 300ms;
  transition: 300ms;
}
#pricing-table .plan li.plan-name {
  font-size: 24px;
  line-height: 24px;
  color: #fff;
}
#pricing-table .plan li.plan-name h3 {
  margin: 0;
}
#pricing-table .plan li.plan-price {
  margin-bottom: 10px;
}
#pricing-table .plan li.plan-price > div {
  display: inline-block;
  background-color: rgba(0, 0, 0, 0.2);
  padding: 10px;
  font-size: 24px;
  border-radius: 100%;
  width: 70px;
  height: 70px;
}
#pricing-table .plan li.plan-price > div sup {
  font-size: 10px;
  line-height: 10px;
}
#pricing-table .plan li.plan-price > div > small {
  display: block;
  font-size: 11px;
}
#pricing-table .plan li.plan-action {
  margin-top: 10px;
  border-top: 0;
}
#pricing-table .plan.featured {
  background-color: #2c3e50;
}
#title h1 {
  margin: 0;
  font-size: 36px;
  font-weight: 300;
}
.center {
  text-align: center;
}
#meet-the-team .designation {
  margin-top: 5px;
  display: block;
  font-size: 13px;
}
.img-thumbnail {
  border: 0;
}
.progress,
.progress .bar {
  background: #fff;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  height: 30px;
  line-height: 30px;
}
.well {
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  border: 0;
}
ul.breadcrumb {
  margin: 20px 0 0;
  background: transparent;
}
ul.breadcrumb > li {
  text-shadow: none;
}
ul.breadcrumb > li > a,
ul.breadcrumb > li .divider {
  color: #fff;
}
ul.breadcrumb > li.active {
  color: rgba(255, 255, 255, 0.7);
}
ul.tag-cloud {
  list-style: none;
  padding: 0;
  margin: 0;
}
ul.tag-cloud li {
  display: inline-block;
  margin: 0 0 2px 0;
}
.btn-social {
  border: 0;
  color: #fff;
  border-radius: 100%;
  display: inline-block;
  width: 36px;
  height: 36px;
  line-height: 36px;
  text-align: center;
  padding: 0;
}
.btn-social.btn-facebook {
  background: #4f7dd4;
}
.btn-social.btn-facebook:hover {
  background: #789bde;
}
.btn-social.btn-twitter {
  background: #5bceff;
}
.btn-social.btn-twitter:hover {
  background: #8eddff;
}
.btn-social.btn-linkedin {
  background: #21a6d8;
}
.btn-social.btn-linkedin:hover {
  background: #49b9e3;
}
.btn-social.btn-google-plus {
  background: #dc422b;
}
.btn-social.btn-google-plus:hover {
  background: #e36957;
}
.btn-social:hover {
  color: #fff;
}
.navbar-inverse {
  border: none;
}
.navbar-inverse .navbar-brand {
  font-family: 'Bubbler One', sans-serif;
  font-size: 36px;
  line-height: 50px;
  color: #fff;
}
.navbar-inverse .navbar-nav {
  margin-top: 20px;
}
.navbar-inverse .navbar-nav > li > a {
  padding-top: 7px;
  padding-bottom: 7px;
  border-radius: 4px;
  color: #bdc3c7;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus,
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
  background-color: #2c3e50;
}
.navbar-inverse .navbar-nav .dropdown-menu {
  background-color: #2c3e50;
  -webkit-box-shadow: none;
  -moz-box-shadow: none;
  box-shadow: none;
  border: 0;
  padding: 0;
  margin-top: -3px;
}
.navbar-inverse .navbar-nav .dropdown-menu > li > a {
  padding: 8px 15px;
  color: #bdc3c7;
}
.navbar-inverse .navbar-nav .dropdown-menu > li:hover > a,
.navbar-inverse .navbar-nav .dropdown-menu > li:focus > a,
.navbar-inverse .navbar-nav .dropdown-menu > li.active > a {
  background-color: rgba(0, 0, 0, 0.3);
}
.navbar-inverse .navbar-nav .dropdown-menu > li:last-child > a {
  border-radius: 0 0 3px 3px;
}
.navbar-inverse .navbar-nav .dropdown-menu > li.divider {
  background-color: rgba(0, 0, 0, 0.1);
}
.navbar-inverse .navbar-collapse,
.navbar-inverse .navbar-form {
  border-top: 0;
}
#social-media .icon-facebook {
  background-color: #3c5899;
}
#social-media .icon-facebook:hover {
  background-color: #4e6fba;
}
#social-media .icon-twitter {
  background-color: #29c5f6;
}
#social-media .icon-twitter:hover {
  background-color: #5ad2f8;
}
#social-media .icon-google-plus {
  background-color: #d13d2f;
}
#social-media .icon-google-plus:hover {
  background-color: #da6459;
}
#social-media .icon-pinterest {
  background-color: #c61118;
}
#social-media .icon-pinterest:hover {
  background-color: #ec1e26;
}
.icon-lg {
  font-size: 48px;
  height: 108px;
  width: 108px;
  line-height: 108px;
  color: #fff;
  margin: 10px;
  background-color: rgba(0, 0, 0, 0.4);
  text-align: center;
  display: inline-block !important;
  border-radius: 100%;
}
.icon-md {
  font-size: 36px;
  height: 68px;
  width: 68px;
  line-height: 68px;
  color: #fff;
  margin-right: 10px;
  background-color: rgba(0, 0, 0, 0.4);
  text-align: center;
  display: block;
  border-radius: 50%;
  -webkit-transition: 500ms;
  -moz-transition: 500ms;
  -o-transition: 500ms;
  transition: 500ms;
}
.modal {
  border: 0;
}
.modal#loginForm {
  width: 600px;
  margin-left: -300px;
}
.modal .modal-header {
  border: 0;
  padding: 20px 20px 0;
}
.modal .modal-header > h4 {
  font-weight: 300;
  font-size: 14px;
  color: #848484;
  text-transform: uppercase;
  margin: 0;
}
.modal .modal-body {
  padding: 20px;
}
.modal input[type="text"],
.modal input[type="password"] {
  padding: 5px 10px;
  min-height: 30px;
  width: 130px;
  margin-right: 10px;
}
.modal .icon-remove {
  color: #848484;
  position: absolute;
  right: -5px;
  top: -5px;
  width: 16px;
  height: 16px;
  line-height: 16px;
  text-align: center;
  display: block;
  background: #ebebeb;
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  border-radius: 100%;
  cursor: pointer;
}
.modal button {
  margin-left: 10px;
  border: 0;
}
.gap {
  margin-bottom: 50px;
}
.big-gap {
  margin-bottom: 100px;
}
.no-margin {
  margin: 0;
  padding: 0;
}
.registration-form {
  border: 0;
  background-color: #fff;
  padding: 20px;
  display: inline-block;
}
#bottom {
  color: #bdc3c7;
}
#bottom h4 {
  margin-top: 0;
  margin-bottom: 15px;
}
#bottom .media-heading {
  display: block;
  font-weight: 400;
}
.row > div {
  margin-bottom: 10px;
}
ul.unstyled {
  list-style: none;
  padding: 0;
  margin: 0;
}
/*Unordered Lists*/
ul.arrow,
ul.arrow-double,
ul.tick,
ul.cross,
ul.star,
ul.rss {
  list-style: none;
  padding: 0;
  margin: 0;
}
ul.arrow li::before,
ul.arrow-double li::before,
ul.tick li::before,
ul.cross li::before,
ul.star li::before,
ul.rss li::before,
ul.arrow li::after,
ul.arrow-double li::after,
ul.tick li::after,
ul.cross li::after,
ul.star li::after,
ul.rss li::after {
  font-family: FontAwesome;
  font-size: 11px;
}
ul.arrow li::before,
ul.arrow-double li::before,
ul.tick li::before,
ul.cross li::before,
ul.star li::before,
ul.rss li::before {
  margin-right: 5px;
}
ul.arrow li::before {
  content: "\f105";
}
ul.arrow-double li::before {
  content: "\f101";
}
ul.tick li::before {
  content: "\f00c";
}
ul.cross li::before {
  content: "\f00d";
}
ul.star li::before {
  content: "\f006";
}
ul.rss li::before {
  content: "\f09e";
}
#footer {
  padding-top: 30px;
  padding-bottom: 30px;
  color: #bdc3c7;
}
#footer a {
  color: #bdc3c7;
}
#footer a:hover {
  color: #d9534f;
}
#footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
#footer ul > li {
  display: inline-block;
  margin-left: 15px;
}
ul.social {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  display: inline-block;
}
ul.social > li {
  display: inline-block;
  margin: 0 5px;
}
ul.social > li > a {
  font-size: 24px;
  color: #666;
}
ul.social > li > a:hover {
  color: #999;
}
.box-border {
  padding: 15px;
}
.accordion-group {
  background-color: #fff;
  border-top: 1px solid #f0f0f0;
}
.accordion-heading .accordion-toggle {
  color: #666;
  font-weight: 700;
}
.accordion-inner {
  border-top: 0;
}
.blog .blog-item {
  background-color: #fff;
  border-radius: 5px;
  margin-bottom: 20px;
}
.blog .blog-item .img-blog {
  width: 100%;
  border-radius: 5px 5px 0 0;
}
.blog .blog-item .blog-content {
  padding: 20px;
}
.blog .blog-item h3 {
  margin-top: 0;
}
.blog .blog-item .entry-meta {
  margin-bottom: 20px;
}
.blog .blog-item .entry-meta > span {
  display: inline-block;
  color: #999;
  margin-right: 10px;
  font-size: 12px;
}
.blog .blog-item .entry-meta > span a {
  color: #999;
}
ul.pagination > li > a {
  border: 0;
}
ul.pagination > li.active > a,
ul.pagination > li:hover > a {
  background-color: #34495e;
  color: #fff;
}
textarea#message {
  padding: 10px 15px;
  height: 219px;
}
.widget {
  margin-bottom: 30px;
}
ul.gallery {
  list-style: none;
  padding: 0;
  margin: 0;
}
ul.gallery li {
  display: block;
  width: 60px;
  padding: 0;
  margin: 0 4px 4px 0;
  float: left;
}
ul.faq {
  list-style: none;
  margin: 0;
}
ul.faq li {
  margin-top: 30px;
}
ul.faq li:first-child {
  margin-top: 0;
}
ul.faq li span.number {
  display: block;
  float: left;
  width: 50px;
  height: 50px;
  line-height: 50px;
  text-align: center;
  background: #34495e;
  color: #fff;
  font-size: 24px;
}
ul.faq li > div {
  margin-left: 70px;
}
ul.faq li > div h3 {
  margin-top: 0;
}
#error {
  text-align: center;
  margin-top: 150px;
  margin-bottom: 150px;
}


================================================
FILE: flat/static/css/prettyPhoto.css
================================================
div.pp_default .pp_top,div.pp_default .pp_top .pp_middle,div.pp_default .pp_top .pp_left,div.pp_default .pp_top .pp_right,div.pp_default .pp_bottom,div.pp_default .pp_bottom .pp_left,div.pp_default .pp_bottom .pp_middle,div.pp_default .pp_bottom .pp_right{height:13px}
div.pp_default .pp_top .pp_left{background:url(../images/prettyPhoto/default/sprite.png) -78px -93px no-repeat}
div.pp_default .pp_top .pp_middle{background:url(../images/prettyPhoto/default/sprite_x.png) top left repeat-x}
div.pp_default .pp_top .pp_right{background:url(../images/prettyPhoto/default/sprite.png) -112px -93px no-repeat}
div.pp_default .pp_content .ppt{color:#f8f8f8}
div.pp_default .pp_content_container .pp_left{background:url(../images/prettyPhoto/default/sprite_y.png) -7px 0 repeat-y;padding-left:13px}
div.pp_default .pp_content_container .pp_right{background:url(../images/prettyPhoto/default/sprite_y.png) top right repeat-y;padding-right:13px}
div.pp_default .pp_next:hover{background:url(../images/prettyPhoto/default/sprite_next.png) center right no-repeat;cursor:pointer}
div.pp_default .pp_previous:hover{background:url(../images/prettyPhoto/default/sprite_prev.png) center left no-repeat;cursor:pointer}
div.pp_default .pp_expand{background:url(../images/prettyPhoto/default/sprite.png) 0 -29px no-repeat;cursor:pointer;width:28px;height:28px}
div.pp_default .pp_expand:hover{background:url(../images/prettyPhoto/default/sprite.png) 0 -56px no-repeat;cursor:pointer}
div.pp_default .pp_contract{background:url(../images/prettyPhoto/default/sprite.png) 0 -84px no-repeat;cursor:pointer;width:28px;height:28px}
div.pp_default .pp_contract:hover{background:url(../images/prettyPhoto/default/sprite.png) 0 -113px no-repeat;cursor:pointer}
div.pp_default .pp_close{width:30px;height:30px;background:url(../images/prettyPhoto/default/sprite.png) 2px 1px no-repeat;cursor:pointer}
div.pp_default .pp_gallery ul li a{background:url(../images/prettyPhoto/default/default_thumb.png) center center #f8f8f8;border:1px solid #aaa}
div.pp_default .pp_social{margin-top:7px}
div.pp_default .pp_gallery a.pp_arrow_previous,div.pp_default .pp_gallery a.pp_arrow_next{position:static;left:auto}
div.pp_default .pp_nav .pp_play,div.pp_default .pp_nav .pp_pause{background:url(../images/prettyPhoto/default/sprite.png) -51px 1px no-repeat;height:30px;width:30px}
div.pp_default .pp_nav .pp_pause{background-position:-51px -29px}
div.pp_default a.pp_arrow_previous,div.pp_default a.pp_arrow_next{background:url(../images/prettyPhoto/default/sprite.png) -31px -3px no-repeat;height:20px;width:20px;margin:4px 0 0}
div.pp_default a.pp_arrow_next{left:52px;background-position:-82px -3px}
div.pp_default .pp_content_container .pp_details{margin-top:5px}
div.pp_default .pp_nav{clear:none;height:30px;width:110px;position:relative}
div.pp_default .pp_nav .currentTextHolder{font-family:Georgia;font-style:italic;color:#999;font-size:11px;left:75px;line-height:25px;position:absolute;top:2px;margin:0;padding:0 0 0 10px}
div.pp_default .pp_close:hover,div.pp_default .pp_nav .pp_play:hover,div.pp_default .pp_nav .pp_pause:hover,div.pp_default .pp_arrow_next:hover,div.pp_default .pp_arrow_previous:hover{opacity:0.7}
div.pp_default .pp_description{font-size:11px;font-weight:700;line-height:14px;margin:5px 50px 5px 0}
div.pp_default .pp_bottom .pp_left{background:url(../images/prettyPhoto/default/sprite.png) -78px -127px no-repeat}
div.pp_default .pp_bottom .pp_middle{background:url(../images/prettyPhoto/default/sprite_x.png) bottom left repeat-x}
div.pp_default .pp_bottom .pp_right{background:url(../images/prettyPhoto/default/sprite.png) -112px -127px no-repeat}
div.pp_default .pp_loaderIcon{background:url(../images/prettyPhoto/default/loader.gif) center center no-repeat}
div.light_rounded .pp_top .pp_left{background:url(../images/prettyPhoto/light_rounded/sprite.png) -88px -53px no-repeat}
div.light_rounded .pp_top .pp_right{background:url(../images/prettyPhoto/light_rounded/sprite.png) -110px -53px no-repeat}
div.light_rounded .pp_next:hover{background:url(../images/prettyPhoto/light_rounded/btnNext.png) center right no-repeat;cursor:pointer}
div.light_rounded .pp_previous:hover{background:url(../images/prettyPhoto/light_rounded/btnPrevious.png) center left no-repeat;cursor:pointer}
div.light_rounded .pp_expand{background:url(../images/prettyPhoto/light_rounded/sprite.png) -31px -26px no-repeat;cursor:pointer}
div.light_rounded .pp_expand:hover{background:url(../images/prettyPhoto/light_rounded/sprite.png) -31px -47px no-repeat;cursor:pointer}
div.light_rounded .pp_contract{background:url(../images/prettyPhoto/light_rounded/sprite.png) 0 -26px no-repeat;cursor:pointer}
div.light_rounded .pp_contract:hover{background:url(../images/prettyPhoto/light_rounded/sprite.png) 0 -47px no-repeat;cursor:pointer}
div.light_rounded .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/light_rounded/sprite.png) -1px -1px no-repeat;cursor:pointer}
div.light_rounded .pp_nav .pp_play{background:url(../images/prettyPhoto/light_rounded/sprite.png) -1px -100px no-repeat;height:15px;width:14px}
div.light_rounded .pp_nav .pp_pause{background:url(../images/prettyPhoto/light_rounded/sprite.png) -24px -100px no-repeat;height:15px;width:14px}
div.light_rounded .pp_arrow_previous{background:url(../images/prettyPhoto/light_rounded/sprite.png) 0 -71px no-repeat}
div.light_rounded .pp_arrow_next{background:url(../images/prettyPhoto/light_rounded/sprite.png) -22px -71px no-repeat}
div.light_rounded .pp_bottom .pp_left{background:url(../images/prettyPhoto/light_rounded/sprite.png) -88px -80px no-repeat}
div.light_rounded .pp_bottom .pp_right{background:url(../images/prettyPhoto/light_rounded/sprite.png) -110px -80px no-repeat}
div.dark_rounded .pp_top .pp_left{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -53px no-repeat}
div.dark_rounded .pp_top .pp_right{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -53px no-repeat}
div.dark_rounded .pp_content_container .pp_left{background:url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat-y}
div.dark_rounded .pp_content_container .pp_right{background:url(../images/prettyPhoto/dark_rounded/contentPattern.png) top right repeat-y}
div.dark_rounded .pp_next:hover{background:url(../images/prettyPhoto/dark_rounded/btnNext.png) center right no-repeat;cursor:pointer}
div.dark_rounded .pp_previous:hover{background:url(../images/prettyPhoto/dark_rounded/btnPrevious.png) center left no-repeat;cursor:pointer}
div.dark_rounded .pp_expand{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -26px no-repeat;cursor:pointer}
div.dark_rounded .pp_expand:hover{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -47px no-repeat;cursor:pointer}
div.dark_rounded .pp_contract{background:url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -26px no-repeat;cursor:pointer}
div.dark_rounded .pp_contract:hover{background:url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -47px no-repeat;cursor:pointer}
div.dark_rounded .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -1px no-repeat;cursor:pointer}
div.dark_rounded .pp_description{margin-right:85px;color:#fff}
div.dark_rounded .pp_nav .pp_play{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -100px no-repeat;height:15px;width:14px}
div.dark_rounded .pp_nav .pp_pause{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -24px -100px no-repeat;height:15px;width:14px}
div.dark_rounded .pp_arrow_previous{background:url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -71px no-repeat}
div.dark_rounded .pp_arrow_next{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -22px -71px no-repeat}
div.dark_rounded .pp_bottom .pp_left{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -80px no-repeat}
div.dark_rounded .pp_bottom .pp_right{background:url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -80px no-repeat}
div.dark_rounded .pp_loaderIcon{background:url(../images/prettyPhoto/dark_rounded/loader.gif) center center no-repeat}
div.dark_square .pp_left,div.dark_square .pp_middle,div.dark_square .pp_right,div.dark_square .pp_content{background:#000}
div.dark_square .pp_description{color:#fff;margin:0 85px 0 0}
div.dark_square .pp_loaderIcon{background:url(../images/prettyPhoto/dark_square/loader.gif) center center no-repeat}
div.dark_square .pp_expand{background:url(../images/prettyPhoto/dark_square/sprite.png) -31px -26px no-repeat;cursor:pointer}
div.dark_square .pp_expand:hover{background:url(../images/prettyPhoto/dark_square/sprite.png) -31px -47px no-repeat;cursor:pointer}
div.dark_square .pp_contract{background:url(../images/prettyPhoto/dark_square/sprite.png) 0 -26px no-repeat;cursor:pointer}
div.dark_square .pp_contract:hover{background:url(../images/prettyPhoto/dark_square/sprite.png) 0 -47px no-repeat;cursor:pointer}
div.dark_square .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/dark_square/sprite.png) -1px -1px no-repeat;cursor:pointer}
div.dark_square .pp_nav{clear:none}
div.dark_square .pp_nav .pp_play{background:url(../images/prettyPhoto/dark_square/sprite.png) -1px -100px no-repeat;height:15px;width:14px}
div.dark_square .pp_nav .pp_pause{background:url(../images/prettyPhoto/dark_square/sprite.png) -24px -100px no-repeat;height:15px;width:14px}
div.dark_square .pp_arrow_previous{background:url(../images/prettyPhoto/dark_square/sprite.png) 0 -71px no-repeat}
div.dark_square .pp_arrow_next{background:url(../images/prettyPhoto/dark_square/sprite.png) -22px -71px no-repeat}
div.dark_square .pp_next:hover{background:url(../images/prettyPhoto/dark_square/btnNext.png) center right no-repeat;cursor:pointer}
div.dark_square .pp_previous:hover{background:url(../images/prettyPhoto/dark_square/btnPrevious.png) center left no-repeat;cursor:pointer}
div.light_square .pp_expand{background:url(../images/prettyPhoto/light_square/sprite.png) -31px -26px no-repeat;cursor:pointer}
div.light_square .pp_expand:hover{background:url(../images/prettyPhoto/light_square/sprite.png) -31px -47px no-repeat;cursor:pointer}
div.light_square .pp_contract{background:url(../images/prettyPhoto/light_square/sprite.png) 0 -26px no-repeat;cursor:pointer}
div.light_square .pp_contract:hover{background:url(../images/prettyPhoto/light_square/sprite.png) 0 -47px no-repeat;cursor:pointer}
div.light_square .pp_close{width:75px;height:22px;background:url(../images/prettyPhoto/light_square/sprite.png) -1px -1px no-repeat;cursor:pointer}
div.light_square .pp_nav .pp_play{background:url(../images/prettyPhoto/light_square/sprite.png) -1px -100px no-repeat;height:15px;width:14px}
div.light_square .pp_nav .pp_pause{background:url(../images/prettyPhoto/light_square/sprite.png) -24px -100px no-repeat;height:15px;width:14px}
div.light_square .pp_arrow_previous{background:url(../images/prettyPhoto/light_square/sprite.png) 0 -71px no-repeat}
div.light_square .pp_arrow_next{background:url(../images/prettyPhoto/light_square/sprite.png) -22px -71px no-repeat}
div.light_square .pp_next:hover{background:url(../images/prettyPhoto/light_square/btnNext.png) center right no-repeat;cursor:pointer}
div.light_square .pp_previous:hover{background:url(../images/prettyPhoto/light_square/btnPrevious.png) center left no-repeat;cursor:pointer}
div.facebook .pp_top .pp_left{background:url(../images/prettyPhoto/facebook/sprite.png) -88px -53px no-repeat}
div.facebook .pp_top .pp_middle{background:url(../images/prettyPhoto/facebook/contentPatternTop.png) top left repeat-x}
div.facebook .pp_top .pp_right{background:url(../images/prettyPhoto/facebook/sprite.png) -110px -53px no-repeat}
div.facebook .pp_content_container .pp_left{background:url(../images/prettyPhoto/facebook/contentPatternLeft.png) top left repeat-y}
div.facebook .pp_content_container .pp_right{background:url(../images/prettyPhoto/facebook/contentPatternRight.png) top right repeat-y}
div.facebook .pp_expand{background:url(../images/prettyPhoto/facebook/sprite.png) -31px -26px no-repeat;cursor:pointer}
div.facebook .pp_expand:hover{background:url(../images/prettyPhoto/facebook/sprite.png) -31px -47px no-repeat;cursor:pointer}
div.facebook .pp_contract{background:url(../images/prettyPhoto/facebook/sprite.png) 0 -26px no-repeat;cursor:pointer}
div.facebook .pp_contract:hover{background:url(../images/prettyPhoto/facebook/sprite.png) 0 -47px no-repeat;cursor:pointer}
div.facebook .pp_close{width:22px;height:22px;background:url(../images/prettyPhoto/facebook/sprite.png) -1px -1px no-repeat;cursor:pointer}
div.facebook .pp_description{margin:0 37px 0 0}
div.facebook .pp_loaderIcon{background:url(../images/prettyPhoto/facebook/loader.gif) center center no-repeat}
div.facebook .pp_arrow_previous{background:url(../images/prettyPhoto/facebook/sprite.png) 0 -71px no-repeat;height:22px;margin-top:0;width:22px}
div.facebook .pp_arrow_previous.disabled{background-position:0 -96px;cursor:default}
div.facebook .pp_arrow_next{background:url(../images/prettyPhoto/facebook/sprite.png) -32px -71px no-repeat;height:22px;margin-top:0;width:22px}
div.facebook .pp_arrow_next.disabled{background-position:-32px -96px;cursor:default}
div.facebook .pp_nav{margin-top:0}
div.facebook .pp_nav p{font-size:15px;padding:0 3px 0 4px}
div.facebook .pp_nav .pp_play{background:url(../images/prettyPhoto/facebook/sprite.png) -1px -123px no-repeat;height:22px;width:22px}
div.facebook .pp_nav .pp_pause{background:url(../images/prettyPhoto/facebook/sprite.png) -32px -123px no-repeat;height:22px;width:22px}
div.facebook .pp_next:hover{background:url(../images/prettyPhoto/facebook/btnNext.png) center right no-repeat;cursor:pointer}
div.facebook .pp_previous:hover{background:url(../images/prettyPhoto/facebook/btnPrevious.png) center left no-repeat;cursor:pointer}
div.facebook .pp_bottom .pp_left{background:url(../images/prettyPhoto/facebook/sprite.png) -88px -80px no-repeat}
div.facebook .pp_bottom .pp_middle{background:url(../images/prettyPhoto/facebook/contentPatternBottom.png) top left repeat-x}
div.facebook .pp_bottom .pp_right{background:url(../images/prettyPhoto/facebook/sprite.png) -110px -80px no-repeat}
div.pp_pic_holder a:focus{outline:none}
div.pp_overlay{background:#000;display:none;left:0;position:absolute;top:0;width:100%;z-index:9500}
div.pp_pic_holder{display:none;position:absolute;width:100px;z-index:10000}
.pp_content{height:40px;min-width:40px}
* html .pp_content{width:40px}
.pp_content_container{position:relative;text-align:left;width:100%}
.pp_content_container .pp_left{padding-left:20px}
.pp_content_container .pp_right{padding-right:20px}
.pp_content_container .pp_details{float:left;margin:10px 0 2px}
.pp_description{display:none;margin:0}
.pp_social{float:left;margin:0}
.pp_social .facebook{float:left;margin-left:5px;width:55px;overflow:hidden}
.pp_social .twitter{float:left}
.pp_nav{clear:right;float:left;margin:3px 10px 0 0}
.pp_nav p{float:left;white-space:nowrap;margin:2px 4px}
.pp_nav .pp_play,.pp_nav .pp_pause{float:left;margin-right:4px;text-indent:-10000px}
a.pp_arrow_previous,a.pp_arrow_next{display:block;float:left;height:15px;margin-top:3px;overflow:hidden;text-indent:-10000px;width:14px}
.pp_hoverContainer{position:absolute;top:0;width:100%;z-index:2000}
.pp_gallery{display:none;left:50%;margin-top:-50px;position:absolute;z-index:10000}
.pp_gallery div{float:left;overflow:hidden;position:relative}
.pp_gallery ul{float:left;height:35px;position:relative;white-space:nowrap;margin:0 0 0 5px;padding:0}
.pp_gallery ul a{border:1px rgba(0,0,0,0.5) solid;display:block;float:left;height:33px;overflow:hidden}
.pp_gallery ul a img{border:0}
.pp_gallery li{display:block;float:left;margin:0 5px 0 0;padding:0}
.pp_gallery li.default a{background:url(../images/prettyPhoto/facebook/default_thumbnail.gif) 0 0 no-repeat;display:block;height:33px;width:50px}
.pp_gallery .pp_arrow_previous,.pp_gallery .pp_arrow_next{margin-top:7px!important}
a.pp_next{background:url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat;display:block;float:right;height:100%;text-indent:-10000px;width:49%}
a.pp_previous{background:url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat;display:block;float:left;height:100%;text-indent:-10000px;width:49%}
a.pp_expand,a.pp_contract{cursor:pointer;display:none;height:20px;position:absolute;right:30px;text-indent:-10000px;top:10px;width:20px;z-index:20000}
a.pp_close{position:absolute;right:0;top:0;display:block;line-height:22px;text-indent:-10000px}
.pp_loaderIcon{display:block;height:24px;left:50%;position:absolute;top:50%;width:24px;margin:-12px 0 0 -12px}
#pp_full_res{line-height:1!important}
#pp_full_res .pp_inline{text-align:left}
#pp_full_res .pp_inline p{margin:0 0 15px}
div.ppt{color:#fff;display:none;font-size:17px;z-index:9999;margin:0 0 5px 15px}
div.pp_default .pp_content,div.light_rounded .pp_content{background-color:#fff}
div.pp_default #pp_full_res .pp_inline,div.light_rounded .pp_content .ppt,div.light_rounded #pp_full_res .pp_inline,div.light_square .pp_content .ppt,div.light_square #pp_full_res .pp_inline,div.facebook .pp_content .ppt,div.facebook #pp_full_res .pp_inline{color:#000}
div.pp_default .pp_gallery ul li a:hover,div.pp_default .pp_gallery ul li.selected a,.pp_gallery ul a:hover,.pp_gallery li.selected a{border-color:#fff}
div.pp_default .pp_details,div.light_rounded .pp_details,div.dark_rounded .pp_details,div.dark_square .pp_details,div.light_square .pp_details,div.facebook .pp_details{position:relative}
div.light_rounded .pp_top .pp_middle,div.light_rounded .pp_content_container .pp_left,div.light_rounded .pp_content_container .pp_right,div.light_rounded .pp_bottom .pp_middle,div.light_square .pp_left,div.light_square .pp_middle,div.light_square .pp_right,div.light_square .pp_content,div.facebook .pp_content{background:#fff}
div.light_rounded .pp_description,div.light_square .pp_description{margin-right:85px}
div.light_rounded .pp_gallery a.pp_arrow_previous,div.light_rounded .pp_gallery a.pp_arrow_next,div.dark_rounded .pp_gallery a.pp_arrow_previous,div.dark_rounded .pp_gallery a.pp_arrow_next,div.dark_square .pp_gallery a.pp_arrow_previous,div.dark_square .pp_gallery a.pp_arrow_next,div.light_square .pp_gallery a.pp_arrow_previous,div.light_square .pp_gallery a.pp_arrow_next{margin-top:12px!important}
div.light_rounded .pp_arrow_previous.disabled,div.dark_rounded .pp_arrow_previous.disabled,div.dark_square .pp_arrow_previous.disabled,div.light_square .pp_arrow_previous.disabled{background-position:0 -87px;cursor:default}
div.light_rounded .pp_arrow_next.disabled,div.dark_rounded .pp_arrow_next.disabled,div.dark_square .pp_arrow_next.disabled,div.light_square .pp_arrow_next.disabled{background-position:-22px -87px;cursor:default}
div.light_rounded .pp_loaderIcon,div.light_square .pp_loaderIcon{background:url(../images/prettyPhoto/light_rounded/loader.gif) center center no-repeat}
div.dark_rounded .pp_top .pp_middle,div.dark_rounded .pp_content,div.dark_rounded .pp_bottom .pp_middle{background:url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat}
div.dark_rounded .currentTextHolder,div.dark_square .currentTextHolder{color:#c4c4c4}
div.dark_rounded #pp_full_res .pp_inline,div.dark_square #pp_full_res .pp_inline{color:#fff}
.pp_top,.pp_bottom{height:20px;position:relative}
* html .pp_top,* html .pp_bottom{padding:0 20px}
.pp_top .pp_left,.pp_bottom .pp_left{height:20px;left:0;position:absolute;width:20px}
.pp_top .pp_middle,.pp_bottom .pp_middle{height:20px;left:20px;position:absolute;right:20px}
* html .pp_top .pp_middle,* html .pp_bottom .pp_middle{left:0;position:static}
.pp_top .pp_right,.pp_bottom .pp_right{height:20px;left:auto;position:absolute;right:0;top:0;width:20px}
.pp_fade,.pp_gallery li.default a img{display:none}

================================================
FILE: flat/static/js/html5shiv.js
================================================
/*
 HTML5 Shiv v3.6.2pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}</style>";
c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",version:"3.6.2pre",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment();
for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);


================================================
FILE: flat/static/js/jquery.js
================================================
/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
//@ sourceMappingURL=jquery-1.10.2.min.map
*/
(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t
}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event
Download .txt
gitextract_vc20vo_6/

├── .gitignore
├── .hgignore
├── LICENSE
├── README.md
├── __init__.py
├── deploy/
│   ├── crontab
│   ├── gunicorn.conf.py.template
│   ├── local_settings.py.template
│   ├── nginx.conf
│   └── supervisor.conf
├── fabfile.py
├── flat/
│   ├── __init__.py
│   ├── admin.py
│   ├── models.py
│   ├── static/
│   │   ├── css/
│   │   │   ├── animate.css
│   │   │   ├── main.css
│   │   │   ├── main.css~
│   │   │   └── prettyPhoto.css
│   │   ├── fonts/
│   │   │   └── FontAwesome.otf
│   │   └── js/
│   │       ├── html5shiv.js
│   │       ├── jquery.js
│   │       ├── jquery.prettyPhoto.js
│   │       └── main.js
│   ├── templates/
│   │   ├── accounts/
│   │   │   ├── account_form.html
│   │   │   ├── account_login.html
│   │   │   ├── account_password_reset.html
│   │   │   ├── account_profile.html
│   │   │   ├── account_profile_update.html
│   │   │   ├── account_signup.html
│   │   │   └── includes/
│   │   │       ├── user_panel.html
│   │   │       └── user_panel_nav.html
│   │   ├── base.html
│   │   ├── blog/
│   │   │   ├── blog_post_detail.html
│   │   │   ├── blog_post_list.html
│   │   │   └── includes/
│   │   │       └── filter_panel.html
│   │   ├── generic/
│   │   │   ├── comments.html
│   │   │   └── includes/
│   │   │       ├── comment.html
│   │   │       ├── comment_form.html
│   │   │       ├── comments.html
│   │   │       ├── disqus_comments.html
│   │   │       ├── disqus_counts.html
│   │   │       ├── disqus_sso.html
│   │   │       └── rating.html
│   │   ├── includes/
│   │   │   ├── editable_form.html
│   │   │   ├── editable_loader.html
│   │   │   ├── editable_toolbar.html
│   │   │   ├── footer_scripts.html
│   │   │   ├── form_errors.html
│   │   │   ├── form_fields.html
│   │   │   ├── pagination.html
│   │   │   ├── search_form.html
│   │   │   └── user_panel.html
│   │   ├── index.html
│   │   ├── pages/
│   │   │   ├── form.html
│   │   │   ├── gallery.html
│   │   │   ├── index.html
│   │   │   ├── menus/
│   │   │   │   ├── admin.html
│   │   │   │   ├── breadcrumb.html
│   │   │   │   ├── dropdown.html
│   │   │   │   ├── footer.html
│   │   │   │   ├── footer_tree.html
│   │   │   │   ├── mobile.html
│   │   │   │   ├── primary.html
│   │   │   │   └── tree.html
│   │   │   ├── page.html
│   │   │   └── richtextpage.html
│   │   └── search_results.html
│   ├── tests.py
│   └── views.py
├── manage.py
├── moderna/
│   ├── __init__.py
│   ├── admin.py
│   ├── models.py
│   ├── static/
│   │   ├── css/
│   │   │   ├── animate.css
│   │   │   ├── custom-fonts.css
│   │   │   ├── fancybox/
│   │   │   │   └── jquery.fancybox.css
│   │   │   ├── flexslider.css
│   │   │   ├── font-awesome.css
│   │   │   ├── mezzanine.css
│   │   │   ├── overwrite.css
│   │   │   └── style.css
│   │   ├── fonts/
│   │   │   └── FontAwesome.otf
│   │   ├── js/
│   │   │   ├── animate.js
│   │   │   ├── custom.js
│   │   │   ├── flexslider/
│   │   │   │   ├── jquery.flexslider.js
│   │   │   │   └── setting.js
│   │   │   ├── google-code-prettify/
│   │   │   │   ├── prettify.css
│   │   │   │   └── prettify.js
│   │   │   ├── jquery.easing.1.3.js
│   │   │   ├── jquery.fancybox-media.js
│   │   │   ├── jquery.fancybox.pack.js
│   │   │   ├── jquery.flexslider.js
│   │   │   ├── jquery.js
│   │   │   ├── portfolio/
│   │   │   │   ├── jquery.quicksand.js
│   │   │   │   └── setting.js
│   │   │   ├── quicksand/
│   │   │   │   ├── jquery.quicksand.js
│   │   │   │   └── setting.js
│   │   │   └── validate.js
│   │   └── skins/
│   │       └── default.css
│   ├── templates/
│   │   ├── base.html
│   │   ├── blog/
│   │   │   ├── blog_post_detail.html
│   │   │   ├── blog_post_list.html
│   │   │   └── includes/
│   │   │       └── filter_panel.html
│   │   ├── generic/
│   │   │   ├── comments.html
│   │   │   └── includes/
│   │   │       ├── comment.html
│   │   │       ├── comment_form.html
│   │   │       ├── comments.html
│   │   │       ├── disqus_comments.html
│   │   │       ├── disqus_counts.html
│   │   │       ├── disqus_sso.html
│   │   │       └── rating.html
│   │   ├── index.html
│   │   ├── pages/
│   │   │   ├── form.html
│   │   │   ├── gallery.html
│   │   │   ├── index.html
│   │   │   ├── menus/
│   │   │   │   ├── admin.html
│   │   │   │   ├── breadcrumb.html
│   │   │   │   ├── dropdown.html
│   │   │   │   ├── footer.html
│   │   │   │   ├── footer_tree.html
│   │   │   │   ├── mobile.html
│   │   │   │   ├── primary.html
│   │   │   │   └── tree.html
│   │   │   ├── page.html
│   │   │   └── richtextpage.html
│   │   └── search_results.html
│   ├── tests.py
│   └── views.py
├── nova/
│   ├── __init__.py
│   ├── admin.py
│   ├── models.py
│   ├── static/
│   │   ├── css/
│   │   │   ├── docs.css
│   │   │   ├── main.css
│   │   │   ├── main.less
│   │   │   ├── mezzanine.css
│   │   │   ├── mixins.css
│   │   │   ├── mixins.less
│   │   │   ├── prettify.css
│   │   │   ├── sl-slide.css
│   │   │   ├── variables.css
│   │   │   └── variables.less
│   │   ├── font/
│   │   │   └── FontAwesome.otf
│   │   ├── images/
│   │   │   └── sample/
│   │   │       └── index.html
│   │   └── js/
│   │       ├── jquery.slitslider.js
│   │       └── main.js
│   ├── templates/
│   │   ├── base.html
│   │   ├── blog/
│   │   │   ├── blog_post_detail.html
│   │   │   ├── blog_post_list.html
│   │   │   └── includes/
│   │   │       └── filter_panel.html
│   │   ├── generic/
│   │   │   ├── comments.html
│   │   │   └── includes/
│   │   │       ├── comment.html
│   │   │       ├── comment_form.html
│   │   │       ├── comments.html
│   │   │       ├── disqus_comments.html
│   │   │       ├── disqus_counts.html
│   │   │       ├── disqus_sso.html
│   │   │       └── rating.html
│   │   ├── index.html
│   │   ├── pages/
│   │   │   ├── form.html
│   │   │   ├── gallery.html
│   │   │   ├── index.html
│   │   │   ├── menus/
│   │   │   │   ├── admin.html
│   │   │   │   ├── breadcrumb.html
│   │   │   │   ├── dropdown.html
│   │   │   │   ├── footer.html
│   │   │   │   ├── footer_tree.html
│   │   │   │   ├── mobile.html
│   │   │   │   ├── primary.html
│   │   │   │   └── tree.html
│   │   │   ├── page.html
│   │   │   └── richtextpage.html
│   │   ├── search_results.html
│   │   └── twitter/
│   │       └── tweets.html
│   ├── tests.py
│   └── views.py
├── requirements.txt
├── settings.py
├── solid/
│   ├── __init__.py
│   ├── admin.py
│   ├── models.py
│   ├── static/
│   │   ├── css/
│   │   │   ├── bootstrap.css
│   │   │   ├── hoverex-all.css
│   │   │   ├── mezzanine.css
│   │   │   ├── prettyPhoto.css
│   │   │   └── style.css
│   │   ├── fonts/
│   │   │   └── FontAwesome.otf
│   │   └── js/
│   │       ├── custom.js
│   │       ├── jquery.hoverdir.js
│   │       ├── jquery.prettyPhoto.js
│   │       └── retina-1.1.0.js
│   ├── templates/
│   │   ├── base.html
│   │   ├── blog/
│   │   │   ├── blog_post_detail.html
│   │   │   ├── blog_post_list.html
│   │   │   └── includes/
│   │   │       └── filter_panel.html
│   │   ├── email/
│   │   │   ├── base.html
│   │   │   ├── base.txt
│   │   │   ├── comment_notification.html
│   │   │   ├── comment_notification.txt
│   │   │   ├── form_response.html
│   │   │   ├── form_response.txt
│   │   │   ├── form_response_copies.html
│   │   │   └── form_response_copies.txt
│   │   ├── errors/
│   │   │   ├── 404.html
│   │   │   └── 500.html
│   │   ├── generic/
│   │   │   ├── comments.html
│   │   │   └── includes/
│   │   │       ├── comment.html
│   │   │       ├── comments.html
│   │   │       ├── disqus_comments.html
│   │   │       ├── disqus_counts.html
│   │   │       ├── disqus_sso.html
│   │   │       └── rating.html
│   │   ├── includes/
│   │   │   ├── editable_form.html
│   │   │   ├── editable_loader.html
│   │   │   ├── editable_toolbar.html
│   │   │   ├── footer_scripts.html
│   │   │   ├── footer_scripts.html~
│   │   │   ├── form_errors.html
│   │   │   ├── form_fields.html
│   │   │   ├── pagination.html
│   │   │   ├── search_form.html
│   │   │   └── user_panel.html
│   │   ├── index.html
│   │   ├── pages/
│   │   │   ├── form.html
│   │   │   ├── gallery.html
│   │   │   ├── index.html
│   │   │   ├── menus/
│   │   │   │   ├── admin.html
│   │   │   │   ├── breadcrumb.html
│   │   │   │   ├── dropdown1.html
│   │   │   │   ├── footer.html
│   │   │   │   ├── footer_tree.html
│   │   │   │   ├── mobile.html
│   │   │   │   ├── primary.html
│   │   │   │   └── tree.html
│   │   │   ├── page.html
│   │   │   └── richtextpage.html
│   │   ├── search_results.html
│   │   └── twitter/
│   │       └── tweets.html
│   ├── tests.py
│   └── views.py
├── urls.py
└── wsgi.py
Download .txt
SYMBOL INDEX (200 symbols across 10 files)

FILE: fabfile.py
  function virtualenv (line 103) | def virtualenv():
  function project (line 113) | def project():
  function update_changed_requirements (line 123) | def update_changed_requirements():
  function _print (line 155) | def _print(output):
  function print_command (line 161) | def print_command(command):
  function run (line 168) | def run(command, show=True):
  function sudo (line 179) | def sudo(command, show=True):
  function log_call (line 189) | def log_call(func):
  function get_templates (line 198) | def get_templates():
  function upload_template_and_reload (line 208) | def upload_template_and_reload(name):
  function db_pass (line 245) | def db_pass():
  function apt (line 255) | def apt(packages):
  function pip (line 263) | def pip(packages):
  function postgres (line 271) | def postgres(command):
  function psql (line 280) | def psql(sql, show=True):
  function backup (line 291) | def backup(filename):
  function restore (line 299) | def restore(filename):
  function python (line 307) | def python(code, show=True):
  function static (line 320) | def static():
  function manage (line 329) | def manage(command):
  function install (line 342) | def install():
  function create (line 360) | def create():
  function remove (line 445) | def remove():
  function restart (line 465) | def restart():
  function deploy (line 479) | def deploy():
  function rollback (line 516) | def rollback():
  function all (line 536) | def all():

FILE: flat/static/js/html5shiv.js
  function m (line 4) | function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}
  function i (line 4) | function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}
  function p (line 4) | function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=...
  function t (line 4) | function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.cr...
  function q (line 5) | function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a...

FILE: flat/static/js/jquery.js
  function M (line 4) | function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.n...
  function at (line 4) | function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)...
  function st (line 4) | function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLeng...
  function lt (line 4) | function lt(e){return e[b]=!0,e}
  function ut (line 4) | function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){re...
  function ct (line 4) | function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[...
  function pt (line 4) | function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sou...
  function ft (line 4) | function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"...
  function dt (line 4) | function dt(e){return function(t){var n=t.nodeName.toLowerCase();return(...
  function ht (line 4) | function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,...
  function gt (line 4) | function gt(){}
  function mt (line 4) | function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0)...
  function yt (line 4) | function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}
  function vt (line 4) | function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.firs...
  function bt (line 4) | function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i-...
  function xt (line 4) | function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)...
  function wt (line 4) | function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)...
  function Tt (line 4) | function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relat...
  function Ct (line 4) | function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d)...
  function Nt (line 4) | function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}
  function kt (line 4) | function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0...
  function F (line 4) | function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t...
  function R (line 5) | function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType...
  function W (line 5) | function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e...
  function $ (line 5) | function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-...
  function I (line 5) | function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&...
  function it (line 5) | function it(){return!0}
  function ot (line 5) | function ot(){return!1}
  function at (line 5) | function at(){try{return a.activeElement}catch(e){}}
  function pt (line 5) | function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}
  function ft (line 5) | function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){retu...
  function dt (line 5) | function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.cre...
  function Lt (line 5) | function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType...
  function Ht (line 5) | function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}
  function qt (line 5) | function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttrib...
  function _t (line 5) | function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval...
  function Mt (line 5) | function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e)...
  function Ot (line 5) | function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCas...
  function Ft (line 5) | function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getEl...
  function Bt (line 5) | function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}
  function tn (line 6) | function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.sl...
  function nn (line 6) | function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(...
  function rn (line 6) | function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.sty...
  function on (line 6) | function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[...
  function an (line 6) | function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:...
  function sn (line 6) | function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o...
  function ln (line 6) | function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(...
  function un (line 6) | function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[...
  function gn (line 6) | function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn....
  function Hn (line 6) | function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var ...
  function qn (line 6) | function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!...
  function _n (line 6) | function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i...
  function k (line 6) | function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t...
  function Mn (line 6) | function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[...
  function On (line 6) | function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])fo...
  function In (line 6) | function In(){try{return new e.XMLHttpRequest}catch(t){}}
  function zn (line 6) | function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(...
  function Kn (line 6) | function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}
  function Zn (line 6) | function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;fo...
  function er (line 6) | function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(functio...
  function tr (line 6) | function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e...
  function nr (line 6) | function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&n...
  function rr (line 6) | function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}
  function ir (line 6) | function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r...
  function or (line 6) | function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.pa...

FILE: flat/static/js/jquery.prettyPhoto.js
  function t (line 7) | function t(){var e=location.href;hashtag=e.indexOf("#prettyPhoto")!==-1?...
  function n (line 7) | function n(){if(typeof theRel=="undefined")return;location.hash=theRel+"...
  function r (line 7) | function r(){if(location.href.indexOf("#prettyPhoto")!==-1)location.hash...
  function i (line 7) | function i(e,t){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var n="[...
  function g (line 7) | function g(){e(".pp_loaderIcon").hide();projectedTop=scroll_pos["scrollT...
  function y (line 7) | function y(t){$pp_pic_holder.find("#pp_full_res object,#pp_full_res embe...
  function b (line 7) | function b(t){t>1?e(".pp_nav").show():e(".pp_nav").hide()}
  function w (line 7) | function w(e,t){resized=false;E(e,t);imageWidth=e,imageHeight=t;if((p>v|...
  function E (line 7) | function E(t,n){t=parseFloat(t);n=parseFloat(n);$pp_details=$pp_pic_hold...
  function S (line 7) | function S(e){if(e.match(/youtube\.com\/watch/i)||e.match(/youtu\.be/i))...
  function x (line 7) | function x(){if(doresize&&typeof $pp_pic_holder!="undefined"){scroll_pos...
  function T (line 7) | function T(){if(self.pageYOffset){return{scrollTop:self.pageYOffset,scro...
  function N (line 7) | function N(){d=e(window).height(),v=e(window).width();if(typeof $pp_over...
  function C (line 7) | function C(){if(isSet&&settings.overlay_gallery&&S(pp_images[set_positio...
  function k (line 7) | function k(t){if(settings.social_tools)facebook_like_link=settings.socia...

FILE: moderna/static/js/flexslider/jquery.flexslider.js
  function keyboardMove (line 173) | function keyboardMove(event) {
  function onTouchStart (line 283) | function onTouchStart(e) {
  function onTouchMove (line 300) | function onTouchMove(e) {
  function onTouchEnd (line 316) | function onTouchEnd(e) {

FILE: moderna/static/js/google-code-prettify/prettify.js
  function L (line 2) | function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var...
  function M (line 6) | function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.classN...
  function B (line 7) | function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}
  function x (line 7) | function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(...
  function u (line 9) | function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''...
  function D (line 12) | function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.clas...
  function k (line 15) | function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(...
  function C (line 15) | function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-m...
  function E (line 15) | function E(a){var m=
  function m (line 25) | function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Inf...

FILE: moderna/static/js/jquery.flexslider.js
  function onTouchStart (line 331) | function onTouchStart(e) {
  function onTouchMove (line 353) | function onTouchMove(e) {
  function onTouchEnd (line 368) | function onTouchEnd(e) {

FILE: moderna/static/js/jquery.js
  function G (line 3) | function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=...
  function J (line 3) | function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-...
  function K (line 3) | function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))con...
  function ba (line 3) | function ba(){return!1}
  function bb (line 3) | function bb(){return!0}
  function bh (line 3) | function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}
  function bi (line 3) | function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}
  function bj (line 3) | function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,...
  function bk (line 3) | function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.cre...
  function bC (line 3) | function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ow...
  function bD (line 3) | function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._...
  function bE (line 3) | function bE(a,b){var c;if(b.nodeType!==1)return;b.clearAttributes&&b.cle...
  function bF (line 3) | function bF(a){return typeof a.getElementsByTagName!="undefined"?a.getEl...
  function bG (line 3) | function bG(a){bv.test(a.type)&&(a.defaultChecked=a.checked)}
  function bY (line 3) | function bY(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.sl...
  function bZ (line 3) | function bZ(a,b){return a=b||a,p.css(a,"display")==="none"||!p.contains(...
  function b$ (line 3) | function b$(a,b){var c,d,e=[],f=0,g=a.length;for(;f<g;f++){c=a[f];if(!c....
  function b_ (line 3) | function b_(a,b,c){var d=bP.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[...
  function ca (line 3) | function ca(a,b,c,d){var e=c===(d?"border":"content")?4:b==="width"?1:0,...
  function cb (line 3) | function cb(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=!0,f...
  function cc (line 3) | function cc(a){if(bS[a])return bS[a];var b=p("<"+a+">").appendTo(e.body)...
  function ci (line 3) | function ci(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||ce....
  function cz (line 3) | function cz(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var ...
  function cA (line 3) | function cA(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h,i=a[f...
  function cB (line 3) | function cB(a,c){var d,e,f=p.ajaxSettings.flatOptions||{};for(d in c)c[d...
  function cC (line 3) | function cC(a,c,d){var e,f,g,h,i=a.contents,j=a.dataTypes,k=a.responseFi...
  function cD (line 3) | function cD(a,b){var c,d,e,f,g=a.dataTypes.slice(),h=g[0],i={},j=0;a.dat...
  function cL (line 3) | function cL(){try{return new a.XMLHttpRequest}catch(b){}}
  function cM (line 3) | function cM(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(...
  function cU (line 3) | function cU(){return setTimeout(function(){cN=b},0),cN=p.now()}
  function cV (line 3) | function cV(a,b){p.each(b,function(b,c){var d=(cT[b]||[]).concat(cT["*"]...
  function cW (line 3) | function cW(a,b,c){var d,e=0,f=0,g=cS.length,h=p.Deferred().always(funct...
  function cX (line 3) | function cX(a,b){var c,d,e,f,g;for(c in a){d=p.camelCase(c),e=b[d],f=a[c...
  function cY (line 3) | function cY(a,b,c){var d,e,f,g,h,i,j,k,l=this,m=a.style,n={},o=[],q=a.no...
  function cZ (line 3) | function cZ(a,b,c,d,e){return new cZ.prototype.init(a,b,c,d,e)}
  function c$ (line 3) | function c$(a,b){var c,d={height:a},e=0;b=b?1:0;for(;e<4;e+=2-b)c=bV[e],...
  function da (line 3) | function da(a){return p.isWindow(a)?a:a.nodeType===9?a.defaultView||a.pa...
  function $ (line 3) | function $(a,b,c,d){c=c||[],b=b||q;var e,f,g,j,k=b.nodeType;if(k!==1&&k!...
  function _ (line 3) | function _(a){return function(b){var c=b.nodeName.toLowerCase();return c...
  function ba (line 3) | function ba(a){return function(b){var c=b.nodeName.toLowerCase();return(...
  function bb (line 3) | function bb(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d==...
  function bc (line 3) | function bc(a,b,c,d){var e,g,h,i,j,k,l,m,n,p,r=!c&&b!==q,s=(r?"<s>":"")+...
  function bd (line 3) | function bd(a,b,e,f){var g=b.dir,h=s++;return a||(a=function(a){return a...
  function be (line 3) | function be(a,b){return a?function(c){var d=b(c);return d&&a(d===!0?c:d)...
  function bf (line 3) | function bf(a,b,c){var d,e,g=0;for(;d=a[g];g++)f.relative[d.part]?e=bd(e...
  function bg (line 3) | function bg(a){return function(b){var c,d=0;for(;c=a[d];d++)if(c(b))retu...
  function bh (line 3) | function bh(a,b,c,d){var e=0,f=b.length;for(;e<f;e++)$(a,b[e],c,d)}
  function bi (line 3) | function bi(a,b,c,d,e,g){var h,i=f.setFilters[b.toLowerCase()];return i|...
  function bj (line 3) | function bj(a,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s=0,t=a.length,v=S.PO...
  function bk (line 3) | function bk(a,b,e,g,h){a=a.replace(H,"$1");var i,k,l,m,n,o,p,q,r,s,v=bc(...
  function a (line 3) | function a(b,c){return new a.fn.init(b,c)}
  function y (line 3) | function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeou...

FILE: solid/static/js/jquery.prettyPhoto.js
  function t (line 7) | function t(){var e=location.href;hashtag=e.indexOf("#prettyPhoto")!==-1?...
  function n (line 7) | function n(){if(typeof theRel=="undefined")return;location.hash=theRel+"...
  function r (line 7) | function r(){if(location.href.indexOf("#prettyPhoto")!==-1)location.hash...
  function i (line 7) | function i(e,t){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var n="[...
  function g (line 7) | function g(){e(".pp_loaderIcon").hide();projectedTop=scroll_pos["scrollT...
  function y (line 7) | function y(t){$pp_pic_holder.find("#pp_full_res object,#pp_full_res embe...
  function b (line 7) | function b(t){t>1?e(".pp_nav").show():e(".pp_nav").hide()}
  function w (line 7) | function w(e,t){resized=false;E(e,t);imageWidth=e,imageHeight=t;if((p>v|...
  function E (line 7) | function E(t,n){t=parseFloat(t);n=parseFloat(n);$pp_details=$pp_pic_hold...
  function S (line 7) | function S(e){if(e.match(/youtube\.com\/watch/i)||e.match(/youtu\.be/i))...
  function x (line 7) | function x(){if(doresize&&typeof $pp_pic_holder!="undefined"){scroll_pos...
  function T (line 7) | function T(){if(self.pageYOffset){return{scrollTop:self.pageYOffset,scro...
  function N (line 7) | function N(){d=e(window).height(),v=e(window).width();if(typeof $pp_over...
  function C (line 7) | function C(){if(isSet&&settings.overlay_gallery&&S(pp_images[set_positio...
  function k (line 7) | function k(t){if(settings.social_tools)facebook_like_link=settings.socia...

FILE: solid/static/js/retina-1.1.0.js
  function Retina (line 24) | function Retina() {}
  function RetinaImagePath (line 64) | function RetinaImagePath(path, at_2x_path) {
  function RetinaImage (line 117) | function RetinaImage(el) {
  function load (line 132) | function load() {
Condensed preview — 241 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,440K chars).
[
  {
    "path": ".gitignore",
    "chars": 63,
    "preview": "*.pyc\n*.pyo\n*.db\n.DS_Store\n.coverage\nlocal_settings.py\n/static\n"
  },
  {
    "path": ".hgignore",
    "chars": 93,
    "preview": "syntax: glob\n*.pyc\n*.pyo\n*.db\n.DS_Store\n.coverage\nlocal_settings.py\n\nsyntax: regexp\n^static/\n"
  },
  {
    "path": "LICENSE",
    "chars": 1082,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2014 thecodinghouse\n\nPermission is hereby granted, free of charge, to any person ob"
  },
  {
    "path": "README.md",
    "chars": 892,
    "preview": "# mezzanine-themes\n\n### Free themes for Mezzanine CMS.\n\n\n\nThis is a mezzanine project which contains free mezzanine them"
  },
  {
    "path": "__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "deploy/crontab",
    "chars": 45,
    "preview": "*/5 * * * * %(user)s %(manage)s poll_twitter\n"
  },
  {
    "path": "deploy/gunicorn.conf.py.template",
    "chars": 194,
    "preview": "from __future__ import unicode_literals\nimport multiprocessing\n\nbind = \"127.0.0.1:%(gunicorn_port)s\"\nworkers = multiproc"
  },
  {
    "path": "deploy/local_settings.py.template",
    "chars": 1085,
    "preview": "from __future__ import unicode_literals\n\nSECRET_KEY = \"%(secret_key)s\"\nNEVERCACHE_KEY = \"%(nevercache_key)s\"\nALLOWED_HOS"
  },
  {
    "path": "deploy/nginx.conf",
    "chars": 1354,
    "preview": "\nupstream %(proj_name)s {\n    server 127.0.0.1:%(gunicorn_port)s;\n}\n\nserver {\n\n    listen 80;\n    %(ssl_disabled)s liste"
  },
  {
    "path": "deploy/supervisor.conf",
    "chars": 328,
    "preview": "[group:%(proj_name)s]\nprograms=gunicorn_%(proj_name)s\n\n[program:gunicorn_%(proj_name)s]\ncommand=%(venv_path)s/bin/gunico"
  },
  {
    "path": "fabfile.py",
    "chars": 16441,
    "preview": "from __future__ import print_function, unicode_literals\nfrom future.builtins import input, open\n\nimport os\nimport re\nimp"
  },
  {
    "path": "flat/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "flat/admin.py",
    "chars": 36,
    "preview": "from django.contrib import admin\n\n\n\n"
  },
  {
    "path": "flat/models.py",
    "chars": 1,
    "preview": "\n"
  },
  {
    "path": "flat/static/css/animate.css",
    "chars": 61623,
    "preview": "@charset \"UTF-8\";\n/*\nAnimate.css - http://daneden.me/animate\nLicensed under the MIT license\n\nCopyright (c) 2013 Daniel E"
  },
  {
    "path": "flat/static/css/main.css",
    "chars": 20453,
    "preview": "@import url(http://fonts.googleapis.com/css?family=Roboto:400,700,300);\n.clearfix {\n  *zoom: 1;\n}\n.clearfix:before,\n.cle"
  },
  {
    "path": "flat/static/css/main.css~",
    "chars": 20344,
    "preview": "@import url(http://fonts.googleapis.com/css?family=Roboto:400,700,300);\n.clearfix {\n  *zoom: 1;\n}\n.clearfix:before,\n.cle"
  },
  {
    "path": "flat/static/css/prettyPhoto.css",
    "chars": 19888,
    "preview": "div.pp_default .pp_top,div.pp_default .pp_top .pp_middle,div.pp_default .pp_top .pp_left,div.pp_default .pp_top .pp_righ"
  },
  {
    "path": "flat/static/js/html5shiv.js",
    "chars": 2376,
    "preview": "/*\n HTML5 Shiv v3.6.2pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed\n*/\n(function(l,f){function m(){var a=e.e"
  },
  {
    "path": "flat/static/js/jquery.js",
    "chars": 93106,
    "preview": "/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license\n//@ sourceMappingURL=jquery-1.10.2.min."
  },
  {
    "path": "flat/static/js/jquery.prettyPhoto.js",
    "chars": 22058,
    "preview": "/* ------------------------------------------------------------------------\n\tClass: prettyPhoto\n\tUse: Lightbox clone for"
  },
  {
    "path": "flat/static/js/main.js",
    "chars": 1429,
    "preview": "jQuery(function($) {\n\n\t//#main-slider\n\t$(function(){\n\t\t$('#main-slider.carousel').carousel({\n\t\t\tinterval: 8000\n\t\t});\n\t})"
  },
  {
    "path": "flat/templates/accounts/account_form.html",
    "chars": 790,
    "preview": "{% extends \"base.html\" %}\n{% load i18n mezzanine_tags %}\n\n{% block meta_title %}{{ title }}{% endblock %}\n{% block title"
  },
  {
    "path": "flat/templates/accounts/account_login.html",
    "chars": 869,
    "preview": "{% extends \"accounts/account_form.html\" %}\n{% load i18n %}\n\n{% block main %}\n<section id=\"registration\" class=\"container"
  },
  {
    "path": "flat/templates/accounts/account_password_reset.html",
    "chars": 272,
    "preview": "{% extends \"accounts/account_form.html\" %}\n{% load i18n %}\n\n{% block main %}\n{{ block.super }}\n<p>{% trans \"Enter your u"
  },
  {
    "path": "flat/templates/accounts/account_profile.html",
    "chars": 962,
    "preview": "{% extends \"base.html\" %}\n{% load i18n mezzanine_tags accounts_tags %}\n\n{% block meta_title %}{{ profile_user|username_o"
  },
  {
    "path": "flat/templates/accounts/account_profile_update.html",
    "chars": 43,
    "preview": "{% extends \"accounts/account_form.html\" %}\n"
  },
  {
    "path": "flat/templates/accounts/account_signup.html",
    "chars": 749,
    "preview": "{% extends \"accounts/account_form.html\" %}\n{% load i18n %}\n\n{% block main %}\n<section id=\"registration\" class=\"container"
  },
  {
    "path": "flat/templates/accounts/includes/user_panel.html",
    "chars": 1009,
    "preview": "{% load i18n mezzanine_tags accounts_tags %}\n\n{% if request.user.is_authenticated %}\n    <li>\n    \n    {% url \"profile\" "
  },
  {
    "path": "flat/templates/accounts/includes/user_panel_nav.html",
    "chars": 1037,
    "preview": "{% load i18n mezzanine_tags accounts_tags %}\n\n<div class=\"navbar-right navbar-account-controls\">\n    {% if request.user."
  },
  {
    "path": "flat/templates/base.html",
    "chars": 5918,
    "preview": "<!doctype html>\n<html lang=\"{{ LANGUAGE_CODE }}\"{% if LANGUAGE_BIDI %} dir=\"rtl\"{% endif %}>\n{% load pages_tags mezzanin"
  },
  {
    "path": "flat/templates/blog/blog_post_detail.html",
    "chars": 5440,
    "preview": "{% extends \"blog/blog_post_list.html\" %}\n{% load mezzanine_tags comment_tags keyword_tags rating_tags i18n disqus_tags %"
  },
  {
    "path": "flat/templates/blog/blog_post_list.html",
    "chars": 5793,
    "preview": "{% extends \"base.html\" %}\n{% load i18n mezzanine_tags blog_tags keyword_tags disqus_tags %}\n\n{% block meta_title %}{% if"
  },
  {
    "path": "flat/templates/blog/includes/filter_panel.html",
    "chars": 3165,
    "preview": "{% load blog_tags keyword_tags i18n %}\n\n{% block blog_recent_posts %}\n{% blog_recent_posts 5 as recent_posts %}\n{% if re"
  },
  {
    "path": "flat/templates/generic/comments.html",
    "chars": 470,
    "preview": "{% extends \"base.html\" %}\n\n{% load mezzanine_tags comment_tags keyword_tags %}\n\n{% block meta_title %}{{ obj }}{% endblo"
  },
  {
    "path": "flat/templates/generic/includes/comment.html",
    "chars": 3673,
    "preview": "{% load i18n mezzanine_tags comment_tags rating_tags %}\n\n{% for comment in comments_for_thread %}\n\n<div id=\"comment-{{ c"
  },
  {
    "path": "flat/templates/generic/includes/comment_form.html",
    "chars": 1112,
    "preview": "{% load i18n mezzanine_tags comment_tags %}\n\n<form method=\"post\" id=\"contactform\" action=\"{{ comment_url }}#comment\" cla"
  },
  {
    "path": "flat/templates/generic/includes/comments.html",
    "chars": 886,
    "preview": "{% load i18n mezzanine_tags comment_tags %}\n<div id=\"comments\">\n\t\n<h3>{% trans \"Comments\" %}</h3>\n<div class=\"comments-l"
  },
  {
    "path": "flat/templates/generic/includes/disqus_comments.html",
    "chars": 785,
    "preview": "{% load disqus_tags %}\n\n<div id=\"disqus_thread\"></div>\n{% disqus_sso_script %}\n<script>\n    var disqus_developer = '{{ s"
  },
  {
    "path": "flat/templates/generic/includes/disqus_counts.html",
    "chars": 544,
    "preview": "<script>\n/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */\nvar disqus_shortname = '{{ setting"
  },
  {
    "path": "flat/templates/generic/includes/disqus_sso.html",
    "chars": 148,
    "preview": "<script>\nvar disqus_config = function () {\n    this.page.remote_auth_s3 = '{{ sso_data }}';\n    this.page.api_key = '{{ "
  },
  {
    "path": "flat/templates/generic/includes/rating.html",
    "chars": 697,
    "preview": "{% load mezzanine_tags rating_tags i18n %}\n\n<span id=\"rating-{{ rating_object.id }}\">\n    {% if rating_average %}\n    {%"
  },
  {
    "path": "flat/templates/includes/editable_form.html",
    "chars": 1061,
    "preview": "{% load i18n %}\n\n{# Edit form #}\n<form style=\"display:none;\" class=\"editable-form\" method=\"post\"\n    action=\"{% url \"edi"
  },
  {
    "path": "flat/templates/includes/editable_loader.html",
    "chars": 871,
    "preview": "{% load i18n staticfiles %}\n\n{% if has_site_permission %}\n<link rel=\"stylesheet\" href=\"{% static \"mezzanine/css/editable"
  },
  {
    "path": "flat/templates/includes/editable_toolbar.html",
    "chars": 621,
    "preview": "{% load i18n staticfiles %}\n\n<div id=\"editable-toolbar\" method=\"POST\" action=\"{% url \"admin:logout\" %}\">\n    {% url \"adm"
  },
  {
    "path": "flat/templates/includes/footer_scripts.html",
    "chars": 480,
    "preview": "{% load mezzanine_tags %}\n\n{% editable_loader %}\n\n<script>\n{% if settings.GOOGLE_ANALYTICS_ID and not request.user.is_st"
  },
  {
    "path": "flat/templates/includes/form_errors.html",
    "chars": 357,
    "preview": "{% load i18n %}\n\n{% if form.non_field_errors or form.errors %}\n<div class=\"form-errors\">\n    {% for error in form.non_fi"
  },
  {
    "path": "flat/templates/includes/form_fields.html",
    "chars": 696,
    "preview": "{% load mezzanine_tags %}\n\n{% nevercache %}\n<input type=\"hidden\" name=\"referrer\" value=\"{{ request.META.HTTP_REFERER }}\""
  },
  {
    "path": "flat/templates/includes/pagination.html",
    "chars": 1020,
    "preview": "{% load i18n %}\n\n{% if current_page.has_previous or current_page.has_next %}\n<ul class=\"pagination\">\n\n<li class=\"page-in"
  },
  {
    "path": "flat/templates/includes/search_form.html",
    "chars": 944,
    "preview": "{% load mezzanine_tags i18n %}\n<form action=\"{% url \"search\" %}\" class=\"navbar-form navbar-right\" role=\"search\">\n\n<div c"
  },
  {
    "path": "flat/templates/includes/user_panel.html",
    "chars": 218,
    "preview": "{% load mezzanine_tags %}\n{% ifinstalled mezzanine.accounts %}\n<div class=\"panel panel-default user-panel\">\n<div class=\""
  },
  {
    "path": "flat/templates/index.html",
    "chars": 15930,
    "preview": "{% extends \"base.html\" %}\n{% load i18n staticfiles %}\n{% block meta_title %}{% trans \"Home\" %}{% endblock %}\n{% block ti"
  },
  {
    "path": "flat/templates/pages/form.html",
    "chars": 923,
    "preview": "{% extends \"pages/page.html\" %}\n\n{% load mezzanine_tags %}\n\n{% block main %}\n{{ block.super }}\n{% if request.GET.sent %}"
  },
  {
    "path": "flat/templates/pages/gallery.html",
    "chars": 1060,
    "preview": "{% extends \"pages/page.html\" %}\n\n{% load mezzanine_tags staticfiles %}\n\n{% block extra_css %}\n<link rel=\"stylesheet\" hre"
  },
  {
    "path": "flat/templates/pages/index.html",
    "chars": 9035,
    "preview": "{% extends \"pages/page.html\" %}\n{% load pages_tags mezzanine_tags i18n staticfiles blog_tags keyword_tags %}\n\n{% block t"
  },
  {
    "path": "flat/templates/pages/menus/admin.html",
    "chars": 2121,
    "preview": "{% load pages_tags i18n staticfiles %}\n\n<ol>\n    {% for page in page_branch %}\n    <li id=\"ordering_{{ page.id }}\">\n    "
  },
  {
    "path": "flat/templates/pages/menus/breadcrumb.html",
    "chars": 724,
    "preview": "{% load i18n pages_tags %}\n\n{% if on_home %}\n<li>{% trans \"Home\" %}</li>\n{% else %}\n{% for page in page_branch %}\n\n    {"
  },
  {
    "path": "flat/templates/pages/menus/dropdown.html",
    "chars": 1872,
    "preview": "{% load i18n pages_tags mezzanine_tags%}\n{% spaceless %}\n{% if page_branch_in_menu %}\n\n{% if branch_level == 0 %}\n<ul cl"
  },
  {
    "path": "flat/templates/pages/menus/footer.html",
    "chars": 2244,
    "preview": "{% load i18n pages_tags blog_tags keyword_tags mezzanine_tags %}\n\n\n                <div class=\"col-md-3 col-sm-6\">\n     "
  },
  {
    "path": "flat/templates/pages/menus/footer_tree.html",
    "chars": 988,
    "preview": "{% load i18n pages_tags %}\n\n{% spaceless %}\n{% if page_branch_in_menu %}\n<ul class=\"footer-tree-menu-level-{{ branch_lev"
  },
  {
    "path": "flat/templates/pages/menus/mobile.html",
    "chars": 824,
    "preview": "{% load i18n pages_tags %}\n\n{% spaceless %}\n{% if page_branch %}\n{% for page in page_branch %}\n\n\t{% if not has_home and "
  },
  {
    "path": "flat/templates/pages/menus/primary.html",
    "chars": 706,
    "preview": "{% load pages_tags i18n %}\n\n{% spaceless %}\n<ul id=\"primary-menu\" class=\"nav pull-right\">\n    {% for page in page_branch"
  },
  {
    "path": "flat/templates/pages/menus/tree.html",
    "chars": 912,
    "preview": "{% load i18n pages_tags %}\n\n{% spaceless %}\n{% if page_branch_in_menu %}\n<ul class=\"nav nav-list navlist-menu-level-{{ b"
  },
  {
    "path": "flat/templates/pages/page.html",
    "chars": 567,
    "preview": "{% extends \"base.html\" %}\n{% load mezzanine_tags keyword_tags %}\n\n{% block meta_title %}{{ page.meta_title }}{% endblock"
  },
  {
    "path": "flat/templates/pages/richtextpage.html",
    "chars": 262,
    "preview": "{% extends \"pages/page.html\" %}\n\n{% load mezzanine_tags %}\n\n{% block main %}{{ block.super }}\n<section  class=\"container"
  },
  {
    "path": "flat/templates/search_results.html",
    "chars": 1257,
    "preview": "{% extends \"base.html\" %}\n\n{% load i18n mezzanine_tags %}\n\n{% block meta_title %}{% trans \"Search Results\" %}{% endblock"
  },
  {
    "path": "flat/tests.py",
    "chars": 60,
    "preview": "from django.test import TestCase\n\n# Create your tests here.\n"
  },
  {
    "path": "flat/views.py",
    "chars": 63,
    "preview": "from django.shortcuts import render\n\n# Create your views here.\n"
  },
  {
    "path": "manage.py",
    "chars": 929,
    "preview": "#!/usr/bin/env python\nfrom __future__ import absolute_import, unicode_literals\n\nimport os\nimport sys\n\n\n# Corrects some p"
  },
  {
    "path": "moderna/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "moderna/admin.py",
    "chars": 63,
    "preview": "from django.contrib import admin\n\n# Register your models here.\n"
  },
  {
    "path": "moderna/models.py",
    "chars": 57,
    "preview": "from django.db import models\n\n# Create your models here.\n"
  },
  {
    "path": "moderna/static/css/animate.css",
    "chars": 61119,
    "preview": "@charset \"UTF-8\";\n/*\nAnimate.css - http://daneden.me/animate\nLicensed under the MIT license\n\nCopyright (c) 2013 Daniel E"
  },
  {
    "path": "moderna/static/css/custom-fonts.css",
    "chars": 19821,
    "preview": "/* ==================================================\nFont-Face Icons\n=================================================="
  },
  {
    "path": "moderna/static/css/fancybox/jquery.fancybox.css",
    "chars": 5570,
    "preview": "/*! fancyBox v2.1.4 fancyapps.com | fancyapps.com/fancybox/#license */\n.fancybox-wrap,\n.fancybox-skin,\n.fancybox-outer,\n"
  },
  {
    "path": "moderna/static/css/flexslider.css",
    "chars": 3813,
    "preview": "/*\n * jQuery FlexSlider v2.0\n * http://www.woothemes.com/flexslider/\n *\n * Copyright 2012 WooThemes\n * Free to use under"
  },
  {
    "path": "moderna/static/css/font-awesome.css",
    "chars": 21658,
    "preview": "/*!\n *  Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/lice"
  },
  {
    "path": "moderna/static/css/mezzanine.css",
    "chars": 10682,
    "preview": "\n/*========================================\n        MEZZANINE GENERAL STYLES\n==========================================*"
  },
  {
    "path": "moderna/static/css/overwrite.css",
    "chars": 27423,
    "preview": ".widget h4,.widget h5 {\n\tfont-weight:700;\n\tmargin-bottom:20px;\n}\n\n\n/* === Bootstrap style === */\n\n.img-polaroid {\n  padd"
  },
  {
    "path": "moderna/static/css/style.css",
    "chars": 31371,
    "preview": "/* ==== Google font ==== */\n@import url('http://fonts.googleapis.com/css?family=Noto+Serif:400,400italic,700|Open+Sans:3"
  },
  {
    "path": "moderna/static/js/animate.js",
    "chars": 9515,
    "preview": "jQuery(document).ready(function($) {\n\n\t\t\t\t\t\t\t\n\t//animate effect\t\n\t$(\".e_flash\").hover(\n\t\tfunction () {\n\t\t$(this).addClas"
  },
  {
    "path": "moderna/static/js/custom.js",
    "chars": 8987,
    "preview": "/*global jQuery:false */\njQuery(document).ready(function($) {\n\"use strict\";\n\n\t\n\t\t//add some elements with animate effect"
  },
  {
    "path": "moderna/static/js/flexslider/jquery.flexslider.js",
    "chars": 26362,
    "preview": "/*\n * jQuery FlexSlider v1.8\n * http://www.woothemes.com/flexslider/\n *\n * Copyright 2012 WooThemes\n * Free to use under"
  },
  {
    "path": "moderna/static/js/flexslider/setting.js",
    "chars": 71,
    "preview": "\n\t\t$(window).load(function() {\n\t\t\t$('.flexslider').flexslider();\n\t\t});\n"
  },
  {
    "path": "moderna/static/js/google-code-prettify/prettify.css",
    "chars": 817,
    "preview": ".com { color: #93a1a1; }\n.lit { color: #195f91; }\n.pun, .opn, .clo { color: #93a1a1; }\n.fun { color: #dc322f; }\n.str, .a"
  },
  {
    "path": "moderna/static/js/google-code-prettify/prettify.js",
    "chars": 13694,
    "preview": "var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;\n(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92"
  },
  {
    "path": "moderna/static/js/jquery.easing.1.3.js",
    "chars": 8095,
    "preview": "/*\n * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/\n *\n * Uses the built in easing capabilities added In"
  },
  {
    "path": "moderna/static/js/jquery.fancybox-media.js",
    "chars": 5169,
    "preview": "/*!\n * Media helper for fancyBox\n * version: 1.0.5 (Tue, 23 Oct 2012)\n * @requires fancyBox v2.0 or later\n *\n * Usage:\n "
  },
  {
    "path": "moderna/static/js/jquery.fancybox.pack.js",
    "chars": 22714,
    "preview": "/*! fancyBox v2.1.4 fancyapps.com | fancyapps.com/fancybox/#license */\n(function(C,z,f,r){var q=f(C),n=f(z),b=f.fancybox"
  },
  {
    "path": "moderna/static/js/jquery.flexslider.js",
    "chars": 41110,
    "preview": "/*\n * jQuery FlexSlider v2.1\n * http://www.woothemes.com/flexslider/\n *\n * Copyright 2012 WooThemes\n * Free to use under"
  },
  {
    "path": "moderna/static/js/jquery.js",
    "chars": 92853,
    "preview": "/*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license\n//@ sourceMappingURL=jquery.min.map\n*/(f"
  },
  {
    "path": "moderna/static/js/portfolio/jquery.quicksand.js",
    "chars": 14697,
    "preview": "/*\n\nQuicksand 1.2.2\n\nReorder and filter items with a nice shuffling animation.\n\nCopyright (c) 2010 Jacek Galanciak (razo"
  },
  {
    "path": "moderna/static/js/portfolio/setting.js",
    "chars": 1216,
    "preview": "\njQuery(document).ready(function($){\n\nif (jQuery().quicksand) {\n\n \t// Clone applications to get a second collection\n\tvar"
  },
  {
    "path": "moderna/static/js/quicksand/jquery.quicksand.js",
    "chars": 14697,
    "preview": "/*\n\nQuicksand 1.2.2\n\nReorder and filter items with a nice shuffling animation.\n\nCopyright (c) 2010 Jacek Galanciak (razo"
  },
  {
    "path": "moderna/static/js/quicksand/setting.js",
    "chars": 890,
    "preview": "jQuery.noConflict();\njQuery(document).ready(function($){\n\nif (jQuery().quicksand) {\n\n \t// Clone applications to get a se"
  },
  {
    "path": "moderna/static/js/validate.js",
    "chars": 2633,
    "preview": "/*global jQuery:false */\njQuery(document).ready(function($) {\n\"use strict\";\n\n\t//Contact\n\t$('form.validateform').submit(f"
  },
  {
    "path": "moderna/static/skins/default.css",
    "chars": 4435,
    "preview": "/* === color === */\n\na, a:hover,a:focus,a:active, footer a.text-link:hover, strike, .post-meta span a:hover, footer a.te"
  },
  {
    "path": "moderna/templates/base.html",
    "chars": 6790,
    "preview": "<!doctype html>\n<html lang=\"{{ LANGUAGE_CODE }}\"{% if LANGUAGE_BIDI %} dir=\"rtl\"{% endif %}>\n{% load pages_tags mezzanin"
  },
  {
    "path": "moderna/templates/blog/blog_post_detail.html",
    "chars": 3073,
    "preview": "{% extends \"blog/blog_post_list.html\" %}\n{% load mezzanine_tags comment_tags keyword_tags rating_tags i18n disqus_tags %"
  },
  {
    "path": "moderna/templates/blog/blog_post_list.html",
    "chars": 4924,
    "preview": "{% extends \"base.html\" %}\n{% load i18n mezzanine_tags blog_tags keyword_tags disqus_tags %}\n\n{% block meta_title %}{% if"
  },
  {
    "path": "moderna/templates/blog/includes/filter_panel.html",
    "chars": 3193,
    "preview": "{% load blog_tags keyword_tags i18n mezzanine_tags %}\n{% block blog_recent_posts %}\n{% blog_recent_posts 5 as recent_pos"
  },
  {
    "path": "moderna/templates/generic/comments.html",
    "chars": 470,
    "preview": "{% extends \"base.html\" %}\n\n{% load mezzanine_tags comment_tags keyword_tags %}\n\n{% block meta_title %}{{ obj }}{% endblo"
  },
  {
    "path": "moderna/templates/generic/includes/comment.html",
    "chars": 2831,
    "preview": "{% load i18n mezzanine_tags comment_tags rating_tags %}\n\n{% for comment in comments_for_thread %}\n\n<div id=\"comment-{{ c"
  },
  {
    "path": "moderna/templates/generic/includes/comment_form.html",
    "chars": 1163,
    "preview": "{% load i18n mezzanine_tags comment_tags %}\n\n<form method=\"post\" id=\"contactform\" action=\"{{ comment_url }}#comment\">\n  "
  },
  {
    "path": "moderna/templates/generic/includes/comments.html",
    "chars": 807,
    "preview": "{% load i18n mezzanine_tags comment_tags %}\n<div id=\"comments\">\n<h3>{% trans \"Comments\" %}</h3>\n{% if settings.COMMENTS_"
  },
  {
    "path": "moderna/templates/generic/includes/disqus_comments.html",
    "chars": 785,
    "preview": "{% load disqus_tags %}\n\n<div id=\"disqus_thread\"></div>\n{% disqus_sso_script %}\n<script>\n    var disqus_developer = '{{ s"
  },
  {
    "path": "moderna/templates/generic/includes/disqus_counts.html",
    "chars": 544,
    "preview": "<script>\n/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */\nvar disqus_shortname = '{{ setting"
  },
  {
    "path": "moderna/templates/generic/includes/disqus_sso.html",
    "chars": 148,
    "preview": "<script>\nvar disqus_config = function () {\n    this.page.remote_auth_s3 = '{{ sso_data }}';\n    this.page.api_key = '{{ "
  },
  {
    "path": "moderna/templates/generic/includes/rating.html",
    "chars": 697,
    "preview": "{% load mezzanine_tags rating_tags i18n %}\n\n<span id=\"rating-{{ rating_object.id }}\">\n    {% if rating_average %}\n    {%"
  },
  {
    "path": "moderna/templates/index.html",
    "chars": 7609,
    "preview": "{% extends \"base.html\" %}\n{% load i18n  mezzanine_tags staticfiles%}\n{% block meta_title %}{% trans \"Home\" %}{% endblock"
  },
  {
    "path": "moderna/templates/pages/form.html",
    "chars": 1032,
    "preview": "{% extends \"pages/page.html\" %}\n\n{% load mezzanine_tags %}\n\n{% block left_wrapper %}\n{% endblock %}\n<div class=\"col-md-{"
  },
  {
    "path": "moderna/templates/pages/gallery.html",
    "chars": 1516,
    "preview": "{% extends \"pages/page.html\" %}\n\n{% load mezzanine_tags staticfiles %}\n\n{% block extra_css %}\n<link rel=\"stylesheet\" hre"
  },
  {
    "path": "moderna/templates/pages/index.html",
    "chars": 259,
    "preview": "{% extends \"pages/richtextpage.html\" %}\n\n{% block main %}\n<!--\nThis template is provided as a custom template for the ho"
  },
  {
    "path": "moderna/templates/pages/menus/admin.html",
    "chars": 2121,
    "preview": "{% load pages_tags i18n staticfiles %}\n\n<ol>\n    {% for page in page_branch %}\n    <li id=\"ordering_{{ page.id }}\">\n    "
  },
  {
    "path": "moderna/templates/pages/menus/breadcrumb.html",
    "chars": 724,
    "preview": "{% load i18n pages_tags %}\n\n{% if on_home %}\n<li>{% trans \"Home\" %}</li>\n{% else %}\n{% for page in page_branch %}\n\n    {"
  },
  {
    "path": "moderna/templates/pages/menus/dropdown.html",
    "chars": 1516,
    "preview": "{% load i18n pages_tags %}\n{% spaceless %}\n{% if page_branch_in_menu %}\n\n{% if branch_level == 0 %}\n<ul class=\"nav navba"
  },
  {
    "path": "moderna/templates/pages/menus/footer.html",
    "chars": 1197,
    "preview": "{% load i18n pages_tags %}\n\n{% spaceless %}\n{% if page_branch_in_menu %}\n\n{% for page in page_branch %}\n    {% if page.i"
  },
  {
    "path": "moderna/templates/pages/menus/footer_tree.html",
    "chars": 952,
    "preview": "{% load i18n pages_tags %}\n\n{% spaceless %}\n{% if page_branch_in_menu %}\n<ul class=\"arrow\">\n\t{% for page in page_branch "
  },
  {
    "path": "moderna/templates/pages/menus/mobile.html",
    "chars": 824,
    "preview": "{% load i18n pages_tags %}\n\n{% spaceless %}\n{% if page_branch %}\n{% for page in page_branch %}\n\n\t{% if not has_home and "
  },
  {
    "path": "moderna/templates/pages/menus/primary.html",
    "chars": 706,
    "preview": "{% load pages_tags i18n %}\n\n{% spaceless %}\n<ul id=\"primary-menu\" class=\"nav pull-right\">\n    {% for page in page_branch"
  },
  {
    "path": "moderna/templates/pages/menus/tree.html",
    "chars": 912,
    "preview": "{% load i18n pages_tags %}\n\n{% spaceless %}\n{% if page_branch_in_menu %}\n<ul class=\"nav nav-list navlist-menu-level-{{ b"
  },
  {
    "path": "moderna/templates/pages/page.html",
    "chars": 567,
    "preview": "{% extends \"base.html\" %}\n{% load mezzanine_tags keyword_tags %}\n\n{% block meta_title %}{{ page.meta_title }}{% endblock"
  },
  {
    "path": "moderna/templates/pages/richtextpage.html",
    "chars": 388,
    "preview": "{% extends \"pages/page.html\" %}\n\n{% load mezzanine_tags %}\n{% block left_wrapper %}\n{% endblock %}\n\n<div class=\"col-md-{"
  },
  {
    "path": "moderna/templates/search_results.html",
    "chars": 1257,
    "preview": "{% extends \"base.html\" %}\n\n{% load i18n mezzanine_tags %}\n\n{% block meta_title %}{% trans \"Search Results\" %}{% endblock"
  },
  {
    "path": "moderna/tests.py",
    "chars": 60,
    "preview": "from django.test import TestCase\n\n# Create your tests here.\n"
  },
  {
    "path": "moderna/views.py",
    "chars": 63,
    "preview": "from django.shortcuts import render\n\n# Create your views here.\n"
  },
  {
    "path": "nova/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "nova/admin.py",
    "chars": 63,
    "preview": "from django.contrib import admin\n\n# Register your models here.\n"
  },
  {
    "path": "nova/models.py",
    "chars": 57,
    "preview": "from django.db import models\n\n# Create your models here.\n"
  },
  {
    "path": "nova/static/css/docs.css",
    "chars": 23903,
    "preview": "/* Add additional stylesheets below\n-------------------------------------------------- */\n/*\n  Bootstrap's documentation"
  },
  {
    "path": "nova/static/css/main.css",
    "chars": 12545,
    "preview": "@import url(http://fonts.googleapis.com/css?family=Fjalla+One);.clearfix{*zoom:1}.clearfix:before,.clearfix:after{displa"
  },
  {
    "path": "nova/static/css/main.less",
    "chars": 11555,
    "preview": "@import url(http://fonts.googleapis.com/css?family=Fjalla+One);\n@import 'variables';\n@import 'mixins';\n\nbody{\n\tpadding-t"
  },
  {
    "path": "nova/static/css/mezzanine.css",
    "chars": 10628,
    "preview": "\n/*========================================\n        MEZZANINE GENERAL STYLES\n==========================================*"
  },
  {
    "path": "nova/static/css/mixins.css",
    "chars": 351,
    "preview": ".clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:\"\";line-height:0}.clearfix:after{clear:both}.hi"
  },
  {
    "path": "nova/static/css/mixins.less",
    "chars": 21618,
    "preview": "//\n// Mixins\n// --------------------------------------------------\n\n\n// UTILITY MIXINS\n// ------------------------------"
  },
  {
    "path": "nova/static/css/prettify.css",
    "chars": 817,
    "preview": ".com { color: #93a1a1; }\n.lit { color: #195f91; }\n.pun, .opn, .clo { color: #93a1a1; }\n.fun { color: #dc322f; }\n.str, .a"
  },
  {
    "path": "nova/static/css/sl-slide.css",
    "chars": 6181,
    "preview": ".sl-slider-wrapper {\n\twidth: 100%;\n\theight: 520px;\n\tposition: relative;\n\toverflow: hidden;\n}\n\n.sl-slide,\n.sl-slides-wrap"
  },
  {
    "path": "nova/static/css/variables.css",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "nova/static/css/variables.less",
    "chars": 8376,
    "preview": "//\n// Variables\n// --------------------------------------------------\n\n\n// Global values\n// ----------------------------"
  },
  {
    "path": "nova/static/images/sample/index.html",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "nova/static/js/jquery.slitslider.js",
    "chars": 15593,
    "preview": "/**\n * jquery.slitslider.js v1.1.0\n * http://www.codrops.com\n *\n * Licensed under the MIT license.\n * http://www.opensou"
  },
  {
    "path": "nova/static/js/main.js",
    "chars": 456,
    "preview": "jQuery(function($) {\n\n\t//Ajax contact\n\tvar form = $('.contact-form');\n\t\tform.submit(function () {\n\t\t\t$this = $(this);\n\t\t"
  },
  {
    "path": "nova/templates/base.html",
    "chars": 12381,
    "preview": "<!doctype html>\n<html lang=\"{{ LANGUAGE_CODE }}\"{% if LANGUAGE_BIDI %} dir=\"rtl\"{% endif %}>\n{% load pages_tags mezzanin"
  },
  {
    "path": "nova/templates/blog/blog_post_detail.html",
    "chars": 3423,
    "preview": "{% extends \"blog/blog_post_list.html\" %}\n{% load mezzanine_tags comment_tags keyword_tags rating_tags i18n disqus_tags %"
  },
  {
    "path": "nova/templates/blog/blog_post_list.html",
    "chars": 5013,
    "preview": "{% extends \"base.html\" %}\n{% load i18n mezzanine_tags blog_tags keyword_tags disqus_tags %}\n\n{% block meta_title %}{% if"
  },
  {
    "path": "nova/templates/blog/includes/filter_panel.html",
    "chars": 3267,
    "preview": "{% load blog_tags keyword_tags i18n mezzanine_tags %}\n\n{% block blog_categories %}\n{% blog_categories as categories %}\n{"
  },
  {
    "path": "nova/templates/generic/comments.html",
    "chars": 470,
    "preview": "{% extends \"base.html\" %}\n\n{% load mezzanine_tags comment_tags keyword_tags %}\n\n{% block meta_title %}{{ obj }}{% endblo"
  },
  {
    "path": "nova/templates/generic/includes/comment.html",
    "chars": 2815,
    "preview": "{% load i18n mezzanine_tags comment_tags rating_tags %}\n\n{% for comment in comments_for_thread %}\n\n<div id=\"comment-{{ c"
  },
  {
    "path": "nova/templates/generic/includes/comment_form.html",
    "chars": 1241,
    "preview": "{% load i18n mezzanine_tags comment_tags %}\n<div class=\"comment-form\">\n\n<p class=\"muted\">Make sure you enter the (*) req"
  },
  {
    "path": "nova/templates/generic/includes/comments.html",
    "chars": 807,
    "preview": "{% load i18n mezzanine_tags comment_tags %}\n<div id=\"comments\">\n<h3>{% trans \"Comments\" %}</h3>\n{% if settings.COMMENTS_"
  },
  {
    "path": "nova/templates/generic/includes/disqus_comments.html",
    "chars": 785,
    "preview": "{% load disqus_tags %}\n\n<div id=\"disqus_thread\"></div>\n{% disqus_sso_script %}\n<script>\n    var disqus_developer = '{{ s"
  },
  {
    "path": "nova/templates/generic/includes/disqus_counts.html",
    "chars": 544,
    "preview": "<script>\n/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */\nvar disqus_shortname = '{{ setting"
  },
  {
    "path": "nova/templates/generic/includes/disqus_sso.html",
    "chars": 148,
    "preview": "<script>\nvar disqus_config = function () {\n    this.page.remote_auth_s3 = '{{ sso_data }}';\n    this.page.api_key = '{{ "
  },
  {
    "path": "nova/templates/generic/includes/rating.html",
    "chars": 697,
    "preview": "{% load mezzanine_tags rating_tags i18n %}\n\n<span id=\"rating-{{ rating_object.id }}\">\n    {% if rating_average %}\n    {%"
  },
  {
    "path": "nova/templates/index.html",
    "chars": 16435,
    "preview": "{% extends \"base.html\" %}\n{% load i18n  mezzanine_tags staticfiles%}\n{% block meta_title %}{% trans \"Home\" %}{% endblock"
  },
  {
    "path": "nova/templates/pages/form.html",
    "chars": 1032,
    "preview": "{% extends \"pages/page.html\" %}\n\n{% load mezzanine_tags %}\n\n{% block left_wrapper %}\n{% endblock %}\n<div class=\"col-md-{"
  },
  {
    "path": "nova/templates/pages/gallery.html",
    "chars": 1884,
    "preview": "{% extends \"pages/page.html\" %}\n\n{% load mezzanine_tags staticfiles %}\n{% block all_content %}\n{{block.super}}\n<section "
  },
  {
    "path": "nova/templates/pages/index.html",
    "chars": 259,
    "preview": "{% extends \"pages/richtextpage.html\" %}\n\n{% block main %}\n<!--\nThis template is provided as a custom template for the ho"
  },
  {
    "path": "nova/templates/pages/menus/admin.html",
    "chars": 2121,
    "preview": "{% load pages_tags i18n staticfiles %}\n\n<ol>\n    {% for page in page_branch %}\n    <li id=\"ordering_{{ page.id }}\">\n    "
  },
  {
    "path": "nova/templates/pages/menus/breadcrumb.html",
    "chars": 790,
    "preview": "{% load i18n pages_tags %}\n\n{% if on_home %}\n<li>{% trans \"Home\" %}</li>\n{% else %}\n{% for page in page_branch %}\n\n    {"
  },
  {
    "path": "nova/templates/pages/menus/dropdown.html",
    "chars": 1516,
    "preview": "{% load i18n pages_tags %}\n{% spaceless %}\n{% if page_branch_in_menu %}\n\n{% if branch_level == 0 %}\n<ul class=\"nav navba"
  },
  {
    "path": "nova/templates/pages/menus/footer.html",
    "chars": 1189,
    "preview": "{% load i18n pages_tags %}\n\n{% spaceless %}\n{% if page_branch_in_menu %}\n\n{% for page in page_branch %}\n    {% if page.i"
  },
  {
    "path": "nova/templates/pages/menus/footer_tree.html",
    "chars": 988,
    "preview": "{% load i18n pages_tags %}\n\n{% spaceless %}\n{% if page_branch_in_menu %}\n<ul class=\"footer-tree-menu-level-{{ branch_lev"
  },
  {
    "path": "nova/templates/pages/menus/mobile.html",
    "chars": 824,
    "preview": "{% load i18n pages_tags %}\n\n{% spaceless %}\n{% if page_branch %}\n{% for page in page_branch %}\n\n\t{% if not has_home and "
  },
  {
    "path": "nova/templates/pages/menus/primary.html",
    "chars": 706,
    "preview": "{% load pages_tags i18n %}\n\n{% spaceless %}\n<ul id=\"primary-menu\" class=\"nav pull-right\">\n    {% for page in page_branch"
  },
  {
    "path": "nova/templates/pages/menus/tree.html",
    "chars": 912,
    "preview": "{% load i18n pages_tags %}\n\n{% spaceless %}\n{% if page_branch_in_menu %}\n<ul class=\"nav nav-list navlist-menu-level-{{ b"
  },
  {
    "path": "nova/templates/pages/page.html",
    "chars": 567,
    "preview": "{% extends \"base.html\" %}\n{% load mezzanine_tags keyword_tags %}\n\n{% block meta_title %}{{ page.meta_title }}{% endblock"
  },
  {
    "path": "nova/templates/pages/richtextpage.html",
    "chars": 649,
    "preview": "{% extends \"pages/page.html\" %}\n\n{% load mezzanine_tags %}\n{% block left_wrapper %}\n{% endblock %}\n\n<div class=\"span{% b"
  },
  {
    "path": "nova/templates/search_results.html",
    "chars": 1257,
    "preview": "{% extends \"base.html\" %}\n\n{% load i18n mezzanine_tags %}\n\n{% block meta_title %}{% trans \"Search Results\" %}{% endblock"
  },
  {
    "path": "nova/templates/twitter/tweets.html",
    "chars": 1217,
    "preview": "\n{% load twitter_tags i18n %}\n\n{% tweets_default as tweets %}\n\n{% if tweets %}\n<div class=\"widget widget-popular\">\n\t<h3>"
  },
  {
    "path": "nova/tests.py",
    "chars": 60,
    "preview": "from django.test import TestCase\n\n# Create your tests here.\n"
  },
  {
    "path": "nova/views.py",
    "chars": 63,
    "preview": "from django.shortcuts import render\n\n# Create your views here.\n"
  },
  {
    "path": "requirements.txt",
    "chars": 17,
    "preview": "Mezzanine==4.2.3\n"
  },
  {
    "path": "settings.py",
    "chars": 13291,
    "preview": "from __future__ import absolute_import, unicode_literals\n\n######################\n# MEZZANINE SETTINGS #\n################"
  },
  {
    "path": "solid/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "solid/admin.py",
    "chars": 63,
    "preview": "from django.contrib import admin\n\n# Register your models here.\n"
  },
  {
    "path": "solid/models.py",
    "chars": 57,
    "preview": "from django.db import models\n\n# Create your models here.\n"
  },
  {
    "path": "solid/static/css/bootstrap.css",
    "chars": 121220,
    "preview": "/*!\n * Bootstrap v3.1.1 (http://getbootstrap.com)\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://gi"
  },
  {
    "path": "solid/static/css/hoverex-all.css",
    "chars": 50809,
    "preview": ".he-wrap\n{\n\tposition:relative;\n\tzoom:1;\n\n\t*display:inline;\n\tposition:relative;\n}\n.he-view,.he-zoom\n{\n\tposition:absolute;"
  },
  {
    "path": "solid/static/css/mezzanine.css",
    "chars": 10664,
    "preview": "\n/*========================================\n        MEZZANINE GENERAL STYLES\n==========================================*"
  },
  {
    "path": "solid/static/css/prettyPhoto.css",
    "chars": 19788,
    "preview": "div.pp_default .pp_top,div.pp_default .pp_top .pp_middle,div.pp_default .pp_top .pp_left,div.pp_default .pp_top .pp_righ"
  },
  {
    "path": "solid/static/css/style.css",
    "chars": 8013,
    "preview": "/*\t################################################################\n\n\tAuthor: Carlos Alvarez\n\tURL: http://alvarez.is\n\n\tP"
  },
  {
    "path": "solid/static/js/custom.js",
    "chars": 368,
    "preview": "(function($) {\n\n// prettyPhoto\n\tjQuery(document).ready(function(){\n\t\tjQuery('a[data-gal]').each(function() {\n\t\t\tjQuery(t"
  },
  {
    "path": "solid/static/js/jquery.hoverdir.js",
    "chars": 5307,
    "preview": "/**\n * jquery.hoverdir.js v1.1.0\n * http://www.codrops.com\n *\n * Licensed under the MIT license.\n * http://www.opensourc"
  },
  {
    "path": "solid/static/js/jquery.prettyPhoto.js",
    "chars": 22058,
    "preview": "/* ------------------------------------------------------------------------\n\tClass: prettyPhoto\n\tUse: Lightbox clone for"
  },
  {
    "path": "solid/static/js/retina-1.1.0.js",
    "chars": 3995,
    "preview": "/*!\n * Retina.js v1.1.0\n *\n * Copyright 2013 Imulus, LLC\n * Released under the MIT license\n *\n * Retina.js is an open so"
  },
  {
    "path": "solid/templates/base.html",
    "chars": 7856,
    "preview": "<!doctype html>\n<html lang=\"{{ LANGUAGE_CODE }}\"{% if LANGUAGE_BIDI %} dir=\"rtl\"{% endif %}>\n{% load pages_tags mezzanin"
  },
  {
    "path": "solid/templates/blog/blog_post_detail.html",
    "chars": 3164,
    "preview": "{% extends \"blog/blog_post_list.html\" %}\n{% load mezzanine_tags comment_tags keyword_tags rating_tags i18n disqus_tags %"
  },
  {
    "path": "solid/templates/blog/blog_post_list.html",
    "chars": 5184,
    "preview": "{% extends \"base.html\" %}\n{% load i18n mezzanine_tags blog_tags keyword_tags disqus_tags %}\n\n{% block meta_title %}{% if"
  },
  {
    "path": "solid/templates/blog/includes/filter_panel.html",
    "chars": 3418,
    "preview": "{% load blog_tags keyword_tags i18n mezzanine_tags%}\n\n{% block blog_recent_posts %}\n{% blog_recent_posts 5 as recent_pos"
  },
  {
    "path": "solid/templates/email/base.html",
    "chars": 110,
    "preview": "{% block main %}{% endblock %}\n\n<br><a href=\"http://{{ request.get_host }}\">http://{{ request.get_host }}</a>\n"
  },
  {
    "path": "solid/templates/email/base.txt",
    "chars": 62,
    "preview": "{% block main %}{% endblock %}\n\nhttp://{{ request.get_host }}\n"
  },
  {
    "path": "solid/templates/email/comment_notification.html",
    "chars": 438,
    "preview": "{% extends \"email/base.html\" %}\n{% load i18n %}\n\n{% block main %}\n<p>\n    {% trans \"A new comment has been posted on\" %}"
  },
  {
    "path": "solid/templates/email/comment_notification.txt",
    "chars": 342,
    "preview": "{% extends \"email/base.txt\" %}\n{% load i18n %}\n\n{% block main %}\nA new comment has been posted on {{ obj }} [http://{{ r"
  },
  {
    "path": "solid/templates/email/form_response.html",
    "chars": 267,
    "preview": "{% extends \"email/base.html\" %}\n\n{% block main %}\n{% if message %}<p>{{ message }}</p>{% endif %}\n<table border=\"0\">\n{% "
  },
  {
    "path": "solid/templates/email/form_response.txt",
    "chars": 182,
    "preview": "{% extends \"email/base.txt\" %}\n\n{% block main %}{% if message %}\n{{ message }}\n\n{% endif %}{% for field, value in fields"
  },
  {
    "path": "solid/templates/email/form_response_copies.html",
    "chars": 92,
    "preview": "{% extends \"email/form_response.html\" %}\n\n{% block main %}\n{{ block.super }}\n{% endblock %}\n"
  },
  {
    "path": "solid/templates/email/form_response_copies.txt",
    "chars": 91,
    "preview": "{% extends \"email/form_response.txt\" %}\n\n{% block main %}\n{{ block.super }}\n{% endblock %}\n"
  },
  {
    "path": "solid/templates/errors/404.html",
    "chars": 423,
    "preview": "{% extends \"base.html\" %}\n\n{% load i18n %}\n\n{% block meta_title %}\n{% trans \"Page not found\" %}\n{% endblock %}\n\n{% block"
  },
  {
    "path": "solid/templates/errors/500.html",
    "chars": 383,
    "preview": "{% extends \"base.html\" %}\n\n{% load i18n %}\n\n{% block meta_title %}\n{% trans \"Error\" %}\n{% endblock %}\n\n{% block title %}"
  }
]

// ... and 41 more files (download for full content)

About this extraction

This page contains the full source code of the thecodinghouse/mezzanine-themes GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 241 files (1.3 MB), approximately 402.9k tokens, and a symbol index with 200 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!