mtahan commited on
Commit
e09caf0
·
verified ·
1 Parent(s): 1bd59e2

Upload 59 files

Browse files

[ADD] first commit of python CRUD example

This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .dockerignore +8 -0
  2. .gitattributes +1 -0
  3. Dockerfile +33 -0
  4. app.py +46 -0
  5. controllers/__pycache__/auth.cpython-313.pyc +0 -0
  6. controllers/__pycache__/persona.cpython-313.pyc +0 -0
  7. controllers/auth.py +91 -0
  8. controllers/persona.py +67 -0
  9. database.db +0 -0
  10. models/__pycache__/persona.cpython-313.pyc +0 -0
  11. models/__pycache__/usuario.cpython-313.pyc +0 -0
  12. models/persona.py +106 -0
  13. models/usuario.py +62 -0
  14. requirements.txt +3 -0
  15. static/css/bootstrap-theme.css +476 -0
  16. static/css/bootstrap-theme.css.map +1 -0
  17. static/css/bootstrap-theme.min.css +5 -0
  18. static/css/bootstrap.css +0 -0
  19. static/css/bootstrap.css.map +0 -0
  20. static/css/bootstrap.min.css +0 -0
  21. static/css/style.css +199 -0
  22. static/fonts/glyphicons-halflings-regular.eot +0 -0
  23. static/fonts/glyphicons-halflings-regular.svg +0 -0
  24. static/fonts/glyphicons-halflings-regular.ttf +0 -0
  25. static/fonts/glyphicons-halflings-regular.woff +0 -0
  26. static/fonts/glyphicons-halflings-regular.woff2 +0 -0
  27. static/img/hero-bg.png +3 -0
  28. static/js/bootstrap.js +2306 -0
  29. static/js/bootstrap.min.js +7 -0
  30. static/js/ini.js +6 -0
  31. static/js/jquery-ui/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  32. static/js/jquery-ui/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  33. static/js/jquery-ui/images/ui-bg_flat_10_000000_40x100.png +0 -0
  34. static/js/jquery-ui/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  35. static/js/jquery-ui/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  36. static/js/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  37. static/js/jquery-ui/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  38. static/js/jquery-ui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  39. static/js/jquery-ui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  40. static/js/jquery-ui/images/ui-icons_222222_256x240.png +0 -0
  41. static/js/jquery-ui/images/ui-icons_228ef1_256x240.png +0 -0
  42. static/js/jquery-ui/images/ui-icons_ef8c08_256x240.png +0 -0
  43. static/js/jquery-ui/images/ui-icons_ffd27a_256x240.png +0 -0
  44. static/js/jquery-ui/images/ui-icons_ffffff_256x240.png +0 -0
  45. static/js/jquery-ui/index.html +513 -0
  46. static/js/jquery-ui/jquery-ui.css +1225 -0
  47. static/js/jquery-ui/jquery-ui.js +0 -0
  48. static/js/jquery-ui/jquery-ui.min.css +7 -0
  49. static/js/jquery-ui/jquery-ui.min.js +0 -0
  50. static/js/jquery-ui/jquery-ui.structure.css +833 -0
.dockerignore ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ __pycache__/
2
+ *.py[cod]
3
+ *$py.class
4
+ venv/
5
+ .env
6
+ .git/
7
+ .gitignore
8
+ *.db
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ static/img/hero-bg.png filter=lfs diff=lfs merge=lfs -text
Dockerfile ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # USAMOS UNA IMAGEN LIGERA DE PYTHON
2
+ FROM python:3.9-slim
3
+
4
+ # ESTABLECEMOS EL DIRECTORIO DE TRABAJO
5
+ WORKDIR /app
6
+
7
+ # COPIAMOS LOS REQUERIMIENTOS E INSTALAMOS
8
+ COPY requirements.txt .
9
+ RUN pip install --no-cache-dir -r requirements.txt
10
+
11
+ # COPIAMOS EL RESTO DEL CODIGO
12
+ COPY . .
13
+
14
+ # HUGGING FACE REQUIERE PERMISOS PARA UN USUARIO CON UID 1000
15
+ # CREAMOS EL USUARIO Y DAMOS PERMISOS A LA CARPETA
16
+ RUN useradd -m -u 1000 user
17
+ USER user
18
+
19
+ # ASIGNAMOS VARIABLES DE ENTORNO
20
+ ENV HOME=/home/user \
21
+ PATH=/home/user/.local/bin:$PATH
22
+
23
+ # ESTABLECEMOS EL DIRECTORIO DE TRABAJO AL DEL NUEVO USUARIO
24
+ WORKDIR $HOME/app
25
+
26
+ # COPIAMOS EL CONTENIDO AL DIRECTORIO DEL USUARIO
27
+ COPY --chown=user . $HOME/app
28
+
29
+ # EXPOSEMOS EL PUERTO QUE USA HUGGING FACE
30
+ EXPOSE 7860
31
+
32
+ # COMANDO PARA INICIAR LA APP CON GUNICORN (MAS ESTABLE QUE FLASK RUN)
33
+ CMD ["gunicorn", "--bind", "0.0.0.0:7860", "app:app"]
app.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ #######################################################################################
2
+ # RECURSO ACADÉMICO CREADO POR LA PROFESORA MÓNICA TAHAN CON EL USO DE GOOGLE ANTIGRAVITY #
3
+ # ACADEMY RESOURCE CREATED BY PROFESSOR MÓNICA TAHAN WITH THE USE OF GOOGLE ANTIGRAVITY #
4
+ # Este programa web desarrollado con Flask permite registrar, modificar, eliminar y #
5
+ # consultar personas #
6
+ # This script is a web application that allows you to register, modify, delete and #
7
+ # consult people #
8
+ # Product Owner: Prof. Mónica Tahan #
9
+ # Autor: Mónica Tahan y Google Antigravity AI #
10
+ # Author: Mónica Tahan and Google Antigravity AI #
11
+ # Versión: 1.0 #
12
+ # Version: 1.0 #
13
+ # Fecha: 28/02/2026 #
14
+ # Date: 02/28/2026 #
15
+ # Licencia: GNU/GPL #
16
+ # License: GNU/GPL #
17
+ ###########################################################################################
18
+ """
19
+
20
+ from flask import Flask # Importamos la clase principal
21
+ from controllers.persona import persona_bp # Importamos el controlador Persona
22
+ from controllers.auth import auth_bp # Importamos el controlador Auth
23
+ import os
24
+
25
+ app = Flask(__name__)
26
+
27
+ # CONFIGURACION DE SESIONES Y SEGURIDAD
28
+ # Flask necesita una clave Secreta para firmar digitalmente las cookies de sesión (evita que el usuario las falsifique).
29
+ # Usamos os.urandom(24) para generar una clave aleatoria en cada inicio.
30
+ # Para producción, deberías usar una clave fija y segura, ej: "esta-es-mi-clave-secreta-123"
31
+ app.secret_key = os.urandom(24)
32
+
33
+ # Registramos los controladores (Blueprints)
34
+ # 'url_prefix' nos permite separar rutas lógicas fácilmente.
35
+ # 'auth' tendrá rutas como '/auth/login', '/auth/logout'
36
+ app.register_blueprint(auth_bp, url_prefix='/auth')
37
+ # 'persona' será la raíz '/'
38
+ app.register_blueprint(persona_bp, url_prefix='/')
39
+
40
+ # INICIO DE LA APLICACION
41
+ if __name__ == '__main__':
42
+ # Obtenemos el puerto de las variables de entorno para Hugging Face (default 7860)
43
+ port = int(os.environ.get("PORT", 7860))
44
+ # Escuchamos en 0.0.0.0 para que el contenedor sea accesible
45
+ app.run(host='0.0.0.0', port=port, debug=False)
46
+
controllers/__pycache__/auth.cpython-313.pyc ADDED
Binary file (1.63 kB). View file
 
controllers/__pycache__/persona.cpython-313.pyc ADDED
Binary file (3.31 kB). View file
 
controllers/auth.py ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Blueprint, render_template, request, redirect, url_for, session, flash
2
+ from models.usuario import UsuarioModel
3
+ import random
4
+ import string
5
+ import base64
6
+ from io import BytesIO
7
+ from captcha.image import ImageCaptcha # Librería para generar imágenes captcha
8
+
9
+ # Blueprint para Autenticación (Login/Logout)
10
+ auth_bp = Blueprint('auth', __name__)
11
+ model = UsuarioModel()
12
+
13
+ # Función para generar un captcha de imagen mas moderno
14
+ def generar_captcha_imagen():
15
+ # Generar una cadena aleatoria de 4 caracteres (letras y números)
16
+ caracteres = string.ascii_uppercase + string.digits
17
+ captcha_text = ''.join(random.choice(caracteres) for _ in range(4))
18
+ session['captcha_text'] = captcha_text # Guardar en sesión para validar
19
+
20
+ # Crear la imagen con la librería
21
+ image = ImageCaptcha(width=200, height=80)
22
+ data = image.generate(captcha_text)
23
+
24
+ # Convertir la imagen a Base64 para enviarla al HTML sin archivos temporales
25
+ buffered = BytesIO()
26
+ buffered.write(data.getvalue())
27
+ img_str = base64.b64encode(buffered.getvalue()).decode()
28
+ return f"data:image/png;base64,{img_str}"
29
+
30
+ # Ruta para Login
31
+ @auth_bp.route('/login', methods=['GET', 'POST'])
32
+ def login():
33
+ if request.method == 'POST':
34
+ # Validar Captcha Primero
35
+ captcha_user = request.form.get('captcha_input', '').upper()
36
+ if not captcha_user or captcha_user != session.get('captcha_text'):
37
+ flash('Código de seguridad incorrecto. Inténtalo de nuevo.')
38
+ return redirect(url_for('auth.login'))
39
+
40
+ usuario = request.form['usuario']
41
+ password = request.form['password']
42
+
43
+ user = model.login(usuario, password)
44
+
45
+ if user:
46
+ session['user_id'] = user['idusuario']
47
+ session['username'] = user['usuario']
48
+ return redirect(url_for('persona.index'))
49
+ else:
50
+ flash('Usuario o contraseña incorrectos')
51
+
52
+ captcha_img = generar_captcha_imagen()
53
+ return render_template('login.html', captcha_img=captcha_img)
54
+
55
+ # Ruta para Registro
56
+ @auth_bp.route('/registro', methods=['GET', 'POST'])
57
+ def registro():
58
+ if request.method == 'POST':
59
+ # Validar Captcha
60
+ captcha_user = request.form.get('captcha_input', '').upper()
61
+ if not captcha_user or captcha_user != session.get('captcha_text'):
62
+ flash('Código de seguridad incorrecto. Inténtalo de nuevo.')
63
+ return render_template('registro.html', captcha_img=generar_captcha_imagen())
64
+
65
+ usuario = request.form['usuario']
66
+ password = request.form['password']
67
+ confirm_password = request.form['confirm_password']
68
+
69
+ if password != confirm_password:
70
+ flash('Las contraseñas no coinciden')
71
+ else:
72
+ success, message = model.registrar(usuario, password)
73
+ if success:
74
+ flash(message)
75
+ return redirect(url_for('auth.login'))
76
+ else:
77
+ flash(message)
78
+
79
+ captcha_img = generar_captcha_imagen()
80
+ return render_template('registro.html', captcha_img=captcha_img)
81
+
82
+
83
+
84
+ # Ruta para cerrar sesión
85
+
86
+ @auth_bp.route('/logout')
87
+ def logout():
88
+ # Limpiar todos los datos de la sesión
89
+ session.clear()
90
+ # Redirigir al login
91
+ return redirect(url_for('auth.login'))
controllers/persona.py ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Blueprint, render_template, request, redirect, url_for, session, g
2
+
3
+ # Para proteger la ruta, necesitamos verificar si el usuario está en la sesión
4
+ # Este es un DECORADOR, algo que envuelve una función para modificar su comportamiento sin cambiar su código.
5
+ # Es equivalente a poner un 'if(!isset($_SESSION))' al principio de cada método en PHP.
6
+ def login_required(f):
7
+ from functools import wraps
8
+ @wraps(f)
9
+ def decorated_function(*args, **kwargs):
10
+ # Si 'user_id' no existe en la sesión, REDIRIGIMOS al login.
11
+ if 'user_id' not in session:
12
+ return redirect(url_for('auth.login'))
13
+ # Si existe, permitimos ejecutar la función original (f).
14
+ return f(*args, **kwargs)
15
+ return decorated_function
16
+
17
+ # Importamos las dependencias
18
+ from models.persona import PersonaModel
19
+
20
+ persona_bp = Blueprint('persona', __name__)
21
+
22
+ model = PersonaModel()
23
+
24
+ # Ahora usamos @login_required para proteger las rutas
25
+ # Esta ruta SOLO funcionará si hay una sesión activa.
26
+ @persona_bp.route('/')
27
+ @login_required
28
+ def index():
29
+ personas = model.listar()
30
+ # Enviamos 'user' a la plantilla para saludar "Hola, Admin"
31
+ return render_template('index.html', personas=personas, user=session['username'])
32
+
33
+ # Muestra el formulario de crear/editar
34
+ @persona_bp.route('/crud')
35
+ @login_required # Protegido
36
+ def crud():
37
+ idpersona = request.args.get('idpersona')
38
+ alm = None
39
+ if idpersona:
40
+ alm = model.obtener(idpersona) # Para editar
41
+ return render_template('form.html', alm=alm, user=session['username'])
42
+
43
+ # Procesa el formulario (Guardar)
44
+ @persona_bp.route('/guardar', methods=['POST'])
45
+ @login_required
46
+ def guardar():
47
+ # Obtenemos datos del formulario
48
+ idpersona = request.form.get('idpersona')
49
+ nombres = request.form.get('Nombres')
50
+ cedula = request.form.get('Cedula')
51
+ fecha_nmto = request.form.get('FechaNacimiento')
52
+ direccion = request.form.get('direccion')
53
+ email = request.form.get('correo')
54
+
55
+ # Llamamos al modelo para guardar en DB
56
+ model.guardar(idpersona, nombres, cedula, fecha_nmto, direccion, email)
57
+
58
+ # Redirigimos al índice
59
+ return redirect(url_for('persona.index'))
60
+
61
+ # Elimina un registro
62
+ @persona_bp.route('/eliminar')
63
+ @login_required
64
+ def eliminar():
65
+ idpersona = request.args.get('idpersona')
66
+ model.eliminar(idpersona)
67
+ return redirect(url_for('persona.index'))
database.db ADDED
Binary file (20.5 kB). View file
 
models/__pycache__/persona.cpython-313.pyc ADDED
Binary file (5.24 kB). View file
 
models/__pycache__/usuario.cpython-313.pyc ADDED
Binary file (2.45 kB). View file
 
models/persona.py ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import sqlite3 # Importamos el módulo 'sqlite3' para interactuar con la base de datos SQLite (equivalente a usar PDO con MySQL en PHP)
2
+
3
+ class PersonaModel:
4
+ # Constructor de la clase, se ejecuta al crear una instancia (equivalente a __CONSTRUCT en PHP)
5
+ def __init__(self):
6
+ # Definimos el nombre del archivo de la base de datos
7
+ self.db_name = 'database.db'
8
+ # Llamamos al método para inicializar la base de datos si no existe
9
+ self.init_db()
10
+
11
+ # Método para crear la tabla si no existe (en PHP solíamos tener un script SQL separado, aquí lo hacemos por código)
12
+ def init_db(self):
13
+ # Usamos 'with' para manejar la conexión. Se conecta y se desconecta automáticamente al terminar el bloque.
14
+ # Es más seguro que abrir y cerrar manualmente (en PHP: $pdo = new PDO(...))
15
+ with sqlite3.connect(self.db_name) as conn:
16
+ # Creamos un cursor, que es el objeto que nos permite ejecutar comandos SQL
17
+ cursor = conn.cursor()
18
+ # Ejecutamos la consulta SQL para crear la tabla 'persona'
19
+ # Usamos IF NOT EXISTS para que no de error si ya existe
20
+ cursor.execute('''
21
+ CREATE TABLE IF NOT EXISTS persona (
22
+ idpersona INTEGER PRIMARY KEY AUTOINCREMENT, -- ID autoincremental
23
+ nombres TEXT NOT NULL, -- Campo de texto obligatorio
24
+ cedula TEXT NOT NULL, -- Campo de texto obligatorio
25
+ fecha_nmto TEXT NOT NULL, -- Campo de texto (fecha)
26
+ direccion TEXT NOT NULL, -- Campo de texto
27
+ email TEXT NOT NULL -- Campo de texto
28
+ )
29
+ ''')
30
+ # Guardamos los cambios en la base de datos (commit)
31
+ conn.commit()
32
+
33
+ # Método para listar todos los registros (equivalente a Listar() en PHP)
34
+ def listar(self):
35
+ try:
36
+ # Abrimos conexión a la base de datos
37
+ with sqlite3.connect(self.db_name) as conn:
38
+ # Configuramos para que los resultados se comporten como diccionarios/arrays asociativos
39
+ # Esto permite acceder a los campos por nombre (ej: fila['nombres']), similar a PDO::FETCH_OBJ o PDO::FETCH_ASSOC
40
+ conn.row_factory = sqlite3.Row
41
+ cursor = conn.cursor()
42
+ # Ejecutamos la consulta SELECT
43
+ cursor.execute("SELECT * FROM persona")
44
+ # fetchall() recupera TODAS las filas encontradas y las retorna como una lista
45
+ return cursor.fetchall()
46
+ except Exception as e:
47
+ # Si ocurre un error, lo imprimimos en la consola
48
+ print(f"Error al listar: {e}")
49
+ return [] # Retornamos una lista vacía en caso de error
50
+
51
+ # Método para obtener una sola persona por su ID (equivalente a Getting($id) en PHP)
52
+ def obtener(self, idpersona):
53
+ try:
54
+ with sqlite3.connect(self.db_name) as conn:
55
+ conn.row_factory = sqlite3.Row
56
+ cursor = conn.cursor()
57
+ # Usamos ? como marcador de posición para evitar Inyección SQL (Prepared Statements)
58
+ # Es idéntico a usar prepare() y execute() en PDO de PHP
59
+ cursor.execute("SELECT * FROM persona WHERE idpersona = ?", (idpersona,))
60
+ # fetchone() recupera SOLO la primera fila encontrada
61
+ return cursor.fetchone()
62
+ except Exception as e:
63
+ print(f"Error al obtener: {e}")
64
+ return None
65
+
66
+ # Método para eliminar un registro (equivalente a Eliminar($id) en PHP)
67
+ def eliminar(self, idpersona):
68
+ try:
69
+ with sqlite3.connect(self.db_name) as conn:
70
+ cursor = conn.cursor()
71
+ # Ejecutamos la sentencia DELETE usando parámetros seguros
72
+ cursor.execute("DELETE FROM persona WHERE idpersona = ?", (idpersona,))
73
+ # ¡Importante! En INSERT/UPDATE/DELETE siempre debemos hacer commit() para guardar cambios
74
+ conn.commit()
75
+ except Exception as e:
76
+ print(f"Error al eliminar: {e}")
77
+
78
+ # Método para guardar (Registrar o Actualizar)
79
+ # Recibe todos los campos necesarios. En PHP recibíamos un objeto $data, aquí argumentos individuales
80
+ def guardar(self, idpersona, nombres, cedula, fecha_nmto, direccion, email):
81
+ try:
82
+ with sqlite3.connect(self.db_name) as conn:
83
+ cursor = conn.cursor()
84
+ # Verificamos si hay un ID válido para decidir si es ACTUALIZAR o INSERTAR
85
+ # Equivalente a: $alm->idpersona > 0 ? Actualizar() : Registrar()
86
+ if idpersona and int(idpersona) > 0:
87
+ # Lógica de ACTUALIZAR (UPDATE)
88
+ sql = '''UPDATE persona SET
89
+ nombres = ?,
90
+ cedula = ?,
91
+ fecha_nmto = ?,
92
+ direccion = ?,
93
+ email = ?
94
+ WHERE idpersona = ?'''
95
+ # Pasamos los valores en una tupla, incluyendo el ID al final
96
+ cursor.execute(sql, (nombres, cedula, fecha_nmto, direccion, email, idpersona))
97
+ else:
98
+ # Lógica de REGISTRAR (INSERT)
99
+ sql = "INSERT INTO persona (nombres, cedula, fecha_nmto, direccion, email) VALUES (?, ?, ?, ?, ?)"
100
+ # Pasamos los valores en una tupla
101
+ cursor.execute(sql, (nombres, cedula, fecha_nmto, direccion, email))
102
+
103
+ # Confirmamos la transacción
104
+ conn.commit()
105
+ except Exception as e:
106
+ print(f"Error al guardar: {e}")
models/usuario.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import sqlite3
2
+
3
+ class UsuarioModel:
4
+ def __init__(self):
5
+ self.db_name = 'database.db'
6
+ self.init_db()
7
+
8
+ def init_db(self):
9
+ with sqlite3.connect(self.db_name) as conn:
10
+ cursor = conn.cursor()
11
+ # Crear tabla usuario con campo password NO ENCRIPTADO solo para efectos educativos simples.
12
+ # En un entorno real siempre usar hash (como bcrypt, argon2, etc) para guardar contraseñas.
13
+ cursor.execute('''
14
+ CREATE TABLE IF NOT EXISTS usuario (
15
+ idusuario INTEGER PRIMARY KEY AUTOINCREMENT,
16
+ usuario TEXT NOT NULL UNIQUE,
17
+ password TEXT NOT NULL
18
+ )
19
+ ''')
20
+
21
+ # Crear usuario admin por defecto si no existe al iniciar la app
22
+ cursor.execute("SELECT * FROM usuario WHERE usuario = 'admin'")
23
+ if not cursor.fetchone():
24
+ cursor.execute("INSERT INTO usuario (usuario, password) VALUES ('admin', 'admin')")
25
+ else:
26
+ # Sincronizar contraseña si el usuario ya existe (por si se cambió en el código)
27
+ cursor.execute("UPDATE usuario SET password = 'admin' WHERE usuario = 'admin'")
28
+
29
+ conn.commit()
30
+
31
+
32
+ # Método para verificar credenciales de login
33
+ def login(self, usuario, password):
34
+ try:
35
+ with sqlite3.connect(self.db_name) as conn:
36
+ conn.row_factory = sqlite3.Row # Para acceder a columnas por nombre
37
+ cursor = conn.cursor()
38
+ # Buscamos coincidencia exacta de usuario y contraseña (¡OJO! Texto plano no es seguro para prod)
39
+ cursor.execute("SELECT * FROM usuario WHERE usuario = ? AND password = ?", (usuario, password))
40
+ return cursor.fetchone() # Retorna el usuario si existe, o None si no
41
+ except Exception as e:
42
+ print(f"Error en login: {e}")
43
+ return None
44
+
45
+ # Método para registrar un nuevo usuario
46
+ def registrar(self, usuario, password):
47
+ try:
48
+ with sqlite3.connect(self.db_name) as conn:
49
+ cursor = conn.cursor()
50
+ # Verificar si el usuario ya existe
51
+ cursor.execute("SELECT idusuario FROM usuario WHERE usuario = ?", (usuario,))
52
+ if cursor.fetchone():
53
+ return False, "El nombre de usuario ya está en uso."
54
+
55
+ # Insertar nuevo usuario
56
+ cursor.execute("INSERT INTO usuario (usuario, password) VALUES (?, ?)", (usuario, password))
57
+ conn.commit()
58
+ return True, "Registro exitoso. Ahora puedes iniciar sesión."
59
+ except Exception as e:
60
+ print(f"Error en registro: {e}")
61
+ return False, f"Error al procesar el registro: {e}"
62
+
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ flask
2
+ gunicorn
3
+ captcha
static/css/bootstrap-theme.css ADDED
@@ -0,0 +1,476 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v3.3.2 (http://getbootstrap.com)
3
+ * Copyright 2011-2015 Twitter, Inc.
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ */
6
+
7
+ .btn-default,
8
+ .btn-primary,
9
+ .btn-success,
10
+ .btn-info,
11
+ .btn-warning,
12
+ .btn-danger {
13
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
14
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
15
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
16
+ }
17
+ .btn-default:active,
18
+ .btn-primary:active,
19
+ .btn-success:active,
20
+ .btn-info:active,
21
+ .btn-warning:active,
22
+ .btn-danger:active,
23
+ .btn-default.active,
24
+ .btn-primary.active,
25
+ .btn-success.active,
26
+ .btn-info.active,
27
+ .btn-warning.active,
28
+ .btn-danger.active {
29
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
30
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
31
+ }
32
+ .btn-default .badge,
33
+ .btn-primary .badge,
34
+ .btn-success .badge,
35
+ .btn-info .badge,
36
+ .btn-warning .badge,
37
+ .btn-danger .badge {
38
+ text-shadow: none;
39
+ }
40
+ .btn:active,
41
+ .btn.active {
42
+ background-image: none;
43
+ }
44
+ .btn-default {
45
+ text-shadow: 0 1px 0 #fff;
46
+ background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
47
+ background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
48
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
49
+ background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
50
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
51
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
52
+ background-repeat: repeat-x;
53
+ border-color: #dbdbdb;
54
+ border-color: #ccc;
55
+ }
56
+ .btn-default:hover,
57
+ .btn-default:focus {
58
+ background-color: #e0e0e0;
59
+ background-position: 0 -15px;
60
+ }
61
+ .btn-default:active,
62
+ .btn-default.active {
63
+ background-color: #e0e0e0;
64
+ border-color: #dbdbdb;
65
+ }
66
+ .btn-default.disabled,
67
+ .btn-default:disabled,
68
+ .btn-default[disabled] {
69
+ background-color: #e0e0e0;
70
+ background-image: none;
71
+ }
72
+ .btn-primary {
73
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
74
+ background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
75
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));
76
+ background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
77
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);
78
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
79
+ background-repeat: repeat-x;
80
+ border-color: #245580;
81
+ }
82
+ .btn-primary:hover,
83
+ .btn-primary:focus {
84
+ background-color: #265a88;
85
+ background-position: 0 -15px;
86
+ }
87
+ .btn-primary:active,
88
+ .btn-primary.active {
89
+ background-color: #265a88;
90
+ border-color: #245580;
91
+ }
92
+ .btn-primary.disabled,
93
+ .btn-primary:disabled,
94
+ .btn-primary[disabled] {
95
+ background-color: #265a88;
96
+ background-image: none;
97
+ }
98
+ .btn-success {
99
+ background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
100
+ background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
101
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
102
+ background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
103
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
104
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
105
+ background-repeat: repeat-x;
106
+ border-color: #3e8f3e;
107
+ }
108
+ .btn-success:hover,
109
+ .btn-success:focus {
110
+ background-color: #419641;
111
+ background-position: 0 -15px;
112
+ }
113
+ .btn-success:active,
114
+ .btn-success.active {
115
+ background-color: #419641;
116
+ border-color: #3e8f3e;
117
+ }
118
+ .btn-success.disabled,
119
+ .btn-success:disabled,
120
+ .btn-success[disabled] {
121
+ background-color: #419641;
122
+ background-image: none;
123
+ }
124
+ .btn-info {
125
+ background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
126
+ background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
127
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
128
+ background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
129
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
130
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
131
+ background-repeat: repeat-x;
132
+ border-color: #28a4c9;
133
+ }
134
+ .btn-info:hover,
135
+ .btn-info:focus {
136
+ background-color: #2aabd2;
137
+ background-position: 0 -15px;
138
+ }
139
+ .btn-info:active,
140
+ .btn-info.active {
141
+ background-color: #2aabd2;
142
+ border-color: #28a4c9;
143
+ }
144
+ .btn-info.disabled,
145
+ .btn-info:disabled,
146
+ .btn-info[disabled] {
147
+ background-color: #2aabd2;
148
+ background-image: none;
149
+ }
150
+ .btn-warning {
151
+ background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
152
+ background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
153
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
154
+ background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
155
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
156
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
157
+ background-repeat: repeat-x;
158
+ border-color: #e38d13;
159
+ }
160
+ .btn-warning:hover,
161
+ .btn-warning:focus {
162
+ background-color: #eb9316;
163
+ background-position: 0 -15px;
164
+ }
165
+ .btn-warning:active,
166
+ .btn-warning.active {
167
+ background-color: #eb9316;
168
+ border-color: #e38d13;
169
+ }
170
+ .btn-warning.disabled,
171
+ .btn-warning:disabled,
172
+ .btn-warning[disabled] {
173
+ background-color: #eb9316;
174
+ background-image: none;
175
+ }
176
+ .btn-danger {
177
+ background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
178
+ background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
179
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
180
+ background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
181
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
182
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
183
+ background-repeat: repeat-x;
184
+ border-color: #b92c28;
185
+ }
186
+ .btn-danger:hover,
187
+ .btn-danger:focus {
188
+ background-color: #c12e2a;
189
+ background-position: 0 -15px;
190
+ }
191
+ .btn-danger:active,
192
+ .btn-danger.active {
193
+ background-color: #c12e2a;
194
+ border-color: #b92c28;
195
+ }
196
+ .btn-danger.disabled,
197
+ .btn-danger:disabled,
198
+ .btn-danger[disabled] {
199
+ background-color: #c12e2a;
200
+ background-image: none;
201
+ }
202
+ .thumbnail,
203
+ .img-thumbnail {
204
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
205
+ box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
206
+ }
207
+ .dropdown-menu > li > a:hover,
208
+ .dropdown-menu > li > a:focus {
209
+ background-color: #e8e8e8;
210
+ background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
211
+ background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
212
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
213
+ background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
214
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
215
+ background-repeat: repeat-x;
216
+ }
217
+ .dropdown-menu > .active > a,
218
+ .dropdown-menu > .active > a:hover,
219
+ .dropdown-menu > .active > a:focus {
220
+ background-color: #2e6da4;
221
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
222
+ background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
223
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
224
+ background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
225
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
226
+ background-repeat: repeat-x;
227
+ }
228
+ .navbar-default {
229
+ background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
230
+ background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
231
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
232
+ background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
233
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
234
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
235
+ background-repeat: repeat-x;
236
+ border-radius: 4px;
237
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
238
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
239
+ }
240
+ .navbar-default .navbar-nav > .open > a,
241
+ .navbar-default .navbar-nav > .active > a {
242
+ background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
243
+ background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
244
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
245
+ background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
246
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
247
+ background-repeat: repeat-x;
248
+ -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
249
+ box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
250
+ }
251
+ .navbar-brand,
252
+ .navbar-nav > li > a {
253
+ text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
254
+ }
255
+ .navbar-inverse {
256
+ background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
257
+ background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
258
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
259
+ background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
260
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
261
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
262
+ background-repeat: repeat-x;
263
+ }
264
+ .navbar-inverse .navbar-nav > .open > a,
265
+ .navbar-inverse .navbar-nav > .active > a {
266
+ background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
267
+ background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
268
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
269
+ background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
270
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
271
+ background-repeat: repeat-x;
272
+ -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
273
+ box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
274
+ }
275
+ .navbar-inverse .navbar-brand,
276
+ .navbar-inverse .navbar-nav > li > a {
277
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
278
+ }
279
+ .navbar-static-top,
280
+ .navbar-fixed-top,
281
+ .navbar-fixed-bottom {
282
+ border-radius: 0;
283
+ }
284
+ @media (max-width: 767px) {
285
+ .navbar .navbar-nav .open .dropdown-menu > .active > a,
286
+ .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
287
+ .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
288
+ color: #fff;
289
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
290
+ background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
291
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
292
+ background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
293
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
294
+ background-repeat: repeat-x;
295
+ }
296
+ }
297
+ .alert {
298
+ text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
299
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
300
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
301
+ }
302
+ .alert-success {
303
+ background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
304
+ background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
305
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
306
+ background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
307
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
308
+ background-repeat: repeat-x;
309
+ border-color: #b2dba1;
310
+ }
311
+ .alert-info {
312
+ background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
313
+ background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
314
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
315
+ background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
316
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
317
+ background-repeat: repeat-x;
318
+ border-color: #9acfea;
319
+ }
320
+ .alert-warning {
321
+ background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
322
+ background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
323
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
324
+ background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
325
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
326
+ background-repeat: repeat-x;
327
+ border-color: #f5e79e;
328
+ }
329
+ .alert-danger {
330
+ background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
331
+ background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
332
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
333
+ background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
334
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
335
+ background-repeat: repeat-x;
336
+ border-color: #dca7a7;
337
+ }
338
+ .progress {
339
+ background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
340
+ background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
341
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
342
+ background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
343
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
344
+ background-repeat: repeat-x;
345
+ }
346
+ .progress-bar {
347
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
348
+ background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);
349
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));
350
+ background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);
351
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);
352
+ background-repeat: repeat-x;
353
+ }
354
+ .progress-bar-success {
355
+ background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
356
+ background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
357
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
358
+ background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
359
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
360
+ background-repeat: repeat-x;
361
+ }
362
+ .progress-bar-info {
363
+ background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
364
+ background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
365
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
366
+ background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
367
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
368
+ background-repeat: repeat-x;
369
+ }
370
+ .progress-bar-warning {
371
+ background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
372
+ background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
373
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
374
+ background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
375
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
376
+ background-repeat: repeat-x;
377
+ }
378
+ .progress-bar-danger {
379
+ background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
380
+ background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
381
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
382
+ background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
383
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
384
+ background-repeat: repeat-x;
385
+ }
386
+ .progress-bar-striped {
387
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
388
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
389
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
390
+ }
391
+ .list-group {
392
+ border-radius: 4px;
393
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
394
+ box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
395
+ }
396
+ .list-group-item.active,
397
+ .list-group-item.active:hover,
398
+ .list-group-item.active:focus {
399
+ text-shadow: 0 -1px 0 #286090;
400
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
401
+ background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
402
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));
403
+ background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
404
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);
405
+ background-repeat: repeat-x;
406
+ border-color: #2b669a;
407
+ }
408
+ .list-group-item.active .badge,
409
+ .list-group-item.active:hover .badge,
410
+ .list-group-item.active:focus .badge {
411
+ text-shadow: none;
412
+ }
413
+ .panel {
414
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
415
+ box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
416
+ }
417
+ .panel-default > .panel-heading {
418
+ background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
419
+ background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
420
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
421
+ background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
422
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
423
+ background-repeat: repeat-x;
424
+ }
425
+ .panel-primary > .panel-heading {
426
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
427
+ background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
428
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
429
+ background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
430
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
431
+ background-repeat: repeat-x;
432
+ }
433
+ .panel-success > .panel-heading {
434
+ background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
435
+ background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
436
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
437
+ background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
438
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
439
+ background-repeat: repeat-x;
440
+ }
441
+ .panel-info > .panel-heading {
442
+ background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
443
+ background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
444
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
445
+ background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
446
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
447
+ background-repeat: repeat-x;
448
+ }
449
+ .panel-warning > .panel-heading {
450
+ background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
451
+ background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
452
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
453
+ background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
454
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
455
+ background-repeat: repeat-x;
456
+ }
457
+ .panel-danger > .panel-heading {
458
+ background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
459
+ background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
460
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
461
+ background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
462
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
463
+ background-repeat: repeat-x;
464
+ }
465
+ .well {
466
+ background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
467
+ background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
468
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
469
+ background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
470
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
471
+ background-repeat: repeat-x;
472
+ border-color: #dcdcdc;
473
+ -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
474
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
475
+ }
476
+ /*# sourceMappingURL=bootstrap-theme.css.map */
static/css/bootstrap-theme.css.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["less/theme.less","less/mixins/vendor-prefixes.less","bootstrap-theme.css","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"AAcA;;;;;;EAME,0CAAA;ECgDA,6FAAA;EACQ,qFAAA;EC5DT;AFgBC;;;;;;;;;;;;EC2CA,0DAAA;EACQ,kDAAA;EC7CT;AFVD;;;;;;EAiBI,mBAAA;EECH;AFiCC;;EAEE,wBAAA;EE/BH;AFoCD;EGnDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJiCA,6BAAA;EACA,uBAAA;EAgC2C,2BAAA;EAA2B,oBAAA;EEzBvE;AFLC;;EAEE,2BAAA;EACA,8BAAA;EEOH;AFJC;;EAEE,2BAAA;EACA,uBAAA;EEMH;AFHC;;;EAGE,2BAAA;EACA,wBAAA;EEKH;AFUD;EGpDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJiCA,6BAAA;EACA,uBAAA;EEgCD;AF9BC;;EAEE,2BAAA;EACA,8BAAA;EEgCH;AF7BC;;EAEE,2BAAA;EACA,uBAAA;EE+BH;AF5BC;;;EAGE,2BAAA;EACA,wBAAA;EE8BH;AFdD;EGrDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJiCA,6BAAA;EACA,uBAAA;EEyDD;AFvDC;;EAEE,2BAAA;EACA,8BAAA;EEyDH;AFtDC;;EAEE,2BAAA;EACA,uBAAA;EEwDH;AFrDC;;;EAGE,2BAAA;EACA,wBAAA;EEuDH;AFtCD;EGtDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJiCA,6BAAA;EACA,uBAAA;EEkFD;AFhFC;;EAEE,2BAAA;EACA,8BAAA;EEkFH;AF/EC;;EAEE,2BAAA;EACA,uBAAA;EEiFH;AF9EC;;;EAGE,2BAAA;EACA,wBAAA;EEgFH;AF9DD;EGvDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJiCA,6BAAA;EACA,uBAAA;EE2GD;AFzGC;;EAEE,2BAAA;EACA,8BAAA;EE2GH;AFxGC;;EAEE,2BAAA;EACA,uBAAA;EE0GH;AFvGC;;;EAGE,2BAAA;EACA,wBAAA;EEyGH;AFtFD;EGxDI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EAEA,wHAAA;ECnBF,qEAAA;EJiCA,6BAAA;EACA,uBAAA;EEoID;AFlIC;;EAEE,2BAAA;EACA,8BAAA;EEoIH;AFjIC;;EAEE,2BAAA;EACA,uBAAA;EEmIH;AFhIC;;;EAGE,2BAAA;EACA,wBAAA;EEkIH;AFxGD;;EChBE,oDAAA;EACQ,4CAAA;EC4HT;AFnGD;;EGzEI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EHwEF,2BAAA;EEyGD;AFvGD;;;EG9EI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH8EF,2BAAA;EE6GD;AFpGD;EG3FI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ECnBF,qEAAA;EJ6GA,oBAAA;EC/CA,6FAAA;EACQ,qFAAA;EC0JT;AF/GD;;EG3FI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EF2CF,0DAAA;EACQ,kDAAA;ECoKT;AF5GD;;EAEE,gDAAA;EE8GD;AF1GD;EG9GI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ECnBF,qEAAA;EF+OD;AFlHD;;EG9GI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EF2CF,yDAAA;EACQ,iDAAA;EC0LT;AF5HD;;EAYI,2CAAA;EEoHH;AF/GD;;;EAGE,kBAAA;EEiHD;AF5FD;EAfI;;;IAGE,aAAA;IG3IF,0EAAA;IACA,qEAAA;IACA,+FAAA;IAAA,wEAAA;IACA,6BAAA;IACA,wHAAA;ID0PD;EACF;AFxGD;EACE,+CAAA;ECzGA,4FAAA;EACQ,oFAAA;ECoNT;AFhGD;EGpKI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH4JF,uBAAA;EE4GD;AFvGD;EGrKI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH4JF,uBAAA;EEoHD;AF9GD;EGtKI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH4JF,uBAAA;EE4HD;AFrHD;EGvKI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH4JF,uBAAA;EEoID;AFrHD;EG/KI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDuSH;AFlHD;EGzLI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED8SH;AFxHD;EG1LI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDqTH;AF9HD;EG3LI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED4TH;AFpID;EG5LI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDmUH;AF1ID;EG7LI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED0UH;AF7ID;EGhKI,+MAAA;EACA,0MAAA;EACA,uMAAA;EDgTH;AFzID;EACE,oBAAA;EC5JA,oDAAA;EACQ,4CAAA;ECwST;AF1ID;;;EAGE,+BAAA;EGjNE,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EH+MF,uBAAA;EEgJD;AFrJD;;;EAQI,mBAAA;EEkJH;AFxID;ECjLE,mDAAA;EACQ,2CAAA;EC4TT;AFlID;EG1OI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED+WH;AFxID;EG3OI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDsXH;AF9ID;EG5OI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED6XH;AFpJD;EG7OI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDoYH;AF1JD;EG9OI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;ED2YH;AFhKD;EG/OI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EDkZH;AFhKD;EGtPI,0EAAA;EACA,qEAAA;EACA,+FAAA;EAAA,wEAAA;EACA,6BAAA;EACA,wHAAA;EHoPF,uBAAA;ECzMA,2FAAA;EACQ,mFAAA;ECgXT","file":"bootstrap-theme.css","sourcesContent":["\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &:disabled,\n &[disabled] {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They will be removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility){\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n",".btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default:disabled,\n.btn-default[disabled] {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #265a88;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #265a88;\n border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary:disabled,\n.btn-primary[disabled] {\n background-color: #265a88;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success:disabled,\n.btn-success[disabled] {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info:disabled,\n.btn-info[disabled] {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning:disabled,\n.btn-warning[disabled] {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger:disabled,\n.btn-danger[disabled] {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-color: #2e6da4;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222222 100%);\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n@media (max-width: 767px) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n }\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n}\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #286090;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]}
static/css/bootstrap-theme.min.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v3.3.2 (http://getbootstrap.com)
3
+ * Copyright 2011-2015 Twitter, Inc.
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default:disabled,.btn-default[disabled]{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary:disabled,.btn-primary[disabled]{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success:disabled,.btn-success[disabled]{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info:disabled,.btn-info[disabled]{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning:disabled,.btn-warning[disabled]{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger:disabled,.btn-danger[disabled]{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)}
static/css/bootstrap.css ADDED
The diff for this file is too large to render. See raw diff
 
static/css/bootstrap.css.map ADDED
The diff for this file is too large to render. See raw diff
 
static/css/bootstrap.min.css ADDED
The diff for this file is too large to render. See raw diff
 
static/css/style.css ADDED
@@ -0,0 +1,199 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Clinic/Medicio Theme Styles */
2
+ :root {
3
+ --primary: #1977cc;
4
+ --secondary: #3291e6;
5
+ --accent: #ffca28;
6
+ --text-dark: #2c4964;
7
+ --text-light: #444444;
8
+ --bg-light: #f1f7fd;
9
+ --white: #ffffff;
10
+ }
11
+
12
+ body {
13
+ background-color: var(--bg-light);
14
+ font-family: "Open Sans", sans-serif;
15
+ color: var(--text-light);
16
+ margin: 0;
17
+ }
18
+
19
+ /* Top Bar */
20
+ #topbar {
21
+ background: #fff;
22
+ height: 40px;
23
+ font-size: 14px;
24
+ transition: all 0.5s;
25
+ z-index: 996;
26
+ border-bottom: 1px solid #d9e1ec;
27
+ }
28
+
29
+ /* Header/Navbar */
30
+ .navbar {
31
+ background: #fff;
32
+ transition: all 0.5s;
33
+ z-index: 997;
34
+ padding: 15px 0;
35
+ box-shadow: 0px 2px 15px rgba(25, 119, 204, 0.1);
36
+ border: none;
37
+ border-radius: 0;
38
+ }
39
+
40
+ .navbar-brand {
41
+ color: var(--primary);
42
+ font-size: 28px;
43
+ font-weight: 700;
44
+ text-transform: uppercase;
45
+ }
46
+
47
+ .navbar-nav>li>a {
48
+ color: var(--text-dark);
49
+ font-weight: 600;
50
+ }
51
+
52
+ .navbar-nav>li>a:hover {
53
+ color: var(--primary);
54
+ }
55
+
56
+ /* Cards & Panels */
57
+ .clinic-card {
58
+ background: var(--white);
59
+ padding: 30px;
60
+ box-shadow: 0px 2px 15px rgba(0, 0, 0, 0.1);
61
+ border-radius: 5px;
62
+ margin-bottom: 30px;
63
+ }
64
+
65
+ .page-header {
66
+ font-size: 32px;
67
+ font-weight: 700;
68
+ color: var(--text-dark);
69
+ margin-bottom: 20px;
70
+ padding-bottom: 20px;
71
+ position: relative;
72
+ border-bottom: none;
73
+ }
74
+
75
+ .page-header::after {
76
+ content: "";
77
+ position: absolute;
78
+ display: block;
79
+ width: 50px;
80
+ height: 3px;
81
+ background: var(--primary);
82
+ bottom: 0;
83
+ left: 0;
84
+ }
85
+
86
+ /* Buttons */
87
+ .btn-clinic {
88
+ font-family: "Raleway", sans-serif;
89
+ font-weight: 600;
90
+ font-size: 14px;
91
+ letter-spacing: 1px;
92
+ display: inline-block;
93
+ padding: 10px 35px;
94
+ border-radius: 50px;
95
+ transition: 0.5s;
96
+ background: var(--primary);
97
+ color: #fff;
98
+ border: none;
99
+ }
100
+
101
+ .btn-clinic:hover {
102
+ background: var(--secondary);
103
+ color: #fff;
104
+ }
105
+
106
+ /* Tables */
107
+ .table {
108
+ background: #fff;
109
+ }
110
+
111
+ .table thead th {
112
+ background-color: var(--primary);
113
+ color: #fff;
114
+ border: none;
115
+ }
116
+
117
+ /* Forms */
118
+ .form-control {
119
+ border-radius: 4px;
120
+ box-shadow: none;
121
+ font-size: 14px;
122
+ padding: 10px 15px;
123
+ border: 1px solid #d9e1ec;
124
+ }
125
+
126
+ .form-control:focus {
127
+ border-color: var(--primary);
128
+ box-shadow: none;
129
+ }
130
+
131
+ /* Footer */
132
+ #footer {
133
+ background: #fff;
134
+ padding: 30px 0;
135
+ color: var(--text-dark);
136
+ font-size: 14px;
137
+ border-top: 1px solid #d9e1ec;
138
+ }
139
+
140
+ /* Login Page Styles */
141
+ .login-box {
142
+ max-width: 400px;
143
+ margin: 100px auto;
144
+ }
145
+
146
+ /* Hero Section */
147
+ #hero {
148
+ width: 100%;
149
+ height: 250px;
150
+ background: url("../img/hero-bg.png") center center no-repeat;
151
+ background-size: cover;
152
+ position: relative;
153
+ margin-bottom: 0;
154
+ display: flex;
155
+ align-items: center;
156
+ color: #fff;
157
+ margin-top: 0;
158
+ }
159
+
160
+ #hero:before {
161
+ content: "";
162
+ background: rgba(25, 119, 204, 0.6);
163
+ position: absolute;
164
+ bottom: 0;
165
+ top: 0;
166
+ left: 0;
167
+ right: 0;
168
+ }
169
+
170
+ #hero .container {
171
+ position: relative;
172
+ z-index: 2;
173
+ text-align: center;
174
+ }
175
+
176
+ #hero h1 {
177
+ margin: 0;
178
+ font-size: 42px;
179
+ font-weight: 700;
180
+ text-transform: uppercase;
181
+ color: #fff;
182
+ text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
183
+ }
184
+
185
+ #hero p {
186
+ color: #f1f7fd;
187
+ margin: 5px 0 0 0;
188
+ font-size: 18px;
189
+ font-weight: 500;
190
+ }
191
+
192
+ /* Ajustes de espaciado */
193
+ .navbar {
194
+ margin-bottom: 0 !important;
195
+ }
196
+
197
+ .main-content-area {
198
+ margin-top: 30px;
199
+ }
static/fonts/glyphicons-halflings-regular.eot ADDED
Binary file (20.1 kB). View file
 
static/fonts/glyphicons-halflings-regular.svg ADDED
static/fonts/glyphicons-halflings-regular.ttf ADDED
Binary file (45.4 kB). View file
 
static/fonts/glyphicons-halflings-regular.woff ADDED
Binary file (23.4 kB). View file
 
static/fonts/glyphicons-halflings-regular.woff2 ADDED
Binary file (18 kB). View file
 
static/img/hero-bg.png ADDED

Git LFS Details

  • SHA256: d65234513742c218bae75940b20bd8c6b2323673f5c240d1691ea169b8b364a2
  • Pointer size: 131 Bytes
  • Size of remote file: 428 kB
static/js/bootstrap.js ADDED
@@ -0,0 +1,2306 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v3.3.2 (http://getbootstrap.com)
3
+ * Copyright 2011-2015 Twitter, Inc.
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ */
6
+
7
+ if (typeof jQuery === 'undefined') {
8
+ throw new Error('Bootstrap\'s JavaScript requires jQuery')
9
+ }
10
+
11
+ +function ($) {
12
+ 'use strict';
13
+ var version = $.fn.jquery.split(' ')[0].split('.')
14
+ if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {
15
+ throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher')
16
+ }
17
+ }(jQuery);
18
+
19
+ /* ========================================================================
20
+ * Bootstrap: transition.js v3.3.2
21
+ * http://getbootstrap.com/javascript/#transitions
22
+ * ========================================================================
23
+ * Copyright 2011-2015 Twitter, Inc.
24
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
25
+ * ======================================================================== */
26
+
27
+
28
+ +function ($) {
29
+ 'use strict';
30
+
31
+ // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
32
+ // ============================================================
33
+
34
+ function transitionEnd() {
35
+ var el = document.createElement('bootstrap')
36
+
37
+ var transEndEventNames = {
38
+ WebkitTransition : 'webkitTransitionEnd',
39
+ MozTransition : 'transitionend',
40
+ OTransition : 'oTransitionEnd otransitionend',
41
+ transition : 'transitionend'
42
+ }
43
+
44
+ for (var name in transEndEventNames) {
45
+ if (el.style[name] !== undefined) {
46
+ return { end: transEndEventNames[name] }
47
+ }
48
+ }
49
+
50
+ return false // explicit for ie8 ( ._.)
51
+ }
52
+
53
+ // http://blog.alexmaccaw.com/css-transitions
54
+ $.fn.emulateTransitionEnd = function (duration) {
55
+ var called = false
56
+ var $el = this
57
+ $(this).one('bsTransitionEnd', function () { called = true })
58
+ var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
59
+ setTimeout(callback, duration)
60
+ return this
61
+ }
62
+
63
+ $(function () {
64
+ $.support.transition = transitionEnd()
65
+
66
+ if (!$.support.transition) return
67
+
68
+ $.event.special.bsTransitionEnd = {
69
+ bindType: $.support.transition.end,
70
+ delegateType: $.support.transition.end,
71
+ handle: function (e) {
72
+ if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
73
+ }
74
+ }
75
+ })
76
+
77
+ }(jQuery);
78
+
79
+ /* ========================================================================
80
+ * Bootstrap: alert.js v3.3.2
81
+ * http://getbootstrap.com/javascript/#alerts
82
+ * ========================================================================
83
+ * Copyright 2011-2015 Twitter, Inc.
84
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
85
+ * ======================================================================== */
86
+
87
+
88
+ +function ($) {
89
+ 'use strict';
90
+
91
+ // ALERT CLASS DEFINITION
92
+ // ======================
93
+
94
+ var dismiss = '[data-dismiss="alert"]'
95
+ var Alert = function (el) {
96
+ $(el).on('click', dismiss, this.close)
97
+ }
98
+
99
+ Alert.VERSION = '3.3.2'
100
+
101
+ Alert.TRANSITION_DURATION = 150
102
+
103
+ Alert.prototype.close = function (e) {
104
+ var $this = $(this)
105
+ var selector = $this.attr('data-target')
106
+
107
+ if (!selector) {
108
+ selector = $this.attr('href')
109
+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
110
+ }
111
+
112
+ var $parent = $(selector)
113
+
114
+ if (e) e.preventDefault()
115
+
116
+ if (!$parent.length) {
117
+ $parent = $this.closest('.alert')
118
+ }
119
+
120
+ $parent.trigger(e = $.Event('close.bs.alert'))
121
+
122
+ if (e.isDefaultPrevented()) return
123
+
124
+ $parent.removeClass('in')
125
+
126
+ function removeElement() {
127
+ // detach from parent, fire event then clean up data
128
+ $parent.detach().trigger('closed.bs.alert').remove()
129
+ }
130
+
131
+ $.support.transition && $parent.hasClass('fade') ?
132
+ $parent
133
+ .one('bsTransitionEnd', removeElement)
134
+ .emulateTransitionEnd(Alert.TRANSITION_DURATION) :
135
+ removeElement()
136
+ }
137
+
138
+
139
+ // ALERT PLUGIN DEFINITION
140
+ // =======================
141
+
142
+ function Plugin(option) {
143
+ return this.each(function () {
144
+ var $this = $(this)
145
+ var data = $this.data('bs.alert')
146
+
147
+ if (!data) $this.data('bs.alert', (data = new Alert(this)))
148
+ if (typeof option == 'string') data[option].call($this)
149
+ })
150
+ }
151
+
152
+ var old = $.fn.alert
153
+
154
+ $.fn.alert = Plugin
155
+ $.fn.alert.Constructor = Alert
156
+
157
+
158
+ // ALERT NO CONFLICT
159
+ // =================
160
+
161
+ $.fn.alert.noConflict = function () {
162
+ $.fn.alert = old
163
+ return this
164
+ }
165
+
166
+
167
+ // ALERT DATA-API
168
+ // ==============
169
+
170
+ $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
171
+
172
+ }(jQuery);
173
+
174
+ /* ========================================================================
175
+ * Bootstrap: button.js v3.3.2
176
+ * http://getbootstrap.com/javascript/#buttons
177
+ * ========================================================================
178
+ * Copyright 2011-2015 Twitter, Inc.
179
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
180
+ * ======================================================================== */
181
+
182
+
183
+ +function ($) {
184
+ 'use strict';
185
+
186
+ // BUTTON PUBLIC CLASS DEFINITION
187
+ // ==============================
188
+
189
+ var Button = function (element, options) {
190
+ this.$element = $(element)
191
+ this.options = $.extend({}, Button.DEFAULTS, options)
192
+ this.isLoading = false
193
+ }
194
+
195
+ Button.VERSION = '3.3.2'
196
+
197
+ Button.DEFAULTS = {
198
+ loadingText: 'loading...'
199
+ }
200
+
201
+ Button.prototype.setState = function (state) {
202
+ var d = 'disabled'
203
+ var $el = this.$element
204
+ var val = $el.is('input') ? 'val' : 'html'
205
+ var data = $el.data()
206
+
207
+ state = state + 'Text'
208
+
209
+ if (data.resetText == null) $el.data('resetText', $el[val]())
210
+
211
+ // push to event loop to allow forms to submit
212
+ setTimeout($.proxy(function () {
213
+ $el[val](data[state] == null ? this.options[state] : data[state])
214
+
215
+ if (state == 'loadingText') {
216
+ this.isLoading = true
217
+ $el.addClass(d).attr(d, d)
218
+ } else if (this.isLoading) {
219
+ this.isLoading = false
220
+ $el.removeClass(d).removeAttr(d)
221
+ }
222
+ }, this), 0)
223
+ }
224
+
225
+ Button.prototype.toggle = function () {
226
+ var changed = true
227
+ var $parent = this.$element.closest('[data-toggle="buttons"]')
228
+
229
+ if ($parent.length) {
230
+ var $input = this.$element.find('input')
231
+ if ($input.prop('type') == 'radio') {
232
+ if ($input.prop('checked') && this.$element.hasClass('active')) changed = false
233
+ else $parent.find('.active').removeClass('active')
234
+ }
235
+ if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
236
+ } else {
237
+ this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
238
+ }
239
+
240
+ if (changed) this.$element.toggleClass('active')
241
+ }
242
+
243
+
244
+ // BUTTON PLUGIN DEFINITION
245
+ // ========================
246
+
247
+ function Plugin(option) {
248
+ return this.each(function () {
249
+ var $this = $(this)
250
+ var data = $this.data('bs.button')
251
+ var options = typeof option == 'object' && option
252
+
253
+ if (!data) $this.data('bs.button', (data = new Button(this, options)))
254
+
255
+ if (option == 'toggle') data.toggle()
256
+ else if (option) data.setState(option)
257
+ })
258
+ }
259
+
260
+ var old = $.fn.button
261
+
262
+ $.fn.button = Plugin
263
+ $.fn.button.Constructor = Button
264
+
265
+
266
+ // BUTTON NO CONFLICT
267
+ // ==================
268
+
269
+ $.fn.button.noConflict = function () {
270
+ $.fn.button = old
271
+ return this
272
+ }
273
+
274
+
275
+ // BUTTON DATA-API
276
+ // ===============
277
+
278
+ $(document)
279
+ .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
280
+ var $btn = $(e.target)
281
+ if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
282
+ Plugin.call($btn, 'toggle')
283
+ e.preventDefault()
284
+ })
285
+ .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
286
+ $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
287
+ })
288
+
289
+ }(jQuery);
290
+
291
+ /* ========================================================================
292
+ * Bootstrap: carousel.js v3.3.2
293
+ * http://getbootstrap.com/javascript/#carousel
294
+ * ========================================================================
295
+ * Copyright 2011-2015 Twitter, Inc.
296
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
297
+ * ======================================================================== */
298
+
299
+
300
+ +function ($) {
301
+ 'use strict';
302
+
303
+ // CAROUSEL CLASS DEFINITION
304
+ // =========================
305
+
306
+ var Carousel = function (element, options) {
307
+ this.$element = $(element)
308
+ this.$indicators = this.$element.find('.carousel-indicators')
309
+ this.options = options
310
+ this.paused =
311
+ this.sliding =
312
+ this.interval =
313
+ this.$active =
314
+ this.$items = null
315
+
316
+ this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
317
+
318
+ this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element
319
+ .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
320
+ .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
321
+ }
322
+
323
+ Carousel.VERSION = '3.3.2'
324
+
325
+ Carousel.TRANSITION_DURATION = 600
326
+
327
+ Carousel.DEFAULTS = {
328
+ interval: 5000,
329
+ pause: 'hover',
330
+ wrap: true,
331
+ keyboard: true
332
+ }
333
+
334
+ Carousel.prototype.keydown = function (e) {
335
+ if (/input|textarea/i.test(e.target.tagName)) return
336
+ switch (e.which) {
337
+ case 37: this.prev(); break
338
+ case 39: this.next(); break
339
+ default: return
340
+ }
341
+
342
+ e.preventDefault()
343
+ }
344
+
345
+ Carousel.prototype.cycle = function (e) {
346
+ e || (this.paused = false)
347
+
348
+ this.interval && clearInterval(this.interval)
349
+
350
+ this.options.interval
351
+ && !this.paused
352
+ && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
353
+
354
+ return this
355
+ }
356
+
357
+ Carousel.prototype.getItemIndex = function (item) {
358
+ this.$items = item.parent().children('.item')
359
+ return this.$items.index(item || this.$active)
360
+ }
361
+
362
+ Carousel.prototype.getItemForDirection = function (direction, active) {
363
+ var activeIndex = this.getItemIndex(active)
364
+ var willWrap = (direction == 'prev' && activeIndex === 0)
365
+ || (direction == 'next' && activeIndex == (this.$items.length - 1))
366
+ if (willWrap && !this.options.wrap) return active
367
+ var delta = direction == 'prev' ? -1 : 1
368
+ var itemIndex = (activeIndex + delta) % this.$items.length
369
+ return this.$items.eq(itemIndex)
370
+ }
371
+
372
+ Carousel.prototype.to = function (pos) {
373
+ var that = this
374
+ var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
375
+
376
+ if (pos > (this.$items.length - 1) || pos < 0) return
377
+
378
+ if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
379
+ if (activeIndex == pos) return this.pause().cycle()
380
+
381
+ return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))
382
+ }
383
+
384
+ Carousel.prototype.pause = function (e) {
385
+ e || (this.paused = true)
386
+
387
+ if (this.$element.find('.next, .prev').length && $.support.transition) {
388
+ this.$element.trigger($.support.transition.end)
389
+ this.cycle(true)
390
+ }
391
+
392
+ this.interval = clearInterval(this.interval)
393
+
394
+ return this
395
+ }
396
+
397
+ Carousel.prototype.next = function () {
398
+ if (this.sliding) return
399
+ return this.slide('next')
400
+ }
401
+
402
+ Carousel.prototype.prev = function () {
403
+ if (this.sliding) return
404
+ return this.slide('prev')
405
+ }
406
+
407
+ Carousel.prototype.slide = function (type, next) {
408
+ var $active = this.$element.find('.item.active')
409
+ var $next = next || this.getItemForDirection(type, $active)
410
+ var isCycling = this.interval
411
+ var direction = type == 'next' ? 'left' : 'right'
412
+ var that = this
413
+
414
+ if ($next.hasClass('active')) return (this.sliding = false)
415
+
416
+ var relatedTarget = $next[0]
417
+ var slideEvent = $.Event('slide.bs.carousel', {
418
+ relatedTarget: relatedTarget,
419
+ direction: direction
420
+ })
421
+ this.$element.trigger(slideEvent)
422
+ if (slideEvent.isDefaultPrevented()) return
423
+
424
+ this.sliding = true
425
+
426
+ isCycling && this.pause()
427
+
428
+ if (this.$indicators.length) {
429
+ this.$indicators.find('.active').removeClass('active')
430
+ var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
431
+ $nextIndicator && $nextIndicator.addClass('active')
432
+ }
433
+
434
+ var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
435
+ if ($.support.transition && this.$element.hasClass('slide')) {
436
+ $next.addClass(type)
437
+ $next[0].offsetWidth // force reflow
438
+ $active.addClass(direction)
439
+ $next.addClass(direction)
440
+ $active
441
+ .one('bsTransitionEnd', function () {
442
+ $next.removeClass([type, direction].join(' ')).addClass('active')
443
+ $active.removeClass(['active', direction].join(' '))
444
+ that.sliding = false
445
+ setTimeout(function () {
446
+ that.$element.trigger(slidEvent)
447
+ }, 0)
448
+ })
449
+ .emulateTransitionEnd(Carousel.TRANSITION_DURATION)
450
+ } else {
451
+ $active.removeClass('active')
452
+ $next.addClass('active')
453
+ this.sliding = false
454
+ this.$element.trigger(slidEvent)
455
+ }
456
+
457
+ isCycling && this.cycle()
458
+
459
+ return this
460
+ }
461
+
462
+
463
+ // CAROUSEL PLUGIN DEFINITION
464
+ // ==========================
465
+
466
+ function Plugin(option) {
467
+ return this.each(function () {
468
+ var $this = $(this)
469
+ var data = $this.data('bs.carousel')
470
+ var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
471
+ var action = typeof option == 'string' ? option : options.slide
472
+
473
+ if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
474
+ if (typeof option == 'number') data.to(option)
475
+ else if (action) data[action]()
476
+ else if (options.interval) data.pause().cycle()
477
+ })
478
+ }
479
+
480
+ var old = $.fn.carousel
481
+
482
+ $.fn.carousel = Plugin
483
+ $.fn.carousel.Constructor = Carousel
484
+
485
+
486
+ // CAROUSEL NO CONFLICT
487
+ // ====================
488
+
489
+ $.fn.carousel.noConflict = function () {
490
+ $.fn.carousel = old
491
+ return this
492
+ }
493
+
494
+
495
+ // CAROUSEL DATA-API
496
+ // =================
497
+
498
+ var clickHandler = function (e) {
499
+ var href
500
+ var $this = $(this)
501
+ var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
502
+ if (!$target.hasClass('carousel')) return
503
+ var options = $.extend({}, $target.data(), $this.data())
504
+ var slideIndex = $this.attr('data-slide-to')
505
+ if (slideIndex) options.interval = false
506
+
507
+ Plugin.call($target, options)
508
+
509
+ if (slideIndex) {
510
+ $target.data('bs.carousel').to(slideIndex)
511
+ }
512
+
513
+ e.preventDefault()
514
+ }
515
+
516
+ $(document)
517
+ .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
518
+ .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
519
+
520
+ $(window).on('load', function () {
521
+ $('[data-ride="carousel"]').each(function () {
522
+ var $carousel = $(this)
523
+ Plugin.call($carousel, $carousel.data())
524
+ })
525
+ })
526
+
527
+ }(jQuery);
528
+
529
+ /* ========================================================================
530
+ * Bootstrap: collapse.js v3.3.2
531
+ * http://getbootstrap.com/javascript/#collapse
532
+ * ========================================================================
533
+ * Copyright 2011-2015 Twitter, Inc.
534
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
535
+ * ======================================================================== */
536
+
537
+
538
+ +function ($) {
539
+ 'use strict';
540
+
541
+ // COLLAPSE PUBLIC CLASS DEFINITION
542
+ // ================================
543
+
544
+ var Collapse = function (element, options) {
545
+ this.$element = $(element)
546
+ this.options = $.extend({}, Collapse.DEFAULTS, options)
547
+ this.$trigger = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]')
548
+ this.transitioning = null
549
+
550
+ if (this.options.parent) {
551
+ this.$parent = this.getParent()
552
+ } else {
553
+ this.addAriaAndCollapsedClass(this.$element, this.$trigger)
554
+ }
555
+
556
+ if (this.options.toggle) this.toggle()
557
+ }
558
+
559
+ Collapse.VERSION = '3.3.2'
560
+
561
+ Collapse.TRANSITION_DURATION = 350
562
+
563
+ Collapse.DEFAULTS = {
564
+ toggle: true,
565
+ trigger: '[data-toggle="collapse"]'
566
+ }
567
+
568
+ Collapse.prototype.dimension = function () {
569
+ var hasWidth = this.$element.hasClass('width')
570
+ return hasWidth ? 'width' : 'height'
571
+ }
572
+
573
+ Collapse.prototype.show = function () {
574
+ if (this.transitioning || this.$element.hasClass('in')) return
575
+
576
+ var activesData
577
+ var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
578
+
579
+ if (actives && actives.length) {
580
+ activesData = actives.data('bs.collapse')
581
+ if (activesData && activesData.transitioning) return
582
+ }
583
+
584
+ var startEvent = $.Event('show.bs.collapse')
585
+ this.$element.trigger(startEvent)
586
+ if (startEvent.isDefaultPrevented()) return
587
+
588
+ if (actives && actives.length) {
589
+ Plugin.call(actives, 'hide')
590
+ activesData || actives.data('bs.collapse', null)
591
+ }
592
+
593
+ var dimension = this.dimension()
594
+
595
+ this.$element
596
+ .removeClass('collapse')
597
+ .addClass('collapsing')[dimension](0)
598
+ .attr('aria-expanded', true)
599
+
600
+ this.$trigger
601
+ .removeClass('collapsed')
602
+ .attr('aria-expanded', true)
603
+
604
+ this.transitioning = 1
605
+
606
+ var complete = function () {
607
+ this.$element
608
+ .removeClass('collapsing')
609
+ .addClass('collapse in')[dimension]('')
610
+ this.transitioning = 0
611
+ this.$element
612
+ .trigger('shown.bs.collapse')
613
+ }
614
+
615
+ if (!$.support.transition) return complete.call(this)
616
+
617
+ var scrollSize = $.camelCase(['scroll', dimension].join('-'))
618
+
619
+ this.$element
620
+ .one('bsTransitionEnd', $.proxy(complete, this))
621
+ .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
622
+ }
623
+
624
+ Collapse.prototype.hide = function () {
625
+ if (this.transitioning || !this.$element.hasClass('in')) return
626
+
627
+ var startEvent = $.Event('hide.bs.collapse')
628
+ this.$element.trigger(startEvent)
629
+ if (startEvent.isDefaultPrevented()) return
630
+
631
+ var dimension = this.dimension()
632
+
633
+ this.$element[dimension](this.$element[dimension]())[0].offsetHeight
634
+
635
+ this.$element
636
+ .addClass('collapsing')
637
+ .removeClass('collapse in')
638
+ .attr('aria-expanded', false)
639
+
640
+ this.$trigger
641
+ .addClass('collapsed')
642
+ .attr('aria-expanded', false)
643
+
644
+ this.transitioning = 1
645
+
646
+ var complete = function () {
647
+ this.transitioning = 0
648
+ this.$element
649
+ .removeClass('collapsing')
650
+ .addClass('collapse')
651
+ .trigger('hidden.bs.collapse')
652
+ }
653
+
654
+ if (!$.support.transition) return complete.call(this)
655
+
656
+ this.$element
657
+ [dimension](0)
658
+ .one('bsTransitionEnd', $.proxy(complete, this))
659
+ .emulateTransitionEnd(Collapse.TRANSITION_DURATION)
660
+ }
661
+
662
+ Collapse.prototype.toggle = function () {
663
+ this[this.$element.hasClass('in') ? 'hide' : 'show']()
664
+ }
665
+
666
+ Collapse.prototype.getParent = function () {
667
+ return $(this.options.parent)
668
+ .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
669
+ .each($.proxy(function (i, element) {
670
+ var $element = $(element)
671
+ this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
672
+ }, this))
673
+ .end()
674
+ }
675
+
676
+ Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
677
+ var isOpen = $element.hasClass('in')
678
+
679
+ $element.attr('aria-expanded', isOpen)
680
+ $trigger
681
+ .toggleClass('collapsed', !isOpen)
682
+ .attr('aria-expanded', isOpen)
683
+ }
684
+
685
+ function getTargetFromTrigger($trigger) {
686
+ var href
687
+ var target = $trigger.attr('data-target')
688
+ || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
689
+
690
+ return $(target)
691
+ }
692
+
693
+
694
+ // COLLAPSE PLUGIN DEFINITION
695
+ // ==========================
696
+
697
+ function Plugin(option) {
698
+ return this.each(function () {
699
+ var $this = $(this)
700
+ var data = $this.data('bs.collapse')
701
+ var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
702
+
703
+ if (!data && options.toggle && option == 'show') options.toggle = false
704
+ if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
705
+ if (typeof option == 'string') data[option]()
706
+ })
707
+ }
708
+
709
+ var old = $.fn.collapse
710
+
711
+ $.fn.collapse = Plugin
712
+ $.fn.collapse.Constructor = Collapse
713
+
714
+
715
+ // COLLAPSE NO CONFLICT
716
+ // ====================
717
+
718
+ $.fn.collapse.noConflict = function () {
719
+ $.fn.collapse = old
720
+ return this
721
+ }
722
+
723
+
724
+ // COLLAPSE DATA-API
725
+ // =================
726
+
727
+ $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
728
+ var $this = $(this)
729
+
730
+ if (!$this.attr('data-target')) e.preventDefault()
731
+
732
+ var $target = getTargetFromTrigger($this)
733
+ var data = $target.data('bs.collapse')
734
+ var option = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this })
735
+
736
+ Plugin.call($target, option)
737
+ })
738
+
739
+ }(jQuery);
740
+
741
+ /* ========================================================================
742
+ * Bootstrap: dropdown.js v3.3.2
743
+ * http://getbootstrap.com/javascript/#dropdowns
744
+ * ========================================================================
745
+ * Copyright 2011-2015 Twitter, Inc.
746
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
747
+ * ======================================================================== */
748
+
749
+
750
+ +function ($) {
751
+ 'use strict';
752
+
753
+ // DROPDOWN CLASS DEFINITION
754
+ // =========================
755
+
756
+ var backdrop = '.dropdown-backdrop'
757
+ var toggle = '[data-toggle="dropdown"]'
758
+ var Dropdown = function (element) {
759
+ $(element).on('click.bs.dropdown', this.toggle)
760
+ }
761
+
762
+ Dropdown.VERSION = '3.3.2'
763
+
764
+ Dropdown.prototype.toggle = function (e) {
765
+ var $this = $(this)
766
+
767
+ if ($this.is('.disabled, :disabled')) return
768
+
769
+ var $parent = getParent($this)
770
+ var isActive = $parent.hasClass('open')
771
+
772
+ clearMenus()
773
+
774
+ if (!isActive) {
775
+ if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
776
+ // if mobile we use a backdrop because click events don't delegate
777
+ $('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
778
+ }
779
+
780
+ var relatedTarget = { relatedTarget: this }
781
+ $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
782
+
783
+ if (e.isDefaultPrevented()) return
784
+
785
+ $this
786
+ .trigger('focus')
787
+ .attr('aria-expanded', 'true')
788
+
789
+ $parent
790
+ .toggleClass('open')
791
+ .trigger('shown.bs.dropdown', relatedTarget)
792
+ }
793
+
794
+ return false
795
+ }
796
+
797
+ Dropdown.prototype.keydown = function (e) {
798
+ if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
799
+
800
+ var $this = $(this)
801
+
802
+ e.preventDefault()
803
+ e.stopPropagation()
804
+
805
+ if ($this.is('.disabled, :disabled')) return
806
+
807
+ var $parent = getParent($this)
808
+ var isActive = $parent.hasClass('open')
809
+
810
+ if ((!isActive && e.which != 27) || (isActive && e.which == 27)) {
811
+ if (e.which == 27) $parent.find(toggle).trigger('focus')
812
+ return $this.trigger('click')
813
+ }
814
+
815
+ var desc = ' li:not(.divider):visible a'
816
+ var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc)
817
+
818
+ if (!$items.length) return
819
+
820
+ var index = $items.index(e.target)
821
+
822
+ if (e.which == 38 && index > 0) index-- // up
823
+ if (e.which == 40 && index < $items.length - 1) index++ // down
824
+ if (!~index) index = 0
825
+
826
+ $items.eq(index).trigger('focus')
827
+ }
828
+
829
+ function clearMenus(e) {
830
+ if (e && e.which === 3) return
831
+ $(backdrop).remove()
832
+ $(toggle).each(function () {
833
+ var $this = $(this)
834
+ var $parent = getParent($this)
835
+ var relatedTarget = { relatedTarget: this }
836
+
837
+ if (!$parent.hasClass('open')) return
838
+
839
+ $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
840
+
841
+ if (e.isDefaultPrevented()) return
842
+
843
+ $this.attr('aria-expanded', 'false')
844
+ $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
845
+ })
846
+ }
847
+
848
+ function getParent($this) {
849
+ var selector = $this.attr('data-target')
850
+
851
+ if (!selector) {
852
+ selector = $this.attr('href')
853
+ selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
854
+ }
855
+
856
+ var $parent = selector && $(selector)
857
+
858
+ return $parent && $parent.length ? $parent : $this.parent()
859
+ }
860
+
861
+
862
+ // DROPDOWN PLUGIN DEFINITION
863
+ // ==========================
864
+
865
+ function Plugin(option) {
866
+ return this.each(function () {
867
+ var $this = $(this)
868
+ var data = $this.data('bs.dropdown')
869
+
870
+ if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
871
+ if (typeof option == 'string') data[option].call($this)
872
+ })
873
+ }
874
+
875
+ var old = $.fn.dropdown
876
+
877
+ $.fn.dropdown = Plugin
878
+ $.fn.dropdown.Constructor = Dropdown
879
+
880
+
881
+ // DROPDOWN NO CONFLICT
882
+ // ====================
883
+
884
+ $.fn.dropdown.noConflict = function () {
885
+ $.fn.dropdown = old
886
+ return this
887
+ }
888
+
889
+
890
+ // APPLY TO STANDARD DROPDOWN ELEMENTS
891
+ // ===================================
892
+
893
+ $(document)
894
+ .on('click.bs.dropdown.data-api', clearMenus)
895
+ .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
896
+ .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
897
+ .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
898
+ .on('keydown.bs.dropdown.data-api', '[role="menu"]', Dropdown.prototype.keydown)
899
+ .on('keydown.bs.dropdown.data-api', '[role="listbox"]', Dropdown.prototype.keydown)
900
+
901
+ }(jQuery);
902
+
903
+ /* ========================================================================
904
+ * Bootstrap: modal.js v3.3.2
905
+ * http://getbootstrap.com/javascript/#modals
906
+ * ========================================================================
907
+ * Copyright 2011-2015 Twitter, Inc.
908
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
909
+ * ======================================================================== */
910
+
911
+
912
+ +function ($) {
913
+ 'use strict';
914
+
915
+ // MODAL CLASS DEFINITION
916
+ // ======================
917
+
918
+ var Modal = function (element, options) {
919
+ this.options = options
920
+ this.$body = $(document.body)
921
+ this.$element = $(element)
922
+ this.$backdrop =
923
+ this.isShown = null
924
+ this.scrollbarWidth = 0
925
+
926
+ if (this.options.remote) {
927
+ this.$element
928
+ .find('.modal-content')
929
+ .load(this.options.remote, $.proxy(function () {
930
+ this.$element.trigger('loaded.bs.modal')
931
+ }, this))
932
+ }
933
+ }
934
+
935
+ Modal.VERSION = '3.3.2'
936
+
937
+ Modal.TRANSITION_DURATION = 300
938
+ Modal.BACKDROP_TRANSITION_DURATION = 150
939
+
940
+ Modal.DEFAULTS = {
941
+ backdrop: true,
942
+ keyboard: true,
943
+ show: true
944
+ }
945
+
946
+ Modal.prototype.toggle = function (_relatedTarget) {
947
+ return this.isShown ? this.hide() : this.show(_relatedTarget)
948
+ }
949
+
950
+ Modal.prototype.show = function (_relatedTarget) {
951
+ var that = this
952
+ var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
953
+
954
+ this.$element.trigger(e)
955
+
956
+ if (this.isShown || e.isDefaultPrevented()) return
957
+
958
+ this.isShown = true
959
+
960
+ this.checkScrollbar()
961
+ this.setScrollbar()
962
+ this.$body.addClass('modal-open')
963
+
964
+ this.escape()
965
+ this.resize()
966
+
967
+ this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
968
+
969
+ this.backdrop(function () {
970
+ var transition = $.support.transition && that.$element.hasClass('fade')
971
+
972
+ if (!that.$element.parent().length) {
973
+ that.$element.appendTo(that.$body) // don't move modals dom position
974
+ }
975
+
976
+ that.$element
977
+ .show()
978
+ .scrollTop(0)
979
+
980
+ if (that.options.backdrop) that.adjustBackdrop()
981
+ that.adjustDialog()
982
+
983
+ if (transition) {
984
+ that.$element[0].offsetWidth // force reflow
985
+ }
986
+
987
+ that.$element
988
+ .addClass('in')
989
+ .attr('aria-hidden', false)
990
+
991
+ that.enforceFocus()
992
+
993
+ var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
994
+
995
+ transition ?
996
+ that.$element.find('.modal-dialog') // wait for modal to slide in
997
+ .one('bsTransitionEnd', function () {
998
+ that.$element.trigger('focus').trigger(e)
999
+ })
1000
+ .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
1001
+ that.$element.trigger('focus').trigger(e)
1002
+ })
1003
+ }
1004
+
1005
+ Modal.prototype.hide = function (e) {
1006
+ if (e) e.preventDefault()
1007
+
1008
+ e = $.Event('hide.bs.modal')
1009
+
1010
+ this.$element.trigger(e)
1011
+
1012
+ if (!this.isShown || e.isDefaultPrevented()) return
1013
+
1014
+ this.isShown = false
1015
+
1016
+ this.escape()
1017
+ this.resize()
1018
+
1019
+ $(document).off('focusin.bs.modal')
1020
+
1021
+ this.$element
1022
+ .removeClass('in')
1023
+ .attr('aria-hidden', true)
1024
+ .off('click.dismiss.bs.modal')
1025
+
1026
+ $.support.transition && this.$element.hasClass('fade') ?
1027
+ this.$element
1028
+ .one('bsTransitionEnd', $.proxy(this.hideModal, this))
1029
+ .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
1030
+ this.hideModal()
1031
+ }
1032
+
1033
+ Modal.prototype.enforceFocus = function () {
1034
+ $(document)
1035
+ .off('focusin.bs.modal') // guard against infinite focus loop
1036
+ .on('focusin.bs.modal', $.proxy(function (e) {
1037
+ if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
1038
+ this.$element.trigger('focus')
1039
+ }
1040
+ }, this))
1041
+ }
1042
+
1043
+ Modal.prototype.escape = function () {
1044
+ if (this.isShown && this.options.keyboard) {
1045
+ this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
1046
+ e.which == 27 && this.hide()
1047
+ }, this))
1048
+ } else if (!this.isShown) {
1049
+ this.$element.off('keydown.dismiss.bs.modal')
1050
+ }
1051
+ }
1052
+
1053
+ Modal.prototype.resize = function () {
1054
+ if (this.isShown) {
1055
+ $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))
1056
+ } else {
1057
+ $(window).off('resize.bs.modal')
1058
+ }
1059
+ }
1060
+
1061
+ Modal.prototype.hideModal = function () {
1062
+ var that = this
1063
+ this.$element.hide()
1064
+ this.backdrop(function () {
1065
+ that.$body.removeClass('modal-open')
1066
+ that.resetAdjustments()
1067
+ that.resetScrollbar()
1068
+ that.$element.trigger('hidden.bs.modal')
1069
+ })
1070
+ }
1071
+
1072
+ Modal.prototype.removeBackdrop = function () {
1073
+ this.$backdrop && this.$backdrop.remove()
1074
+ this.$backdrop = null
1075
+ }
1076
+
1077
+ Modal.prototype.backdrop = function (callback) {
1078
+ var that = this
1079
+ var animate = this.$element.hasClass('fade') ? 'fade' : ''
1080
+
1081
+ if (this.isShown && this.options.backdrop) {
1082
+ var doAnimate = $.support.transition && animate
1083
+
1084
+ this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
1085
+ .prependTo(this.$element)
1086
+ .on('click.dismiss.bs.modal', $.proxy(function (e) {
1087
+ if (e.target !== e.currentTarget) return
1088
+ this.options.backdrop == 'static'
1089
+ ? this.$element[0].focus.call(this.$element[0])
1090
+ : this.hide.call(this)
1091
+ }, this))
1092
+
1093
+ if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
1094
+
1095
+ this.$backdrop.addClass('in')
1096
+
1097
+ if (!callback) return
1098
+
1099
+ doAnimate ?
1100
+ this.$backdrop
1101
+ .one('bsTransitionEnd', callback)
1102
+ .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
1103
+ callback()
1104
+
1105
+ } else if (!this.isShown && this.$backdrop) {
1106
+ this.$backdrop.removeClass('in')
1107
+
1108
+ var callbackRemove = function () {
1109
+ that.removeBackdrop()
1110
+ callback && callback()
1111
+ }
1112
+ $.support.transition && this.$element.hasClass('fade') ?
1113
+ this.$backdrop
1114
+ .one('bsTransitionEnd', callbackRemove)
1115
+ .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
1116
+ callbackRemove()
1117
+
1118
+ } else if (callback) {
1119
+ callback()
1120
+ }
1121
+ }
1122
+
1123
+ // these following methods are used to handle overflowing modals
1124
+
1125
+ Modal.prototype.handleUpdate = function () {
1126
+ if (this.options.backdrop) this.adjustBackdrop()
1127
+ this.adjustDialog()
1128
+ }
1129
+
1130
+ Modal.prototype.adjustBackdrop = function () {
1131
+ this.$backdrop
1132
+ .css('height', 0)
1133
+ .css('height', this.$element[0].scrollHeight)
1134
+ }
1135
+
1136
+ Modal.prototype.adjustDialog = function () {
1137
+ var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
1138
+
1139
+ this.$element.css({
1140
+ paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
1141
+ paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
1142
+ })
1143
+ }
1144
+
1145
+ Modal.prototype.resetAdjustments = function () {
1146
+ this.$element.css({
1147
+ paddingLeft: '',
1148
+ paddingRight: ''
1149
+ })
1150
+ }
1151
+
1152
+ Modal.prototype.checkScrollbar = function () {
1153
+ this.bodyIsOverflowing = document.body.scrollHeight > document.documentElement.clientHeight
1154
+ this.scrollbarWidth = this.measureScrollbar()
1155
+ }
1156
+
1157
+ Modal.prototype.setScrollbar = function () {
1158
+ var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
1159
+ if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
1160
+ }
1161
+
1162
+ Modal.prototype.resetScrollbar = function () {
1163
+ this.$body.css('padding-right', '')
1164
+ }
1165
+
1166
+ Modal.prototype.measureScrollbar = function () { // thx walsh
1167
+ var scrollDiv = document.createElement('div')
1168
+ scrollDiv.className = 'modal-scrollbar-measure'
1169
+ this.$body.append(scrollDiv)
1170
+ var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
1171
+ this.$body[0].removeChild(scrollDiv)
1172
+ return scrollbarWidth
1173
+ }
1174
+
1175
+
1176
+ // MODAL PLUGIN DEFINITION
1177
+ // =======================
1178
+
1179
+ function Plugin(option, _relatedTarget) {
1180
+ return this.each(function () {
1181
+ var $this = $(this)
1182
+ var data = $this.data('bs.modal')
1183
+ var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
1184
+
1185
+ if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
1186
+ if (typeof option == 'string') data[option](_relatedTarget)
1187
+ else if (options.show) data.show(_relatedTarget)
1188
+ })
1189
+ }
1190
+
1191
+ var old = $.fn.modal
1192
+
1193
+ $.fn.modal = Plugin
1194
+ $.fn.modal.Constructor = Modal
1195
+
1196
+
1197
+ // MODAL NO CONFLICT
1198
+ // =================
1199
+
1200
+ $.fn.modal.noConflict = function () {
1201
+ $.fn.modal = old
1202
+ return this
1203
+ }
1204
+
1205
+
1206
+ // MODAL DATA-API
1207
+ // ==============
1208
+
1209
+ $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
1210
+ var $this = $(this)
1211
+ var href = $this.attr('href')
1212
+ var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
1213
+ var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
1214
+
1215
+ if ($this.is('a')) e.preventDefault()
1216
+
1217
+ $target.one('show.bs.modal', function (showEvent) {
1218
+ if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
1219
+ $target.one('hidden.bs.modal', function () {
1220
+ $this.is(':visible') && $this.trigger('focus')
1221
+ })
1222
+ })
1223
+ Plugin.call($target, option, this)
1224
+ })
1225
+
1226
+ }(jQuery);
1227
+
1228
+ /* ========================================================================
1229
+ * Bootstrap: tooltip.js v3.3.2
1230
+ * http://getbootstrap.com/javascript/#tooltip
1231
+ * Inspired by the original jQuery.tipsy by Jason Frame
1232
+ * ========================================================================
1233
+ * Copyright 2011-2015 Twitter, Inc.
1234
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1235
+ * ======================================================================== */
1236
+
1237
+
1238
+ +function ($) {
1239
+ 'use strict';
1240
+
1241
+ // TOOLTIP PUBLIC CLASS DEFINITION
1242
+ // ===============================
1243
+
1244
+ var Tooltip = function (element, options) {
1245
+ this.type =
1246
+ this.options =
1247
+ this.enabled =
1248
+ this.timeout =
1249
+ this.hoverState =
1250
+ this.$element = null
1251
+
1252
+ this.init('tooltip', element, options)
1253
+ }
1254
+
1255
+ Tooltip.VERSION = '3.3.2'
1256
+
1257
+ Tooltip.TRANSITION_DURATION = 150
1258
+
1259
+ Tooltip.DEFAULTS = {
1260
+ animation: true,
1261
+ placement: 'top',
1262
+ selector: false,
1263
+ template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
1264
+ trigger: 'hover focus',
1265
+ title: '',
1266
+ delay: 0,
1267
+ html: false,
1268
+ container: false,
1269
+ viewport: {
1270
+ selector: 'body',
1271
+ padding: 0
1272
+ }
1273
+ }
1274
+
1275
+ Tooltip.prototype.init = function (type, element, options) {
1276
+ this.enabled = true
1277
+ this.type = type
1278
+ this.$element = $(element)
1279
+ this.options = this.getOptions(options)
1280
+ this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)
1281
+
1282
+ var triggers = this.options.trigger.split(' ')
1283
+
1284
+ for (var i = triggers.length; i--;) {
1285
+ var trigger = triggers[i]
1286
+
1287
+ if (trigger == 'click') {
1288
+ this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
1289
+ } else if (trigger != 'manual') {
1290
+ var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'
1291
+ var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
1292
+
1293
+ this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
1294
+ this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
1295
+ }
1296
+ }
1297
+
1298
+ this.options.selector ?
1299
+ (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
1300
+ this.fixTitle()
1301
+ }
1302
+
1303
+ Tooltip.prototype.getDefaults = function () {
1304
+ return Tooltip.DEFAULTS
1305
+ }
1306
+
1307
+ Tooltip.prototype.getOptions = function (options) {
1308
+ options = $.extend({}, this.getDefaults(), this.$element.data(), options)
1309
+
1310
+ if (options.delay && typeof options.delay == 'number') {
1311
+ options.delay = {
1312
+ show: options.delay,
1313
+ hide: options.delay
1314
+ }
1315
+ }
1316
+
1317
+ return options
1318
+ }
1319
+
1320
+ Tooltip.prototype.getDelegateOptions = function () {
1321
+ var options = {}
1322
+ var defaults = this.getDefaults()
1323
+
1324
+ this._options && $.each(this._options, function (key, value) {
1325
+ if (defaults[key] != value) options[key] = value
1326
+ })
1327
+
1328
+ return options
1329
+ }
1330
+
1331
+ Tooltip.prototype.enter = function (obj) {
1332
+ var self = obj instanceof this.constructor ?
1333
+ obj : $(obj.currentTarget).data('bs.' + this.type)
1334
+
1335
+ if (self && self.$tip && self.$tip.is(':visible')) {
1336
+ self.hoverState = 'in'
1337
+ return
1338
+ }
1339
+
1340
+ if (!self) {
1341
+ self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
1342
+ $(obj.currentTarget).data('bs.' + this.type, self)
1343
+ }
1344
+
1345
+ clearTimeout(self.timeout)
1346
+
1347
+ self.hoverState = 'in'
1348
+
1349
+ if (!self.options.delay || !self.options.delay.show) return self.show()
1350
+
1351
+ self.timeout = setTimeout(function () {
1352
+ if (self.hoverState == 'in') self.show()
1353
+ }, self.options.delay.show)
1354
+ }
1355
+
1356
+ Tooltip.prototype.leave = function (obj) {
1357
+ var self = obj instanceof this.constructor ?
1358
+ obj : $(obj.currentTarget).data('bs.' + this.type)
1359
+
1360
+ if (!self) {
1361
+ self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
1362
+ $(obj.currentTarget).data('bs.' + this.type, self)
1363
+ }
1364
+
1365
+ clearTimeout(self.timeout)
1366
+
1367
+ self.hoverState = 'out'
1368
+
1369
+ if (!self.options.delay || !self.options.delay.hide) return self.hide()
1370
+
1371
+ self.timeout = setTimeout(function () {
1372
+ if (self.hoverState == 'out') self.hide()
1373
+ }, self.options.delay.hide)
1374
+ }
1375
+
1376
+ Tooltip.prototype.show = function () {
1377
+ var e = $.Event('show.bs.' + this.type)
1378
+
1379
+ if (this.hasContent() && this.enabled) {
1380
+ this.$element.trigger(e)
1381
+
1382
+ var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
1383
+ if (e.isDefaultPrevented() || !inDom) return
1384
+ var that = this
1385
+
1386
+ var $tip = this.tip()
1387
+
1388
+ var tipId = this.getUID(this.type)
1389
+
1390
+ this.setContent()
1391
+ $tip.attr('id', tipId)
1392
+ this.$element.attr('aria-describedby', tipId)
1393
+
1394
+ if (this.options.animation) $tip.addClass('fade')
1395
+
1396
+ var placement = typeof this.options.placement == 'function' ?
1397
+ this.options.placement.call(this, $tip[0], this.$element[0]) :
1398
+ this.options.placement
1399
+
1400
+ var autoToken = /\s?auto?\s?/i
1401
+ var autoPlace = autoToken.test(placement)
1402
+ if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
1403
+
1404
+ $tip
1405
+ .detach()
1406
+ .css({ top: 0, left: 0, display: 'block' })
1407
+ .addClass(placement)
1408
+ .data('bs.' + this.type, this)
1409
+
1410
+ this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
1411
+
1412
+ var pos = this.getPosition()
1413
+ var actualWidth = $tip[0].offsetWidth
1414
+ var actualHeight = $tip[0].offsetHeight
1415
+
1416
+ if (autoPlace) {
1417
+ var orgPlacement = placement
1418
+ var $container = this.options.container ? $(this.options.container) : this.$element.parent()
1419
+ var containerDim = this.getPosition($container)
1420
+
1421
+ placement = placement == 'bottom' && pos.bottom + actualHeight > containerDim.bottom ? 'top' :
1422
+ placement == 'top' && pos.top - actualHeight < containerDim.top ? 'bottom' :
1423
+ placement == 'right' && pos.right + actualWidth > containerDim.width ? 'left' :
1424
+ placement == 'left' && pos.left - actualWidth < containerDim.left ? 'right' :
1425
+ placement
1426
+
1427
+ $tip
1428
+ .removeClass(orgPlacement)
1429
+ .addClass(placement)
1430
+ }
1431
+
1432
+ var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
1433
+
1434
+ this.applyPlacement(calculatedOffset, placement)
1435
+
1436
+ var complete = function () {
1437
+ var prevHoverState = that.hoverState
1438
+ that.$element.trigger('shown.bs.' + that.type)
1439
+ that.hoverState = null
1440
+
1441
+ if (prevHoverState == 'out') that.leave(that)
1442
+ }
1443
+
1444
+ $.support.transition && this.$tip.hasClass('fade') ?
1445
+ $tip
1446
+ .one('bsTransitionEnd', complete)
1447
+ .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
1448
+ complete()
1449
+ }
1450
+ }
1451
+
1452
+ Tooltip.prototype.applyPlacement = function (offset, placement) {
1453
+ var $tip = this.tip()
1454
+ var width = $tip[0].offsetWidth
1455
+ var height = $tip[0].offsetHeight
1456
+
1457
+ // manually read margins because getBoundingClientRect includes difference
1458
+ var marginTop = parseInt($tip.css('margin-top'), 10)
1459
+ var marginLeft = parseInt($tip.css('margin-left'), 10)
1460
+
1461
+ // we must check for NaN for ie 8/9
1462
+ if (isNaN(marginTop)) marginTop = 0
1463
+ if (isNaN(marginLeft)) marginLeft = 0
1464
+
1465
+ offset.top = offset.top + marginTop
1466
+ offset.left = offset.left + marginLeft
1467
+
1468
+ // $.fn.offset doesn't round pixel values
1469
+ // so we use setOffset directly with our own function B-0
1470
+ $.offset.setOffset($tip[0], $.extend({
1471
+ using: function (props) {
1472
+ $tip.css({
1473
+ top: Math.round(props.top),
1474
+ left: Math.round(props.left)
1475
+ })
1476
+ }
1477
+ }, offset), 0)
1478
+
1479
+ $tip.addClass('in')
1480
+
1481
+ // check to see if placing tip in new offset caused the tip to resize itself
1482
+ var actualWidth = $tip[0].offsetWidth
1483
+ var actualHeight = $tip[0].offsetHeight
1484
+
1485
+ if (placement == 'top' && actualHeight != height) {
1486
+ offset.top = offset.top + height - actualHeight
1487
+ }
1488
+
1489
+ var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
1490
+
1491
+ if (delta.left) offset.left += delta.left
1492
+ else offset.top += delta.top
1493
+
1494
+ var isVertical = /top|bottom/.test(placement)
1495
+ var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
1496
+ var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'
1497
+
1498
+ $tip.offset(offset)
1499
+ this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
1500
+ }
1501
+
1502
+ Tooltip.prototype.replaceArrow = function (delta, dimension, isHorizontal) {
1503
+ this.arrow()
1504
+ .css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
1505
+ .css(isHorizontal ? 'top' : 'left', '')
1506
+ }
1507
+
1508
+ Tooltip.prototype.setContent = function () {
1509
+ var $tip = this.tip()
1510
+ var title = this.getTitle()
1511
+
1512
+ $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
1513
+ $tip.removeClass('fade in top bottom left right')
1514
+ }
1515
+
1516
+ Tooltip.prototype.hide = function (callback) {
1517
+ var that = this
1518
+ var $tip = this.tip()
1519
+ var e = $.Event('hide.bs.' + this.type)
1520
+
1521
+ function complete() {
1522
+ if (that.hoverState != 'in') $tip.detach()
1523
+ that.$element
1524
+ .removeAttr('aria-describedby')
1525
+ .trigger('hidden.bs.' + that.type)
1526
+ callback && callback()
1527
+ }
1528
+
1529
+ this.$element.trigger(e)
1530
+
1531
+ if (e.isDefaultPrevented()) return
1532
+
1533
+ $tip.removeClass('in')
1534
+
1535
+ $.support.transition && this.$tip.hasClass('fade') ?
1536
+ $tip
1537
+ .one('bsTransitionEnd', complete)
1538
+ .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
1539
+ complete()
1540
+
1541
+ this.hoverState = null
1542
+
1543
+ return this
1544
+ }
1545
+
1546
+ Tooltip.prototype.fixTitle = function () {
1547
+ var $e = this.$element
1548
+ if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') {
1549
+ $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
1550
+ }
1551
+ }
1552
+
1553
+ Tooltip.prototype.hasContent = function () {
1554
+ return this.getTitle()
1555
+ }
1556
+
1557
+ Tooltip.prototype.getPosition = function ($element) {
1558
+ $element = $element || this.$element
1559
+
1560
+ var el = $element[0]
1561
+ var isBody = el.tagName == 'BODY'
1562
+
1563
+ var elRect = el.getBoundingClientRect()
1564
+ if (elRect.width == null) {
1565
+ // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
1566
+ elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
1567
+ }
1568
+ var elOffset = isBody ? { top: 0, left: 0 } : $element.offset()
1569
+ var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
1570
+ var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
1571
+
1572
+ return $.extend({}, elRect, scroll, outerDims, elOffset)
1573
+ }
1574
+
1575
+ Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
1576
+ return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1577
+ placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1578
+ placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
1579
+ /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
1580
+
1581
+ }
1582
+
1583
+ Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
1584
+ var delta = { top: 0, left: 0 }
1585
+ if (!this.$viewport) return delta
1586
+
1587
+ var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
1588
+ var viewportDimensions = this.getPosition(this.$viewport)
1589
+
1590
+ if (/right|left/.test(placement)) {
1591
+ var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll
1592
+ var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
1593
+ if (topEdgeOffset < viewportDimensions.top) { // top overflow
1594
+ delta.top = viewportDimensions.top - topEdgeOffset
1595
+ } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
1596
+ delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
1597
+ }
1598
+ } else {
1599
+ var leftEdgeOffset = pos.left - viewportPadding
1600
+ var rightEdgeOffset = pos.left + viewportPadding + actualWidth
1601
+ if (leftEdgeOffset < viewportDimensions.left) { // left overflow
1602
+ delta.left = viewportDimensions.left - leftEdgeOffset
1603
+ } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow
1604
+ delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
1605
+ }
1606
+ }
1607
+
1608
+ return delta
1609
+ }
1610
+
1611
+ Tooltip.prototype.getTitle = function () {
1612
+ var title
1613
+ var $e = this.$element
1614
+ var o = this.options
1615
+
1616
+ title = $e.attr('data-original-title')
1617
+ || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
1618
+
1619
+ return title
1620
+ }
1621
+
1622
+ Tooltip.prototype.getUID = function (prefix) {
1623
+ do prefix += ~~(Math.random() * 1000000)
1624
+ while (document.getElementById(prefix))
1625
+ return prefix
1626
+ }
1627
+
1628
+ Tooltip.prototype.tip = function () {
1629
+ return (this.$tip = this.$tip || $(this.options.template))
1630
+ }
1631
+
1632
+ Tooltip.prototype.arrow = function () {
1633
+ return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
1634
+ }
1635
+
1636
+ Tooltip.prototype.enable = function () {
1637
+ this.enabled = true
1638
+ }
1639
+
1640
+ Tooltip.prototype.disable = function () {
1641
+ this.enabled = false
1642
+ }
1643
+
1644
+ Tooltip.prototype.toggleEnabled = function () {
1645
+ this.enabled = !this.enabled
1646
+ }
1647
+
1648
+ Tooltip.prototype.toggle = function (e) {
1649
+ var self = this
1650
+ if (e) {
1651
+ self = $(e.currentTarget).data('bs.' + this.type)
1652
+ if (!self) {
1653
+ self = new this.constructor(e.currentTarget, this.getDelegateOptions())
1654
+ $(e.currentTarget).data('bs.' + this.type, self)
1655
+ }
1656
+ }
1657
+
1658
+ self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
1659
+ }
1660
+
1661
+ Tooltip.prototype.destroy = function () {
1662
+ var that = this
1663
+ clearTimeout(this.timeout)
1664
+ this.hide(function () {
1665
+ that.$element.off('.' + that.type).removeData('bs.' + that.type)
1666
+ })
1667
+ }
1668
+
1669
+
1670
+ // TOOLTIP PLUGIN DEFINITION
1671
+ // =========================
1672
+
1673
+ function Plugin(option) {
1674
+ return this.each(function () {
1675
+ var $this = $(this)
1676
+ var data = $this.data('bs.tooltip')
1677
+ var options = typeof option == 'object' && option
1678
+
1679
+ if (!data && option == 'destroy') return
1680
+ if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
1681
+ if (typeof option == 'string') data[option]()
1682
+ })
1683
+ }
1684
+
1685
+ var old = $.fn.tooltip
1686
+
1687
+ $.fn.tooltip = Plugin
1688
+ $.fn.tooltip.Constructor = Tooltip
1689
+
1690
+
1691
+ // TOOLTIP NO CONFLICT
1692
+ // ===================
1693
+
1694
+ $.fn.tooltip.noConflict = function () {
1695
+ $.fn.tooltip = old
1696
+ return this
1697
+ }
1698
+
1699
+ }(jQuery);
1700
+
1701
+ /* ========================================================================
1702
+ * Bootstrap: popover.js v3.3.2
1703
+ * http://getbootstrap.com/javascript/#popovers
1704
+ * ========================================================================
1705
+ * Copyright 2011-2015 Twitter, Inc.
1706
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1707
+ * ======================================================================== */
1708
+
1709
+
1710
+ +function ($) {
1711
+ 'use strict';
1712
+
1713
+ // POPOVER PUBLIC CLASS DEFINITION
1714
+ // ===============================
1715
+
1716
+ var Popover = function (element, options) {
1717
+ this.init('popover', element, options)
1718
+ }
1719
+
1720
+ if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
1721
+
1722
+ Popover.VERSION = '3.3.2'
1723
+
1724
+ Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
1725
+ placement: 'right',
1726
+ trigger: 'click',
1727
+ content: '',
1728
+ template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
1729
+ })
1730
+
1731
+
1732
+ // NOTE: POPOVER EXTENDS tooltip.js
1733
+ // ================================
1734
+
1735
+ Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
1736
+
1737
+ Popover.prototype.constructor = Popover
1738
+
1739
+ Popover.prototype.getDefaults = function () {
1740
+ return Popover.DEFAULTS
1741
+ }
1742
+
1743
+ Popover.prototype.setContent = function () {
1744
+ var $tip = this.tip()
1745
+ var title = this.getTitle()
1746
+ var content = this.getContent()
1747
+
1748
+ $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
1749
+ $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events
1750
+ this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
1751
+ ](content)
1752
+
1753
+ $tip.removeClass('fade top bottom left right in')
1754
+
1755
+ // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
1756
+ // this manually by checking the contents.
1757
+ if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
1758
+ }
1759
+
1760
+ Popover.prototype.hasContent = function () {
1761
+ return this.getTitle() || this.getContent()
1762
+ }
1763
+
1764
+ Popover.prototype.getContent = function () {
1765
+ var $e = this.$element
1766
+ var o = this.options
1767
+
1768
+ return $e.attr('data-content')
1769
+ || (typeof o.content == 'function' ?
1770
+ o.content.call($e[0]) :
1771
+ o.content)
1772
+ }
1773
+
1774
+ Popover.prototype.arrow = function () {
1775
+ return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
1776
+ }
1777
+
1778
+ Popover.prototype.tip = function () {
1779
+ if (!this.$tip) this.$tip = $(this.options.template)
1780
+ return this.$tip
1781
+ }
1782
+
1783
+
1784
+ // POPOVER PLUGIN DEFINITION
1785
+ // =========================
1786
+
1787
+ function Plugin(option) {
1788
+ return this.each(function () {
1789
+ var $this = $(this)
1790
+ var data = $this.data('bs.popover')
1791
+ var options = typeof option == 'object' && option
1792
+
1793
+ if (!data && option == 'destroy') return
1794
+ if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
1795
+ if (typeof option == 'string') data[option]()
1796
+ })
1797
+ }
1798
+
1799
+ var old = $.fn.popover
1800
+
1801
+ $.fn.popover = Plugin
1802
+ $.fn.popover.Constructor = Popover
1803
+
1804
+
1805
+ // POPOVER NO CONFLICT
1806
+ // ===================
1807
+
1808
+ $.fn.popover.noConflict = function () {
1809
+ $.fn.popover = old
1810
+ return this
1811
+ }
1812
+
1813
+ }(jQuery);
1814
+
1815
+ /* ========================================================================
1816
+ * Bootstrap: scrollspy.js v3.3.2
1817
+ * http://getbootstrap.com/javascript/#scrollspy
1818
+ * ========================================================================
1819
+ * Copyright 2011-2015 Twitter, Inc.
1820
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1821
+ * ======================================================================== */
1822
+
1823
+
1824
+ +function ($) {
1825
+ 'use strict';
1826
+
1827
+ // SCROLLSPY CLASS DEFINITION
1828
+ // ==========================
1829
+
1830
+ function ScrollSpy(element, options) {
1831
+ var process = $.proxy(this.process, this)
1832
+
1833
+ this.$body = $('body')
1834
+ this.$scrollElement = $(element).is('body') ? $(window) : $(element)
1835
+ this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
1836
+ this.selector = (this.options.target || '') + ' .nav li > a'
1837
+ this.offsets = []
1838
+ this.targets = []
1839
+ this.activeTarget = null
1840
+ this.scrollHeight = 0
1841
+
1842
+ this.$scrollElement.on('scroll.bs.scrollspy', process)
1843
+ this.refresh()
1844
+ this.process()
1845
+ }
1846
+
1847
+ ScrollSpy.VERSION = '3.3.2'
1848
+
1849
+ ScrollSpy.DEFAULTS = {
1850
+ offset: 10
1851
+ }
1852
+
1853
+ ScrollSpy.prototype.getScrollHeight = function () {
1854
+ return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
1855
+ }
1856
+
1857
+ ScrollSpy.prototype.refresh = function () {
1858
+ var offsetMethod = 'offset'
1859
+ var offsetBase = 0
1860
+
1861
+ if (!$.isWindow(this.$scrollElement[0])) {
1862
+ offsetMethod = 'position'
1863
+ offsetBase = this.$scrollElement.scrollTop()
1864
+ }
1865
+
1866
+ this.offsets = []
1867
+ this.targets = []
1868
+ this.scrollHeight = this.getScrollHeight()
1869
+
1870
+ var self = this
1871
+
1872
+ this.$body
1873
+ .find(this.selector)
1874
+ .map(function () {
1875
+ var $el = $(this)
1876
+ var href = $el.data('target') || $el.attr('href')
1877
+ var $href = /^#./.test(href) && $(href)
1878
+
1879
+ return ($href
1880
+ && $href.length
1881
+ && $href.is(':visible')
1882
+ && [[$href[offsetMethod]().top + offsetBase, href]]) || null
1883
+ })
1884
+ .sort(function (a, b) { return a[0] - b[0] })
1885
+ .each(function () {
1886
+ self.offsets.push(this[0])
1887
+ self.targets.push(this[1])
1888
+ })
1889
+ }
1890
+
1891
+ ScrollSpy.prototype.process = function () {
1892
+ var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
1893
+ var scrollHeight = this.getScrollHeight()
1894
+ var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()
1895
+ var offsets = this.offsets
1896
+ var targets = this.targets
1897
+ var activeTarget = this.activeTarget
1898
+ var i
1899
+
1900
+ if (this.scrollHeight != scrollHeight) {
1901
+ this.refresh()
1902
+ }
1903
+
1904
+ if (scrollTop >= maxScroll) {
1905
+ return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
1906
+ }
1907
+
1908
+ if (activeTarget && scrollTop < offsets[0]) {
1909
+ this.activeTarget = null
1910
+ return this.clear()
1911
+ }
1912
+
1913
+ for (i = offsets.length; i--;) {
1914
+ activeTarget != targets[i]
1915
+ && scrollTop >= offsets[i]
1916
+ && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
1917
+ && this.activate(targets[i])
1918
+ }
1919
+ }
1920
+
1921
+ ScrollSpy.prototype.activate = function (target) {
1922
+ this.activeTarget = target
1923
+
1924
+ this.clear()
1925
+
1926
+ var selector = this.selector +
1927
+ '[data-target="' + target + '"],' +
1928
+ this.selector + '[href="' + target + '"]'
1929
+
1930
+ var active = $(selector)
1931
+ .parents('li')
1932
+ .addClass('active')
1933
+
1934
+ if (active.parent('.dropdown-menu').length) {
1935
+ active = active
1936
+ .closest('li.dropdown')
1937
+ .addClass('active')
1938
+ }
1939
+
1940
+ active.trigger('activate.bs.scrollspy')
1941
+ }
1942
+
1943
+ ScrollSpy.prototype.clear = function () {
1944
+ $(this.selector)
1945
+ .parentsUntil(this.options.target, '.active')
1946
+ .removeClass('active')
1947
+ }
1948
+
1949
+
1950
+ // SCROLLSPY PLUGIN DEFINITION
1951
+ // ===========================
1952
+
1953
+ function Plugin(option) {
1954
+ return this.each(function () {
1955
+ var $this = $(this)
1956
+ var data = $this.data('bs.scrollspy')
1957
+ var options = typeof option == 'object' && option
1958
+
1959
+ if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
1960
+ if (typeof option == 'string') data[option]()
1961
+ })
1962
+ }
1963
+
1964
+ var old = $.fn.scrollspy
1965
+
1966
+ $.fn.scrollspy = Plugin
1967
+ $.fn.scrollspy.Constructor = ScrollSpy
1968
+
1969
+
1970
+ // SCROLLSPY NO CONFLICT
1971
+ // =====================
1972
+
1973
+ $.fn.scrollspy.noConflict = function () {
1974
+ $.fn.scrollspy = old
1975
+ return this
1976
+ }
1977
+
1978
+
1979
+ // SCROLLSPY DATA-API
1980
+ // ==================
1981
+
1982
+ $(window).on('load.bs.scrollspy.data-api', function () {
1983
+ $('[data-spy="scroll"]').each(function () {
1984
+ var $spy = $(this)
1985
+ Plugin.call($spy, $spy.data())
1986
+ })
1987
+ })
1988
+
1989
+ }(jQuery);
1990
+
1991
+ /* ========================================================================
1992
+ * Bootstrap: tab.js v3.3.2
1993
+ * http://getbootstrap.com/javascript/#tabs
1994
+ * ========================================================================
1995
+ * Copyright 2011-2015 Twitter, Inc.
1996
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1997
+ * ======================================================================== */
1998
+
1999
+
2000
+ +function ($) {
2001
+ 'use strict';
2002
+
2003
+ // TAB CLASS DEFINITION
2004
+ // ====================
2005
+
2006
+ var Tab = function (element) {
2007
+ this.element = $(element)
2008
+ }
2009
+
2010
+ Tab.VERSION = '3.3.2'
2011
+
2012
+ Tab.TRANSITION_DURATION = 150
2013
+
2014
+ Tab.prototype.show = function () {
2015
+ var $this = this.element
2016
+ var $ul = $this.closest('ul:not(.dropdown-menu)')
2017
+ var selector = $this.data('target')
2018
+
2019
+ if (!selector) {
2020
+ selector = $this.attr('href')
2021
+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
2022
+ }
2023
+
2024
+ if ($this.parent('li').hasClass('active')) return
2025
+
2026
+ var $previous = $ul.find('.active:last a')
2027
+ var hideEvent = $.Event('hide.bs.tab', {
2028
+ relatedTarget: $this[0]
2029
+ })
2030
+ var showEvent = $.Event('show.bs.tab', {
2031
+ relatedTarget: $previous[0]
2032
+ })
2033
+
2034
+ $previous.trigger(hideEvent)
2035
+ $this.trigger(showEvent)
2036
+
2037
+ if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
2038
+
2039
+ var $target = $(selector)
2040
+
2041
+ this.activate($this.closest('li'), $ul)
2042
+ this.activate($target, $target.parent(), function () {
2043
+ $previous.trigger({
2044
+ type: 'hidden.bs.tab',
2045
+ relatedTarget: $this[0]
2046
+ })
2047
+ $this.trigger({
2048
+ type: 'shown.bs.tab',
2049
+ relatedTarget: $previous[0]
2050
+ })
2051
+ })
2052
+ }
2053
+
2054
+ Tab.prototype.activate = function (element, container, callback) {
2055
+ var $active = container.find('> .active')
2056
+ var transition = callback
2057
+ && $.support.transition
2058
+ && (($active.length && $active.hasClass('fade')) || !!container.find('> .fade').length)
2059
+
2060
+ function next() {
2061
+ $active
2062
+ .removeClass('active')
2063
+ .find('> .dropdown-menu > .active')
2064
+ .removeClass('active')
2065
+ .end()
2066
+ .find('[data-toggle="tab"]')
2067
+ .attr('aria-expanded', false)
2068
+
2069
+ element
2070
+ .addClass('active')
2071
+ .find('[data-toggle="tab"]')
2072
+ .attr('aria-expanded', true)
2073
+
2074
+ if (transition) {
2075
+ element[0].offsetWidth // reflow for transition
2076
+ element.addClass('in')
2077
+ } else {
2078
+ element.removeClass('fade')
2079
+ }
2080
+
2081
+ if (element.parent('.dropdown-menu')) {
2082
+ element
2083
+ .closest('li.dropdown')
2084
+ .addClass('active')
2085
+ .end()
2086
+ .find('[data-toggle="tab"]')
2087
+ .attr('aria-expanded', true)
2088
+ }
2089
+
2090
+ callback && callback()
2091
+ }
2092
+
2093
+ $active.length && transition ?
2094
+ $active
2095
+ .one('bsTransitionEnd', next)
2096
+ .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
2097
+ next()
2098
+
2099
+ $active.removeClass('in')
2100
+ }
2101
+
2102
+
2103
+ // TAB PLUGIN DEFINITION
2104
+ // =====================
2105
+
2106
+ function Plugin(option) {
2107
+ return this.each(function () {
2108
+ var $this = $(this)
2109
+ var data = $this.data('bs.tab')
2110
+
2111
+ if (!data) $this.data('bs.tab', (data = new Tab(this)))
2112
+ if (typeof option == 'string') data[option]()
2113
+ })
2114
+ }
2115
+
2116
+ var old = $.fn.tab
2117
+
2118
+ $.fn.tab = Plugin
2119
+ $.fn.tab.Constructor = Tab
2120
+
2121
+
2122
+ // TAB NO CONFLICT
2123
+ // ===============
2124
+
2125
+ $.fn.tab.noConflict = function () {
2126
+ $.fn.tab = old
2127
+ return this
2128
+ }
2129
+
2130
+
2131
+ // TAB DATA-API
2132
+ // ============
2133
+
2134
+ var clickHandler = function (e) {
2135
+ e.preventDefault()
2136
+ Plugin.call($(this), 'show')
2137
+ }
2138
+
2139
+ $(document)
2140
+ .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
2141
+ .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
2142
+
2143
+ }(jQuery);
2144
+
2145
+ /* ========================================================================
2146
+ * Bootstrap: affix.js v3.3.2
2147
+ * http://getbootstrap.com/javascript/#affix
2148
+ * ========================================================================
2149
+ * Copyright 2011-2015 Twitter, Inc.
2150
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2151
+ * ======================================================================== */
2152
+
2153
+
2154
+ +function ($) {
2155
+ 'use strict';
2156
+
2157
+ // AFFIX CLASS DEFINITION
2158
+ // ======================
2159
+
2160
+ var Affix = function (element, options) {
2161
+ this.options = $.extend({}, Affix.DEFAULTS, options)
2162
+
2163
+ this.$target = $(this.options.target)
2164
+ .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
2165
+ .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
2166
+
2167
+ this.$element = $(element)
2168
+ this.affixed =
2169
+ this.unpin =
2170
+ this.pinnedOffset = null
2171
+
2172
+ this.checkPosition()
2173
+ }
2174
+
2175
+ Affix.VERSION = '3.3.2'
2176
+
2177
+ Affix.RESET = 'affix affix-top affix-bottom'
2178
+
2179
+ Affix.DEFAULTS = {
2180
+ offset: 0,
2181
+ target: window
2182
+ }
2183
+
2184
+ Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
2185
+ var scrollTop = this.$target.scrollTop()
2186
+ var position = this.$element.offset()
2187
+ var targetHeight = this.$target.height()
2188
+
2189
+ if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
2190
+
2191
+ if (this.affixed == 'bottom') {
2192
+ if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
2193
+ return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
2194
+ }
2195
+
2196
+ var initializing = this.affixed == null
2197
+ var colliderTop = initializing ? scrollTop : position.top
2198
+ var colliderHeight = initializing ? targetHeight : height
2199
+
2200
+ if (offsetTop != null && scrollTop <= offsetTop) return 'top'
2201
+ if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
2202
+
2203
+ return false
2204
+ }
2205
+
2206
+ Affix.prototype.getPinnedOffset = function () {
2207
+ if (this.pinnedOffset) return this.pinnedOffset
2208
+ this.$element.removeClass(Affix.RESET).addClass('affix')
2209
+ var scrollTop = this.$target.scrollTop()
2210
+ var position = this.$element.offset()
2211
+ return (this.pinnedOffset = position.top - scrollTop)
2212
+ }
2213
+
2214
+ Affix.prototype.checkPositionWithEventLoop = function () {
2215
+ setTimeout($.proxy(this.checkPosition, this), 1)
2216
+ }
2217
+
2218
+ Affix.prototype.checkPosition = function () {
2219
+ if (!this.$element.is(':visible')) return
2220
+
2221
+ var height = this.$element.height()
2222
+ var offset = this.options.offset
2223
+ var offsetTop = offset.top
2224
+ var offsetBottom = offset.bottom
2225
+ var scrollHeight = $('body').height()
2226
+
2227
+ if (typeof offset != 'object') offsetBottom = offsetTop = offset
2228
+ if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
2229
+ if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
2230
+
2231
+ var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
2232
+
2233
+ if (this.affixed != affix) {
2234
+ if (this.unpin != null) this.$element.css('top', '')
2235
+
2236
+ var affixType = 'affix' + (affix ? '-' + affix : '')
2237
+ var e = $.Event(affixType + '.bs.affix')
2238
+
2239
+ this.$element.trigger(e)
2240
+
2241
+ if (e.isDefaultPrevented()) return
2242
+
2243
+ this.affixed = affix
2244
+ this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
2245
+
2246
+ this.$element
2247
+ .removeClass(Affix.RESET)
2248
+ .addClass(affixType)
2249
+ .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
2250
+ }
2251
+
2252
+ if (affix == 'bottom') {
2253
+ this.$element.offset({
2254
+ top: scrollHeight - height - offsetBottom
2255
+ })
2256
+ }
2257
+ }
2258
+
2259
+
2260
+ // AFFIX PLUGIN DEFINITION
2261
+ // =======================
2262
+
2263
+ function Plugin(option) {
2264
+ return this.each(function () {
2265
+ var $this = $(this)
2266
+ var data = $this.data('bs.affix')
2267
+ var options = typeof option == 'object' && option
2268
+
2269
+ if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
2270
+ if (typeof option == 'string') data[option]()
2271
+ })
2272
+ }
2273
+
2274
+ var old = $.fn.affix
2275
+
2276
+ $.fn.affix = Plugin
2277
+ $.fn.affix.Constructor = Affix
2278
+
2279
+
2280
+ // AFFIX NO CONFLICT
2281
+ // =================
2282
+
2283
+ $.fn.affix.noConflict = function () {
2284
+ $.fn.affix = old
2285
+ return this
2286
+ }
2287
+
2288
+
2289
+ // AFFIX DATA-API
2290
+ // ==============
2291
+
2292
+ $(window).on('load', function () {
2293
+ $('[data-spy="affix"]').each(function () {
2294
+ var $spy = $(this)
2295
+ var data = $spy.data()
2296
+
2297
+ data.offset = data.offset || {}
2298
+
2299
+ if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
2300
+ if (data.offsetTop != null) data.offset.top = data.offsetTop
2301
+
2302
+ Plugin.call($spy, data)
2303
+ })
2304
+ })
2305
+
2306
+ }(jQuery);
static/js/bootstrap.min.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Bootstrap v3.3.2 (http://getbootstrap.com)
3
+ * Copyright 2011-2015 Twitter, Inc.
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
+ */
6
+ if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.2",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.2",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.2",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a(this.options.trigger).filter('[href="#'+b.id+'"], [data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.2",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0,trigger:'[data-toggle="collapse"]'},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":a.extend({},e.data(),{trigger:this});c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=c(d),f={relatedTarget:this};e.hasClass("open")&&(e.trigger(b=a.Event("hide.bs.dropdown",f)),b.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f)))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.2",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(b){if(/(38|40|27|32)/.test(b.which)&&!/input|textarea/i.test(b.target.tagName)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g&&27!=b.which||g&&27==b.which)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.divider):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(b.target);38==b.which&&j>0&&j--,40==b.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="menu"]',g.prototype.keydown).on("keydown.bs.dropdown.data-api",'[role="listbox"]',g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$backdrop=this.isShown=null,this.scrollbarWidth=0,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.2",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.options.backdrop&&d.adjustBackdrop(),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in").attr("aria-hidden",!1),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$element.find(".modal-dialog").one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a('<div class="modal-backdrop '+e+'" />').prependTo(this.$element).on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.options.backdrop&&this.adjustBackdrop(),this.adjustDialog()},c.prototype.adjustBackdrop=function(){this.$backdrop.css("height",0).css("height",this.$element[0].scrollHeight)},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){this.bodyIsOverflowing=document.body.scrollHeight>document.documentElement.clientHeight,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.3.2",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c&&c.$tip&&c.$tip.is(":visible")?void(c.hoverState="in"):(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.options.container?a(this.options.container):this.$element.parent(),p=this.getPosition(o);h="bottom"==h&&k.bottom+m>p.bottom?"top":"top"==h&&k.top-m<p.top?"bottom":"right"==h&&k.right+l>p.width?"left":"left"==h&&k.left-l<p.left?"right":h,f.removeClass(n).addClass(h)}var q=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(q,h);var r=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",r).emulateTransitionEnd(c.TRANSITION_DURATION):r()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=this.tip(),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type)})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.2",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.2",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b="offset",c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.2",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()
7
+ }var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.2",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=a("body").height();"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
static/js/ini.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ $(document).ready(function(){
2
+ $(".datepicker").datepicker({
3
+ dateFormat: 'yy-mm-dd'
4
+ });
5
+ })
6
+
static/js/jquery-ui/images/ui-bg_diagonals-thick_18_b81900_40x40.png ADDED
static/js/jquery-ui/images/ui-bg_diagonals-thick_20_666666_40x40.png ADDED
static/js/jquery-ui/images/ui-bg_flat_10_000000_40x100.png ADDED
static/js/jquery-ui/images/ui-bg_glass_100_f6f6f6_1x400.png ADDED
static/js/jquery-ui/images/ui-bg_glass_100_fdf5ce_1x400.png ADDED
static/js/jquery-ui/images/ui-bg_glass_65_ffffff_1x400.png ADDED
static/js/jquery-ui/images/ui-bg_gloss-wave_35_f6a828_500x100.png ADDED
static/js/jquery-ui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png ADDED
static/js/jquery-ui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png ADDED
static/js/jquery-ui/images/ui-icons_222222_256x240.png ADDED
static/js/jquery-ui/images/ui-icons_228ef1_256x240.png ADDED
static/js/jquery-ui/images/ui-icons_ef8c08_256x240.png ADDED
static/js/jquery-ui/images/ui-icons_ffd27a_256x240.png ADDED
static/js/jquery-ui/images/ui-icons_ffffff_256x240.png ADDED
static/js/jquery-ui/index.html ADDED
@@ -0,0 +1,513 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="us">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>jQuery UI Example Page</title>
6
+ <link href="jquery-ui.css" rel="stylesheet">
7
+ <style>
8
+ body{
9
+ font: 62.5% "Trebuchet MS", sans-serif;
10
+ margin: 50px;
11
+ }
12
+ .demoHeaders {
13
+ margin-top: 2em;
14
+ }
15
+ #dialog-link {
16
+ padding: .4em 1em .4em 20px;
17
+ text-decoration: none;
18
+ position: relative;
19
+ }
20
+ #dialog-link span.ui-icon {
21
+ margin: 0 5px 0 0;
22
+ position: absolute;
23
+ left: .2em;
24
+ top: 50%;
25
+ margin-top: -8px;
26
+ }
27
+ #icons {
28
+ margin: 0;
29
+ padding: 0;
30
+ }
31
+ #icons li {
32
+ margin: 2px;
33
+ position: relative;
34
+ padding: 4px 0;
35
+ cursor: pointer;
36
+ float: left;
37
+ list-style: none;
38
+ }
39
+ #icons span.ui-icon {
40
+ float: left;
41
+ margin: 0 4px;
42
+ }
43
+ .fakewindowcontain .ui-widget-overlay {
44
+ position: absolute;
45
+ }
46
+ select {
47
+ width: 200px;
48
+ }
49
+ </style>
50
+ </head>
51
+ <body>
52
+
53
+ <h1>Welcome to jQuery UI!</h1>
54
+
55
+ <div class="ui-widget">
56
+ <p>This page demonstrates the widgets and theme you selected in Download Builder. Please make sure you are using them with a compatible jQuery version.</p>
57
+ </div>
58
+
59
+ <h1>YOUR COMPONENTS:</h1>
60
+
61
+
62
+ <!-- Accordion -->
63
+ <h2 class="demoHeaders">Accordion</h2>
64
+ <div id="accordion">
65
+ <h3>First</h3>
66
+ <div>Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.</div>
67
+ <h3>Second</h3>
68
+ <div>Phasellus mattis tincidunt nibh.</div>
69
+ <h3>Third</h3>
70
+ <div>Nam dui erat, auctor a, dignissim quis.</div>
71
+ </div>
72
+
73
+
74
+
75
+ <!-- Autocomplete -->
76
+ <h2 class="demoHeaders">Autocomplete</h2>
77
+ <div>
78
+ <input id="autocomplete" title="type &quot;a&quot;">
79
+ </div>
80
+
81
+
82
+
83
+ <!-- Button -->
84
+ <h2 class="demoHeaders">Button</h2>
85
+ <button id="button">A button element</button>
86
+ <form style="margin-top: 1em;">
87
+ <div id="radioset">
88
+ <input type="radio" id="radio1" name="radio"><label for="radio1">Choice 1</label>
89
+ <input type="radio" id="radio2" name="radio" checked="checked"><label for="radio2">Choice 2</label>
90
+ <input type="radio" id="radio3" name="radio"><label for="radio3">Choice 3</label>
91
+ </div>
92
+ </form>
93
+
94
+
95
+
96
+ <!-- Tabs -->
97
+ <h2 class="demoHeaders">Tabs</h2>
98
+ <div id="tabs">
99
+ <ul>
100
+ <li><a href="#tabs-1">First</a></li>
101
+ <li><a href="#tabs-2">Second</a></li>
102
+ <li><a href="#tabs-3">Third</a></li>
103
+ </ul>
104
+ <div id="tabs-1">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</div>
105
+ <div id="tabs-2">Phasellus mattis tincidunt nibh. Cras orci urna, blandit id, pretium vel, aliquet ornare, felis. Maecenas scelerisque sem non nisl. Fusce sed lorem in enim dictum bibendum.</div>
106
+ <div id="tabs-3">Nam dui erat, auctor a, dignissim quis, sollicitudin eu, felis. Pellentesque nisi urna, interdum eget, sagittis et, consequat vestibulum, lacus. Mauris porttitor ullamcorper augue.</div>
107
+ </div>
108
+
109
+
110
+
111
+ <!-- Dialog NOTE: Dialog is not generated by UI in this demo so it can be visually styled in themeroller-->
112
+ <h2 class="demoHeaders">Dialog</h2>
113
+ <p><a href="#" id="dialog-link" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-newwin"></span>Open Dialog</a></p>
114
+
115
+ <h2 class="demoHeaders">Overlay and Shadow Classes <em>(not currently used in UI widgets)</em></h2>
116
+ <div style="position: relative; width: 96%; height: 200px; padding:1% 2%; overflow:hidden;" class="fakewindowcontain">
117
+ <p>Lorem ipsum dolor sit amet, Nulla nec tortor. Donec id elit quis purus consectetur consequat. </p><p>Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. Aliquam ante. Suspendisse scelerisque dui nec velit. Duis augue augue, gravida euismod, vulputate ac, facilisis id, sem. Morbi in orci. </p><p>Nulla purus lacus, pulvinar vel, malesuada ac, mattis nec, quam. Nam molestie scelerisque quam. Nullam feugiat cursus lacus.orem ipsum dolor sit amet, consectetur adipiscing elit. Donec libero risus, commodo vitae, pharetra mollis, posuere eu, pede. Nulla nec tortor. Donec id elit quis purus consectetur consequat. </p><p>Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. Aliquam ante. Suspendisse scelerisque dui nec velit. Duis augue augue, gravida euismod, vulputate ac, facilisis id, sem. Morbi in orci. Nulla purus lacus, pulvinar vel, malesuada ac, mattis nec, quam. Nam molestie scelerisque quam. </p><p>Nullam feugiat cursus lacus.orem ipsum dolor sit amet, consectetur adipiscing elit. Donec libero risus, commodo vitae, pharetra mollis, posuere eu, pede. Nulla nec tortor. Donec id elit quis purus consectetur consequat. Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. Aliquam ante. </p><p>Suspendisse scelerisque dui nec velit. Duis augue augue, gravida euismod, vulputate ac, facilisis id, sem. Morbi in orci. Nulla purus lacus, pulvinar vel, malesuada ac, mattis nec, quam. Nam molestie scelerisque quam. Nullam feugiat cursus lacus.orem ipsum dolor sit amet, consectetur adipiscing elit. Donec libero risus, commodo vitae, pharetra mollis, posuere eu, pede. Nulla nec tortor. Donec id elit quis purus consectetur consequat. Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. </p>
118
+
119
+ <!-- ui-dialog -->
120
+ <div class="ui-overlay"><div class="ui-widget-overlay"></div><div class="ui-widget-shadow ui-corner-all" style="width: 302px; height: 152px; position: absolute; left: 50px; top: 30px;"></div></div>
121
+ <div style="position: absolute; width: 280px; height: 130px;left: 50px; top: 30px; padding: 10px;" class="ui-widget ui-widget-content ui-corner-all">
122
+ <div class="ui-dialog-content ui-widget-content" style="background: none; border: 0;">
123
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
124
+ </div>
125
+ </div>
126
+
127
+ </div>
128
+
129
+ <!-- ui-dialog -->
130
+ <div id="dialog" title="Dialog Title">
131
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
132
+ </div>
133
+
134
+
135
+
136
+ <h2 class="demoHeaders">Framework Icons (content color preview)</h2>
137
+ <ul id="icons" class="ui-widget ui-helper-clearfix">
138
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-carat-1-n"><span class="ui-icon ui-icon-carat-1-n"></span></li>
139
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-carat-1-ne"><span class="ui-icon ui-icon-carat-1-ne"></span></li>
140
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-carat-1-e"><span class="ui-icon ui-icon-carat-1-e"></span></li>
141
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-carat-1-se"><span class="ui-icon ui-icon-carat-1-se"></span></li>
142
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-carat-1-s"><span class="ui-icon ui-icon-carat-1-s"></span></li>
143
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-carat-1-sw"><span class="ui-icon ui-icon-carat-1-sw"></span></li>
144
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-carat-1-w"><span class="ui-icon ui-icon-carat-1-w"></span></li>
145
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-carat-1-nw"><span class="ui-icon ui-icon-carat-1-nw"></span></li>
146
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-carat-2-n-s"><span class="ui-icon ui-icon-carat-2-n-s"></span></li>
147
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-carat-2-e-w"><span class="ui-icon ui-icon-carat-2-e-w"></span></li>
148
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-n"><span class="ui-icon ui-icon-triangle-1-n"></span></li>
149
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-ne"><span class="ui-icon ui-icon-triangle-1-ne"></span></li>
150
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-e"><span class="ui-icon ui-icon-triangle-1-e"></span></li>
151
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-se"><span class="ui-icon ui-icon-triangle-1-se"></span></li>
152
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-s"><span class="ui-icon ui-icon-triangle-1-s"></span></li>
153
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-sw"><span class="ui-icon ui-icon-triangle-1-sw"></span></li>
154
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-w"><span class="ui-icon ui-icon-triangle-1-w"></span></li>
155
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-1-nw"><span class="ui-icon ui-icon-triangle-1-nw"></span></li>
156
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-2-n-s"><span class="ui-icon ui-icon-triangle-2-n-s"></span></li>
157
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-triangle-2-e-w"><span class="ui-icon ui-icon-triangle-2-e-w"></span></li>
158
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-n"><span class="ui-icon ui-icon-arrow-1-n"></span></li>
159
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-ne"><span class="ui-icon ui-icon-arrow-1-ne"></span></li>
160
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-e"><span class="ui-icon ui-icon-arrow-1-e"></span></li>
161
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-se"><span class="ui-icon ui-icon-arrow-1-se"></span></li>
162
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-s"><span class="ui-icon ui-icon-arrow-1-s"></span></li>
163
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-sw"><span class="ui-icon ui-icon-arrow-1-sw"></span></li>
164
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-w"><span class="ui-icon ui-icon-arrow-1-w"></span></li>
165
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-1-nw"><span class="ui-icon ui-icon-arrow-1-nw"></span></li>
166
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-2-n-s"><span class="ui-icon ui-icon-arrow-2-n-s"></span></li>
167
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-2-ne-sw"><span class="ui-icon ui-icon-arrow-2-ne-sw"></span></li>
168
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-2-e-w"><span class="ui-icon ui-icon-arrow-2-e-w"></span></li>
169
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-2-se-nw"><span class="ui-icon ui-icon-arrow-2-se-nw"></span></li>
170
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowstop-1-n"><span class="ui-icon ui-icon-arrowstop-1-n"></span></li>
171
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowstop-1-e"><span class="ui-icon ui-icon-arrowstop-1-e"></span></li>
172
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowstop-1-s"><span class="ui-icon ui-icon-arrowstop-1-s"></span></li>
173
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowstop-1-w"><span class="ui-icon ui-icon-arrowstop-1-w"></span></li>
174
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-n"><span class="ui-icon ui-icon-arrowthick-1-n"></span></li>
175
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-ne"><span class="ui-icon ui-icon-arrowthick-1-ne"></span></li>
176
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-e"><span class="ui-icon ui-icon-arrowthick-1-e"></span></li>
177
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-se"><span class="ui-icon ui-icon-arrowthick-1-se"></span></li>
178
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-s"><span class="ui-icon ui-icon-arrowthick-1-s"></span></li>
179
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-sw"><span class="ui-icon ui-icon-arrowthick-1-sw"></span></li>
180
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-w"><span class="ui-icon ui-icon-arrowthick-1-w"></span></li>
181
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-1-nw"><span class="ui-icon ui-icon-arrowthick-1-nw"></span></li>
182
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-2-n-s"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span></li>
183
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-2-ne-sw"><span class="ui-icon ui-icon-arrowthick-2-ne-sw"></span></li>
184
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-2-e-w"><span class="ui-icon ui-icon-arrowthick-2-e-w"></span></li>
185
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthick-2-se-nw"><span class="ui-icon ui-icon-arrowthick-2-se-nw"></span></li>
186
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthickstop-1-n"><span class="ui-icon ui-icon-arrowthickstop-1-n"></span></li>
187
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthickstop-1-e"><span class="ui-icon ui-icon-arrowthickstop-1-e"></span></li>
188
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthickstop-1-s"><span class="ui-icon ui-icon-arrowthickstop-1-s"></span></li>
189
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowthickstop-1-w"><span class="ui-icon ui-icon-arrowthickstop-1-w"></span></li>
190
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturnthick-1-w"><span class="ui-icon ui-icon-arrowreturnthick-1-w"></span></li>
191
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturnthick-1-n"><span class="ui-icon ui-icon-arrowreturnthick-1-n"></span></li>
192
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturnthick-1-e"><span class="ui-icon ui-icon-arrowreturnthick-1-e"></span></li>
193
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturnthick-1-s"><span class="ui-icon ui-icon-arrowreturnthick-1-s"></span></li>
194
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturn-1-w"><span class="ui-icon ui-icon-arrowreturn-1-w"></span></li>
195
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturn-1-n"><span class="ui-icon ui-icon-arrowreturn-1-n"></span></li>
196
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturn-1-e"><span class="ui-icon ui-icon-arrowreturn-1-e"></span></li>
197
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowreturn-1-s"><span class="ui-icon ui-icon-arrowreturn-1-s"></span></li>
198
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowrefresh-1-w"><span class="ui-icon ui-icon-arrowrefresh-1-w"></span></li>
199
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowrefresh-1-n"><span class="ui-icon ui-icon-arrowrefresh-1-n"></span></li>
200
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowrefresh-1-e"><span class="ui-icon ui-icon-arrowrefresh-1-e"></span></li>
201
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrowrefresh-1-s"><span class="ui-icon ui-icon-arrowrefresh-1-s"></span></li>
202
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-4"><span class="ui-icon ui-icon-arrow-4"></span></li>
203
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-arrow-4-diag"><span class="ui-icon ui-icon-arrow-4-diag"></span></li>
204
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-extlink"><span class="ui-icon ui-icon-extlink"></span></li>
205
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-newwin"><span class="ui-icon ui-icon-newwin"></span></li>
206
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-refresh"><span class="ui-icon ui-icon-refresh"></span></li>
207
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-shuffle"><span class="ui-icon ui-icon-shuffle"></span></li>
208
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-transfer-e-w"><span class="ui-icon ui-icon-transfer-e-w"></span></li>
209
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-transferthick-e-w"><span class="ui-icon ui-icon-transferthick-e-w"></span></li>
210
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-folder-collapsed"><span class="ui-icon ui-icon-folder-collapsed"></span></li>
211
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-folder-open"><span class="ui-icon ui-icon-folder-open"></span></li>
212
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-document"><span class="ui-icon ui-icon-document"></span></li>
213
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-document-b"><span class="ui-icon ui-icon-document-b"></span></li>
214
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-note"><span class="ui-icon ui-icon-note"></span></li>
215
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-mail-closed"><span class="ui-icon ui-icon-mail-closed"></span></li>
216
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-mail-open"><span class="ui-icon ui-icon-mail-open"></span></li>
217
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-suitcase"><span class="ui-icon ui-icon-suitcase"></span></li>
218
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-comment"><span class="ui-icon ui-icon-comment"></span></li>
219
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-person"><span class="ui-icon ui-icon-person"></span></li>
220
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-print"><span class="ui-icon ui-icon-print"></span></li>
221
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-trash"><span class="ui-icon ui-icon-trash"></span></li>
222
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-locked"><span class="ui-icon ui-icon-locked"></span></li>
223
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-unlocked"><span class="ui-icon ui-icon-unlocked"></span></li>
224
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-bookmark"><span class="ui-icon ui-icon-bookmark"></span></li>
225
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-tag"><span class="ui-icon ui-icon-tag"></span></li>
226
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-home"><span class="ui-icon ui-icon-home"></span></li>
227
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-flag"><span class="ui-icon ui-icon-flag"></span></li>
228
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-calculator"><span class="ui-icon ui-icon-calculator"></span></li>
229
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-cart"><span class="ui-icon ui-icon-cart"></span></li>
230
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-pencil"><span class="ui-icon ui-icon-pencil"></span></li>
231
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-clock"><span class="ui-icon ui-icon-clock"></span></li>
232
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-disk"><span class="ui-icon ui-icon-disk"></span></li>
233
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-calendar"><span class="ui-icon ui-icon-calendar"></span></li>
234
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-zoomin"><span class="ui-icon ui-icon-zoomin"></span></li>
235
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-zoomout"><span class="ui-icon ui-icon-zoomout"></span></li>
236
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-search"><span class="ui-icon ui-icon-search"></span></li>
237
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-wrench"><span class="ui-icon ui-icon-wrench"></span></li>
238
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-gear"><span class="ui-icon ui-icon-gear"></span></li>
239
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-heart"><span class="ui-icon ui-icon-heart"></span></li>
240
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-star"><span class="ui-icon ui-icon-star"></span></li>
241
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-link"><span class="ui-icon ui-icon-link"></span></li>
242
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-cancel"><span class="ui-icon ui-icon-cancel"></span></li>
243
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-plus"><span class="ui-icon ui-icon-plus"></span></li>
244
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-plusthick"><span class="ui-icon ui-icon-plusthick"></span></li>
245
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-minus"><span class="ui-icon ui-icon-minus"></span></li>
246
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-minusthick"><span class="ui-icon ui-icon-minusthick"></span></li>
247
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-close"><span class="ui-icon ui-icon-close"></span></li>
248
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-closethick"><span class="ui-icon ui-icon-closethick"></span></li>
249
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-key"><span class="ui-icon ui-icon-key"></span></li>
250
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-lightbulb"><span class="ui-icon ui-icon-lightbulb"></span></li>
251
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-scissors"><span class="ui-icon ui-icon-scissors"></span></li>
252
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-clipboard"><span class="ui-icon ui-icon-clipboard"></span></li>
253
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-copy"><span class="ui-icon ui-icon-copy"></span></li>
254
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-contact"><span class="ui-icon ui-icon-contact"></span></li>
255
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-image"><span class="ui-icon ui-icon-image"></span></li>
256
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-video"><span class="ui-icon ui-icon-video"></span></li>
257
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-script"><span class="ui-icon ui-icon-script"></span></li>
258
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-alert"><span class="ui-icon ui-icon-alert"></span></li>
259
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-info"><span class="ui-icon ui-icon-info"></span></li>
260
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-notice"><span class="ui-icon ui-icon-notice"></span></li>
261
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-help"><span class="ui-icon ui-icon-help"></span></li>
262
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-check"><span class="ui-icon ui-icon-check"></span></li>
263
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-bullet"><span class="ui-icon ui-icon-bullet"></span></li>
264
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-radio-off"><span class="ui-icon ui-icon-radio-off"></span></li>
265
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-radio-on"><span class="ui-icon ui-icon-radio-on"></span></li>
266
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-pin-w"><span class="ui-icon ui-icon-pin-w"></span></li>
267
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-pin-s"><span class="ui-icon ui-icon-pin-s"></span></li>
268
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-play"><span class="ui-icon ui-icon-play"></span></li>
269
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-pause"><span class="ui-icon ui-icon-pause"></span></li>
270
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-seek-next"><span class="ui-icon ui-icon-seek-next"></span></li>
271
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-seek-prev"><span class="ui-icon ui-icon-seek-prev"></span></li>
272
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-seek-end"><span class="ui-icon ui-icon-seek-end"></span></li>
273
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-seek-first"><span class="ui-icon ui-icon-seek-first"></span></li>
274
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-stop"><span class="ui-icon ui-icon-stop"></span></li>
275
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-eject"><span class="ui-icon ui-icon-eject"></span></li>
276
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-volume-off"><span class="ui-icon ui-icon-volume-off"></span></li>
277
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-volume-on"><span class="ui-icon ui-icon-volume-on"></span></li>
278
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-power"><span class="ui-icon ui-icon-power"></span></li>
279
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-signal-diag"><span class="ui-icon ui-icon-signal-diag"></span></li>
280
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-signal"><span class="ui-icon ui-icon-signal"></span></li>
281
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-battery-0"><span class="ui-icon ui-icon-battery-0"></span></li>
282
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-battery-1"><span class="ui-icon ui-icon-battery-1"></span></li>
283
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-battery-2"><span class="ui-icon ui-icon-battery-2"></span></li>
284
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-battery-3"><span class="ui-icon ui-icon-battery-3"></span></li>
285
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-plus"><span class="ui-icon ui-icon-circle-plus"></span></li>
286
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-minus"><span class="ui-icon ui-icon-circle-minus"></span></li>
287
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-close"><span class="ui-icon ui-icon-circle-close"></span></li>
288
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-triangle-e"><span class="ui-icon ui-icon-circle-triangle-e"></span></li>
289
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-triangle-s"><span class="ui-icon ui-icon-circle-triangle-s"></span></li>
290
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-triangle-w"><span class="ui-icon ui-icon-circle-triangle-w"></span></li>
291
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-triangle-n"><span class="ui-icon ui-icon-circle-triangle-n"></span></li>
292
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-arrow-e"><span class="ui-icon ui-icon-circle-arrow-e"></span></li>
293
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-arrow-s"><span class="ui-icon ui-icon-circle-arrow-s"></span></li>
294
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-arrow-w"><span class="ui-icon ui-icon-circle-arrow-w"></span></li>
295
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-arrow-n"><span class="ui-icon ui-icon-circle-arrow-n"></span></li>
296
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-zoomin"><span class="ui-icon ui-icon-circle-zoomin"></span></li>
297
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-zoomout"><span class="ui-icon ui-icon-circle-zoomout"></span></li>
298
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circle-check"><span class="ui-icon ui-icon-circle-check"></span></li>
299
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circlesmall-plus"><span class="ui-icon ui-icon-circlesmall-plus"></span></li>
300
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circlesmall-minus"><span class="ui-icon ui-icon-circlesmall-minus"></span></li>
301
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-circlesmall-close"><span class="ui-icon ui-icon-circlesmall-close"></span></li>
302
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-squaresmall-plus"><span class="ui-icon ui-icon-squaresmall-plus"></span></li>
303
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-squaresmall-minus"><span class="ui-icon ui-icon-squaresmall-minus"></span></li>
304
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-squaresmall-close"><span class="ui-icon ui-icon-squaresmall-close"></span></li>
305
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-grip-dotted-vertical"><span class="ui-icon ui-icon-grip-dotted-vertical"></span></li>
306
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-grip-dotted-horizontal"><span class="ui-icon ui-icon-grip-dotted-horizontal"></span></li>
307
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-grip-solid-vertical"><span class="ui-icon ui-icon-grip-solid-vertical"></span></li>
308
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-grip-solid-horizontal"><span class="ui-icon ui-icon-grip-solid-horizontal"></span></li>
309
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-gripsmall-diagonal-se"><span class="ui-icon ui-icon-gripsmall-diagonal-se"></span></li>
310
+ <li class="ui-state-default ui-corner-all" title=".ui-icon-grip-diagonal-se"><span class="ui-icon ui-icon-grip-diagonal-se"></span></li>
311
+ </ul>
312
+
313
+
314
+ <!-- Slider -->
315
+ <h2 class="demoHeaders">Slider</h2>
316
+ <div id="slider"></div>
317
+
318
+
319
+
320
+ <!-- Datepicker -->
321
+ <h2 class="demoHeaders">Datepicker</h2>
322
+ <div id="datepicker"></div>
323
+
324
+
325
+
326
+ <!-- Progressbar -->
327
+ <h2 class="demoHeaders">Progressbar</h2>
328
+ <div id="progressbar"></div>
329
+
330
+
331
+
332
+ <!-- Progressbar -->
333
+ <h2 class="demoHeaders">Selectmenu</h2>
334
+ <select id="selectmenu">
335
+ <option>Slower</option>
336
+ <option>Slow</option>
337
+ <option selected="selected">Medium</option>
338
+ <option>Fast</option>
339
+ <option>Faster</option>
340
+ </select>
341
+
342
+
343
+
344
+ <!-- Spinner -->
345
+ <h2 class="demoHeaders">Spinner</h2>
346
+ <input id="spinner">
347
+
348
+
349
+
350
+ <!-- Menu -->
351
+ <h2 class="demoHeaders">Menu</h2>
352
+ <ul style="width:100px;" id="menu">
353
+ <li>Item 1</li>
354
+ <li>Item 2</li>
355
+ <li>Item 3
356
+ <ul>
357
+ <li>Item 3-1</li>
358
+ <li>Item 3-2</li>
359
+ <li>Item 3-3</li>
360
+ <li>Item 3-4</li>
361
+ <li>Item 3-5</li>
362
+ </ul>
363
+ </li>
364
+ <li>Item 4</li>
365
+ <li>Item 5</li>
366
+ </ul>
367
+
368
+
369
+
370
+ <!-- Tooltip -->
371
+ <h2 class="demoHeaders">Tooltip</h2>
372
+ <p id="tooltip">
373
+ <a href="#" title="That&apos;s what this widget is">Tooltips</a> can be attached to any element. When you hover
374
+ the element with your mouse, the title attribute is displayed in a little box next to the element, just like a native tooltip.
375
+ </p>
376
+
377
+
378
+ <!-- Highlight / Error -->
379
+ <h2 class="demoHeaders">Highlight / Error</h2>
380
+ <div class="ui-widget">
381
+ <div class="ui-state-highlight ui-corner-all" style="margin-top: 20px; padding: 0 .7em;">
382
+ <p><span class="ui-icon ui-icon-info" style="float: left; margin-right: .3em;"></span>
383
+ <strong>Hey!</strong> Sample ui-state-highlight style.</p>
384
+ </div>
385
+ </div>
386
+ <br>
387
+ <div class="ui-widget">
388
+ <div class="ui-state-error ui-corner-all" style="padding: 0 .7em;">
389
+ <p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>
390
+ <strong>Alert:</strong> Sample ui-state-error style.</p>
391
+ </div>
392
+ </div>
393
+
394
+ <script src="external/jquery/jquery.js"></script>
395
+ <script src="jquery-ui.js"></script>
396
+ <script>
397
+
398
+ $( "#accordion" ).accordion();
399
+
400
+
401
+
402
+ var availableTags = [
403
+ "ActionScript",
404
+ "AppleScript",
405
+ "Asp",
406
+ "BASIC",
407
+ "C",
408
+ "C++",
409
+ "Clojure",
410
+ "COBOL",
411
+ "ColdFusion",
412
+ "Erlang",
413
+ "Fortran",
414
+ "Groovy",
415
+ "Haskell",
416
+ "Java",
417
+ "JavaScript",
418
+ "Lisp",
419
+ "Perl",
420
+ "PHP",
421
+ "Python",
422
+ "Ruby",
423
+ "Scala",
424
+ "Scheme"
425
+ ];
426
+ $( "#autocomplete" ).autocomplete({
427
+ source: availableTags
428
+ });
429
+
430
+
431
+
432
+ $( "#button" ).button();
433
+ $( "#radioset" ).buttonset();
434
+
435
+
436
+
437
+ $( "#tabs" ).tabs();
438
+
439
+
440
+
441
+ $( "#dialog" ).dialog({
442
+ autoOpen: false,
443
+ width: 400,
444
+ buttons: [
445
+ {
446
+ text: "Ok",
447
+ click: function() {
448
+ $( this ).dialog( "close" );
449
+ }
450
+ },
451
+ {
452
+ text: "Cancel",
453
+ click: function() {
454
+ $( this ).dialog( "close" );
455
+ }
456
+ }
457
+ ]
458
+ });
459
+
460
+ // Link to open the dialog
461
+ $( "#dialog-link" ).click(function( event ) {
462
+ $( "#dialog" ).dialog( "open" );
463
+ event.preventDefault();
464
+ });
465
+
466
+
467
+
468
+ $( "#datepicker" ).datepicker({
469
+ inline: true
470
+ });
471
+
472
+
473
+
474
+ $( "#slider" ).slider({
475
+ range: true,
476
+ values: [ 17, 67 ]
477
+ });
478
+
479
+
480
+
481
+ $( "#progressbar" ).progressbar({
482
+ value: 20
483
+ });
484
+
485
+
486
+
487
+ $( "#spinner" ).spinner();
488
+
489
+
490
+
491
+ $( "#menu" ).menu();
492
+
493
+
494
+
495
+ $( "#tooltip" ).tooltip();
496
+
497
+
498
+
499
+ $( "#selectmenu" ).selectmenu();
500
+
501
+
502
+ // Hover states on the static widgets
503
+ $( "#dialog-link, #icons li" ).hover(
504
+ function() {
505
+ $( this ).addClass( "ui-state-hover" );
506
+ },
507
+ function() {
508
+ $( this ).removeClass( "ui-state-hover" );
509
+ }
510
+ );
511
+ </script>
512
+ </body>
513
+ </html>
static/js/jquery-ui/jquery-ui.css ADDED
@@ -0,0 +1,1225 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! jQuery UI - v1.11.2 - 2015-02-11
2
+ * http://jqueryui.com
3
+ * Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
4
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
5
+ * Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
6
+
7
+ /* Layout helpers
8
+ ----------------------------------*/
9
+ .ui-helper-hidden {
10
+ display: none;
11
+ }
12
+ .ui-helper-hidden-accessible {
13
+ border: 0;
14
+ clip: rect(0 0 0 0);
15
+ height: 1px;
16
+ margin: -1px;
17
+ overflow: hidden;
18
+ padding: 0;
19
+ position: absolute;
20
+ width: 1px;
21
+ }
22
+ .ui-helper-reset {
23
+ margin: 0;
24
+ padding: 0;
25
+ border: 0;
26
+ outline: 0;
27
+ line-height: 1.3;
28
+ text-decoration: none;
29
+ font-size: 100%;
30
+ list-style: none;
31
+ }
32
+ .ui-helper-clearfix:before,
33
+ .ui-helper-clearfix:after {
34
+ content: "";
35
+ display: table;
36
+ border-collapse: collapse;
37
+ }
38
+ .ui-helper-clearfix:after {
39
+ clear: both;
40
+ }
41
+ .ui-helper-clearfix {
42
+ min-height: 0; /* support: IE7 */
43
+ }
44
+ .ui-helper-zfix {
45
+ width: 100%;
46
+ height: 100%;
47
+ top: 0;
48
+ left: 0;
49
+ position: absolute;
50
+ opacity: 0;
51
+ filter:Alpha(Opacity=0); /* support: IE8 */
52
+ }
53
+
54
+ .ui-front {
55
+ z-index: 100;
56
+ }
57
+
58
+
59
+ /* Interaction Cues
60
+ ----------------------------------*/
61
+ .ui-state-disabled {
62
+ cursor: default !important;
63
+ }
64
+
65
+
66
+ /* Icons
67
+ ----------------------------------*/
68
+
69
+ /* states and images */
70
+ .ui-icon {
71
+ display: block;
72
+ text-indent: -99999px;
73
+ overflow: hidden;
74
+ background-repeat: no-repeat;
75
+ }
76
+
77
+
78
+ /* Misc visuals
79
+ ----------------------------------*/
80
+
81
+ /* Overlays */
82
+ .ui-widget-overlay {
83
+ position: fixed;
84
+ top: 0;
85
+ left: 0;
86
+ width: 100%;
87
+ height: 100%;
88
+ }
89
+ .ui-draggable-handle {
90
+ -ms-touch-action: none;
91
+ touch-action: none;
92
+ }
93
+ .ui-resizable {
94
+ position: relative;
95
+ }
96
+ .ui-resizable-handle {
97
+ position: absolute;
98
+ font-size: 0.1px;
99
+ display: block;
100
+ -ms-touch-action: none;
101
+ touch-action: none;
102
+ }
103
+ .ui-resizable-disabled .ui-resizable-handle,
104
+ .ui-resizable-autohide .ui-resizable-handle {
105
+ display: none;
106
+ }
107
+ .ui-resizable-n {
108
+ cursor: n-resize;
109
+ height: 7px;
110
+ width: 100%;
111
+ top: -5px;
112
+ left: 0;
113
+ }
114
+ .ui-resizable-s {
115
+ cursor: s-resize;
116
+ height: 7px;
117
+ width: 100%;
118
+ bottom: -5px;
119
+ left: 0;
120
+ }
121
+ .ui-resizable-e {
122
+ cursor: e-resize;
123
+ width: 7px;
124
+ right: -5px;
125
+ top: 0;
126
+ height: 100%;
127
+ }
128
+ .ui-resizable-w {
129
+ cursor: w-resize;
130
+ width: 7px;
131
+ left: -5px;
132
+ top: 0;
133
+ height: 100%;
134
+ }
135
+ .ui-resizable-se {
136
+ cursor: se-resize;
137
+ width: 12px;
138
+ height: 12px;
139
+ right: 1px;
140
+ bottom: 1px;
141
+ }
142
+ .ui-resizable-sw {
143
+ cursor: sw-resize;
144
+ width: 9px;
145
+ height: 9px;
146
+ left: -5px;
147
+ bottom: -5px;
148
+ }
149
+ .ui-resizable-nw {
150
+ cursor: nw-resize;
151
+ width: 9px;
152
+ height: 9px;
153
+ left: -5px;
154
+ top: -5px;
155
+ }
156
+ .ui-resizable-ne {
157
+ cursor: ne-resize;
158
+ width: 9px;
159
+ height: 9px;
160
+ right: -5px;
161
+ top: -5px;
162
+ }
163
+ .ui-selectable {
164
+ -ms-touch-action: none;
165
+ touch-action: none;
166
+ }
167
+ .ui-selectable-helper {
168
+ position: absolute;
169
+ z-index: 100;
170
+ border: 1px dotted black;
171
+ }
172
+ .ui-sortable-handle {
173
+ -ms-touch-action: none;
174
+ touch-action: none;
175
+ }
176
+ .ui-accordion .ui-accordion-header {
177
+ display: block;
178
+ cursor: pointer;
179
+ position: relative;
180
+ margin: 2px 0 0 0;
181
+ padding: .5em .5em .5em .7em;
182
+ min-height: 0; /* support: IE7 */
183
+ font-size: 100%;
184
+ }
185
+ .ui-accordion .ui-accordion-icons {
186
+ padding-left: 2.2em;
187
+ }
188
+ .ui-accordion .ui-accordion-icons .ui-accordion-icons {
189
+ padding-left: 2.2em;
190
+ }
191
+ .ui-accordion .ui-accordion-header .ui-accordion-header-icon {
192
+ position: absolute;
193
+ left: .5em;
194
+ top: 50%;
195
+ margin-top: -8px;
196
+ }
197
+ .ui-accordion .ui-accordion-content {
198
+ padding: 1em 2.2em;
199
+ border-top: 0;
200
+ overflow: auto;
201
+ }
202
+ .ui-autocomplete {
203
+ position: absolute;
204
+ top: 0;
205
+ left: 0;
206
+ cursor: default;
207
+ }
208
+ .ui-button {
209
+ display: inline-block;
210
+ position: relative;
211
+ padding: 0;
212
+ line-height: normal;
213
+ margin-right: .1em;
214
+ cursor: pointer;
215
+ vertical-align: middle;
216
+ text-align: center;
217
+ overflow: visible; /* removes extra width in IE */
218
+ }
219
+ .ui-button,
220
+ .ui-button:link,
221
+ .ui-button:visited,
222
+ .ui-button:hover,
223
+ .ui-button:active {
224
+ text-decoration: none;
225
+ }
226
+ /* to make room for the icon, a width needs to be set here */
227
+ .ui-button-icon-only {
228
+ width: 2.2em;
229
+ }
230
+ /* button elements seem to need a little more width */
231
+ button.ui-button-icon-only {
232
+ width: 2.4em;
233
+ }
234
+ .ui-button-icons-only {
235
+ width: 3.4em;
236
+ }
237
+ button.ui-button-icons-only {
238
+ width: 3.7em;
239
+ }
240
+
241
+ /* button text element */
242
+ .ui-button .ui-button-text {
243
+ display: block;
244
+ line-height: normal;
245
+ }
246
+ .ui-button-text-only .ui-button-text {
247
+ padding: .4em 1em;
248
+ }
249
+ .ui-button-icon-only .ui-button-text,
250
+ .ui-button-icons-only .ui-button-text {
251
+ padding: .4em;
252
+ text-indent: -9999999px;
253
+ }
254
+ .ui-button-text-icon-primary .ui-button-text,
255
+ .ui-button-text-icons .ui-button-text {
256
+ padding: .4em 1em .4em 2.1em;
257
+ }
258
+ .ui-button-text-icon-secondary .ui-button-text,
259
+ .ui-button-text-icons .ui-button-text {
260
+ padding: .4em 2.1em .4em 1em;
261
+ }
262
+ .ui-button-text-icons .ui-button-text {
263
+ padding-left: 2.1em;
264
+ padding-right: 2.1em;
265
+ }
266
+ /* no icon support for input elements, provide padding by default */
267
+ input.ui-button {
268
+ padding: .4em 1em;
269
+ }
270
+
271
+ /* button icon element(s) */
272
+ .ui-button-icon-only .ui-icon,
273
+ .ui-button-text-icon-primary .ui-icon,
274
+ .ui-button-text-icon-secondary .ui-icon,
275
+ .ui-button-text-icons .ui-icon,
276
+ .ui-button-icons-only .ui-icon {
277
+ position: absolute;
278
+ top: 50%;
279
+ margin-top: -8px;
280
+ }
281
+ .ui-button-icon-only .ui-icon {
282
+ left: 50%;
283
+ margin-left: -8px;
284
+ }
285
+ .ui-button-text-icon-primary .ui-button-icon-primary,
286
+ .ui-button-text-icons .ui-button-icon-primary,
287
+ .ui-button-icons-only .ui-button-icon-primary {
288
+ left: .5em;
289
+ }
290
+ .ui-button-text-icon-secondary .ui-button-icon-secondary,
291
+ .ui-button-text-icons .ui-button-icon-secondary,
292
+ .ui-button-icons-only .ui-button-icon-secondary {
293
+ right: .5em;
294
+ }
295
+
296
+ /* button sets */
297
+ .ui-buttonset {
298
+ margin-right: 7px;
299
+ }
300
+ .ui-buttonset .ui-button {
301
+ margin-left: 0;
302
+ margin-right: -.3em;
303
+ }
304
+
305
+ /* workarounds */
306
+ /* reset extra padding in Firefox, see h5bp.com/l */
307
+ input.ui-button::-moz-focus-inner,
308
+ button.ui-button::-moz-focus-inner {
309
+ border: 0;
310
+ padding: 0;
311
+ }
312
+ .ui-datepicker {
313
+ width: 17em;
314
+ padding: .2em .2em 0;
315
+ display: none;
316
+ }
317
+ .ui-datepicker .ui-datepicker-header {
318
+ position: relative;
319
+ padding: .2em 0;
320
+ }
321
+ .ui-datepicker .ui-datepicker-prev,
322
+ .ui-datepicker .ui-datepicker-next {
323
+ position: absolute;
324
+ top: 2px;
325
+ width: 1.8em;
326
+ height: 1.8em;
327
+ }
328
+ .ui-datepicker .ui-datepicker-prev-hover,
329
+ .ui-datepicker .ui-datepicker-next-hover {
330
+ top: 1px;
331
+ }
332
+ .ui-datepicker .ui-datepicker-prev {
333
+ left: 2px;
334
+ }
335
+ .ui-datepicker .ui-datepicker-next {
336
+ right: 2px;
337
+ }
338
+ .ui-datepicker .ui-datepicker-prev-hover {
339
+ left: 1px;
340
+ }
341
+ .ui-datepicker .ui-datepicker-next-hover {
342
+ right: 1px;
343
+ }
344
+ .ui-datepicker .ui-datepicker-prev span,
345
+ .ui-datepicker .ui-datepicker-next span {
346
+ display: block;
347
+ position: absolute;
348
+ left: 50%;
349
+ margin-left: -8px;
350
+ top: 50%;
351
+ margin-top: -8px;
352
+ }
353
+ .ui-datepicker .ui-datepicker-title {
354
+ margin: 0 2.3em;
355
+ line-height: 1.8em;
356
+ text-align: center;
357
+ }
358
+ .ui-datepicker .ui-datepicker-title select {
359
+ font-size: 1em;
360
+ margin: 1px 0;
361
+ }
362
+ .ui-datepicker select.ui-datepicker-month,
363
+ .ui-datepicker select.ui-datepicker-year {
364
+ width: 45%;
365
+ }
366
+ .ui-datepicker table {
367
+ width: 100%;
368
+ font-size: .9em;
369
+ border-collapse: collapse;
370
+ margin: 0 0 .4em;
371
+ }
372
+ .ui-datepicker th {
373
+ padding: .7em .3em;
374
+ text-align: center;
375
+ font-weight: bold;
376
+ border: 0;
377
+ }
378
+ .ui-datepicker td {
379
+ border: 0;
380
+ padding: 1px;
381
+ }
382
+ .ui-datepicker td span,
383
+ .ui-datepicker td a {
384
+ display: block;
385
+ padding: .2em;
386
+ text-align: right;
387
+ text-decoration: none;
388
+ }
389
+ .ui-datepicker .ui-datepicker-buttonpane {
390
+ background-image: none;
391
+ margin: .7em 0 0 0;
392
+ padding: 0 .2em;
393
+ border-left: 0;
394
+ border-right: 0;
395
+ border-bottom: 0;
396
+ }
397
+ .ui-datepicker .ui-datepicker-buttonpane button {
398
+ float: right;
399
+ margin: .5em .2em .4em;
400
+ cursor: pointer;
401
+ padding: .2em .6em .3em .6em;
402
+ width: auto;
403
+ overflow: visible;
404
+ }
405
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
406
+ float: left;
407
+ }
408
+
409
+ /* with multiple calendars */
410
+ .ui-datepicker.ui-datepicker-multi {
411
+ width: auto;
412
+ }
413
+ .ui-datepicker-multi .ui-datepicker-group {
414
+ float: left;
415
+ }
416
+ .ui-datepicker-multi .ui-datepicker-group table {
417
+ width: 95%;
418
+ margin: 0 auto .4em;
419
+ }
420
+ .ui-datepicker-multi-2 .ui-datepicker-group {
421
+ width: 50%;
422
+ }
423
+ .ui-datepicker-multi-3 .ui-datepicker-group {
424
+ width: 33.3%;
425
+ }
426
+ .ui-datepicker-multi-4 .ui-datepicker-group {
427
+ width: 25%;
428
+ }
429
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
430
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
431
+ border-left-width: 0;
432
+ }
433
+ .ui-datepicker-multi .ui-datepicker-buttonpane {
434
+ clear: left;
435
+ }
436
+ .ui-datepicker-row-break {
437
+ clear: both;
438
+ width: 100%;
439
+ font-size: 0;
440
+ }
441
+
442
+ /* RTL support */
443
+ .ui-datepicker-rtl {
444
+ direction: rtl;
445
+ }
446
+ .ui-datepicker-rtl .ui-datepicker-prev {
447
+ right: 2px;
448
+ left: auto;
449
+ }
450
+ .ui-datepicker-rtl .ui-datepicker-next {
451
+ left: 2px;
452
+ right: auto;
453
+ }
454
+ .ui-datepicker-rtl .ui-datepicker-prev:hover {
455
+ right: 1px;
456
+ left: auto;
457
+ }
458
+ .ui-datepicker-rtl .ui-datepicker-next:hover {
459
+ left: 1px;
460
+ right: auto;
461
+ }
462
+ .ui-datepicker-rtl .ui-datepicker-buttonpane {
463
+ clear: right;
464
+ }
465
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button {
466
+ float: left;
467
+ }
468
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
469
+ .ui-datepicker-rtl .ui-datepicker-group {
470
+ float: right;
471
+ }
472
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
473
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
474
+ border-right-width: 0;
475
+ border-left-width: 1px;
476
+ }
477
+ .ui-dialog {
478
+ overflow: hidden;
479
+ position: absolute;
480
+ top: 0;
481
+ left: 0;
482
+ padding: .2em;
483
+ outline: 0;
484
+ }
485
+ .ui-dialog .ui-dialog-titlebar {
486
+ padding: .4em 1em;
487
+ position: relative;
488
+ }
489
+ .ui-dialog .ui-dialog-title {
490
+ float: left;
491
+ margin: .1em 0;
492
+ white-space: nowrap;
493
+ width: 90%;
494
+ overflow: hidden;
495
+ text-overflow: ellipsis;
496
+ }
497
+ .ui-dialog .ui-dialog-titlebar-close {
498
+ position: absolute;
499
+ right: .3em;
500
+ top: 50%;
501
+ width: 20px;
502
+ margin: -10px 0 0 0;
503
+ padding: 1px;
504
+ height: 20px;
505
+ }
506
+ .ui-dialog .ui-dialog-content {
507
+ position: relative;
508
+ border: 0;
509
+ padding: .5em 1em;
510
+ background: none;
511
+ overflow: auto;
512
+ }
513
+ .ui-dialog .ui-dialog-buttonpane {
514
+ text-align: left;
515
+ border-width: 1px 0 0 0;
516
+ background-image: none;
517
+ margin-top: .5em;
518
+ padding: .3em 1em .5em .4em;
519
+ }
520
+ .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
521
+ float: right;
522
+ }
523
+ .ui-dialog .ui-dialog-buttonpane button {
524
+ margin: .5em .4em .5em 0;
525
+ cursor: pointer;
526
+ }
527
+ .ui-dialog .ui-resizable-se {
528
+ width: 12px;
529
+ height: 12px;
530
+ right: -5px;
531
+ bottom: -5px;
532
+ background-position: 16px 16px;
533
+ }
534
+ .ui-draggable .ui-dialog-titlebar {
535
+ cursor: move;
536
+ }
537
+ .ui-menu {
538
+ list-style: none;
539
+ padding: 0;
540
+ margin: 0;
541
+ display: block;
542
+ outline: none;
543
+ }
544
+ .ui-menu .ui-menu {
545
+ position: absolute;
546
+ }
547
+ .ui-menu .ui-menu-item {
548
+ position: relative;
549
+ margin: 0;
550
+ padding: 3px 1em 3px .4em;
551
+ cursor: pointer;
552
+ min-height: 0; /* support: IE7 */
553
+ /* support: IE10, see #8844 */
554
+ list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
555
+ }
556
+ .ui-menu .ui-menu-divider {
557
+ margin: 5px 0;
558
+ height: 0;
559
+ font-size: 0;
560
+ line-height: 0;
561
+ border-width: 1px 0 0 0;
562
+ }
563
+ .ui-menu .ui-state-focus,
564
+ .ui-menu .ui-state-active {
565
+ margin: -1px;
566
+ }
567
+
568
+ /* icon support */
569
+ .ui-menu-icons {
570
+ position: relative;
571
+ }
572
+ .ui-menu-icons .ui-menu-item {
573
+ padding-left: 2em;
574
+ }
575
+
576
+ /* left-aligned */
577
+ .ui-menu .ui-icon {
578
+ position: absolute;
579
+ top: 0;
580
+ bottom: 0;
581
+ left: .2em;
582
+ margin: auto 0;
583
+ }
584
+
585
+ /* right-aligned */
586
+ .ui-menu .ui-menu-icon {
587
+ left: auto;
588
+ right: 0;
589
+ }
590
+ .ui-progressbar {
591
+ height: 2em;
592
+ text-align: left;
593
+ overflow: hidden;
594
+ }
595
+ .ui-progressbar .ui-progressbar-value {
596
+ margin: -1px;
597
+ height: 100%;
598
+ }
599
+ .ui-progressbar .ui-progressbar-overlay {
600
+ background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
601
+ height: 100%;
602
+ filter: alpha(opacity=25); /* support: IE8 */
603
+ opacity: 0.25;
604
+ }
605
+ .ui-progressbar-indeterminate .ui-progressbar-value {
606
+ background-image: none;
607
+ }
608
+ .ui-selectmenu-menu {
609
+ padding: 0;
610
+ margin: 0;
611
+ position: absolute;
612
+ top: 0;
613
+ left: 0;
614
+ display: none;
615
+ }
616
+ .ui-selectmenu-menu .ui-menu {
617
+ overflow: auto;
618
+ /* Support: IE7 */
619
+ overflow-x: hidden;
620
+ padding-bottom: 1px;
621
+ }
622
+ .ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
623
+ font-size: 1em;
624
+ font-weight: bold;
625
+ line-height: 1.5;
626
+ padding: 2px 0.4em;
627
+ margin: 0.5em 0 0 0;
628
+ height: auto;
629
+ border: 0;
630
+ }
631
+ .ui-selectmenu-open {
632
+ display: block;
633
+ }
634
+ .ui-selectmenu-button {
635
+ display: inline-block;
636
+ overflow: hidden;
637
+ position: relative;
638
+ text-decoration: none;
639
+ cursor: pointer;
640
+ }
641
+ .ui-selectmenu-button span.ui-icon {
642
+ right: 0.5em;
643
+ left: auto;
644
+ margin-top: -8px;
645
+ position: absolute;
646
+ top: 50%;
647
+ }
648
+ .ui-selectmenu-button span.ui-selectmenu-text {
649
+ text-align: left;
650
+ padding: 0.4em 2.1em 0.4em 1em;
651
+ display: block;
652
+ line-height: 1.4;
653
+ overflow: hidden;
654
+ text-overflow: ellipsis;
655
+ white-space: nowrap;
656
+ }
657
+ .ui-slider {
658
+ position: relative;
659
+ text-align: left;
660
+ }
661
+ .ui-slider .ui-slider-handle {
662
+ position: absolute;
663
+ z-index: 2;
664
+ width: 1.2em;
665
+ height: 1.2em;
666
+ cursor: default;
667
+ -ms-touch-action: none;
668
+ touch-action: none;
669
+ }
670
+ .ui-slider .ui-slider-range {
671
+ position: absolute;
672
+ z-index: 1;
673
+ font-size: .7em;
674
+ display: block;
675
+ border: 0;
676
+ background-position: 0 0;
677
+ }
678
+
679
+ /* support: IE8 - See #6727 */
680
+ .ui-slider.ui-state-disabled .ui-slider-handle,
681
+ .ui-slider.ui-state-disabled .ui-slider-range {
682
+ filter: inherit;
683
+ }
684
+
685
+ .ui-slider-horizontal {
686
+ height: .8em;
687
+ }
688
+ .ui-slider-horizontal .ui-slider-handle {
689
+ top: -.3em;
690
+ margin-left: -.6em;
691
+ }
692
+ .ui-slider-horizontal .ui-slider-range {
693
+ top: 0;
694
+ height: 100%;
695
+ }
696
+ .ui-slider-horizontal .ui-slider-range-min {
697
+ left: 0;
698
+ }
699
+ .ui-slider-horizontal .ui-slider-range-max {
700
+ right: 0;
701
+ }
702
+
703
+ .ui-slider-vertical {
704
+ width: .8em;
705
+ height: 100px;
706
+ }
707
+ .ui-slider-vertical .ui-slider-handle {
708
+ left: -.3em;
709
+ margin-left: 0;
710
+ margin-bottom: -.6em;
711
+ }
712
+ .ui-slider-vertical .ui-slider-range {
713
+ left: 0;
714
+ width: 100%;
715
+ }
716
+ .ui-slider-vertical .ui-slider-range-min {
717
+ bottom: 0;
718
+ }
719
+ .ui-slider-vertical .ui-slider-range-max {
720
+ top: 0;
721
+ }
722
+ .ui-spinner {
723
+ position: relative;
724
+ display: inline-block;
725
+ overflow: hidden;
726
+ padding: 0;
727
+ vertical-align: middle;
728
+ }
729
+ .ui-spinner-input {
730
+ border: none;
731
+ background: none;
732
+ color: inherit;
733
+ padding: 0;
734
+ margin: .2em 0;
735
+ vertical-align: middle;
736
+ margin-left: .4em;
737
+ margin-right: 22px;
738
+ }
739
+ .ui-spinner-button {
740
+ width: 16px;
741
+ height: 50%;
742
+ font-size: .5em;
743
+ padding: 0;
744
+ margin: 0;
745
+ text-align: center;
746
+ position: absolute;
747
+ cursor: default;
748
+ display: block;
749
+ overflow: hidden;
750
+ right: 0;
751
+ }
752
+ /* more specificity required here to override default borders */
753
+ .ui-spinner a.ui-spinner-button {
754
+ border-top: none;
755
+ border-bottom: none;
756
+ border-right: none;
757
+ }
758
+ /* vertically center icon */
759
+ .ui-spinner .ui-icon {
760
+ position: absolute;
761
+ margin-top: -8px;
762
+ top: 50%;
763
+ left: 0;
764
+ }
765
+ .ui-spinner-up {
766
+ top: 0;
767
+ }
768
+ .ui-spinner-down {
769
+ bottom: 0;
770
+ }
771
+
772
+ /* TR overrides */
773
+ .ui-spinner .ui-icon-triangle-1-s {
774
+ /* need to fix icons sprite */
775
+ background-position: -65px -16px;
776
+ }
777
+ .ui-tabs {
778
+ position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
779
+ padding: .2em;
780
+ }
781
+ .ui-tabs .ui-tabs-nav {
782
+ margin: 0;
783
+ padding: .2em .2em 0;
784
+ }
785
+ .ui-tabs .ui-tabs-nav li {
786
+ list-style: none;
787
+ float: left;
788
+ position: relative;
789
+ top: 0;
790
+ margin: 1px .2em 0 0;
791
+ border-bottom-width: 0;
792
+ padding: 0;
793
+ white-space: nowrap;
794
+ }
795
+ .ui-tabs .ui-tabs-nav .ui-tabs-anchor {
796
+ float: left;
797
+ padding: .5em 1em;
798
+ text-decoration: none;
799
+ }
800
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active {
801
+ margin-bottom: -1px;
802
+ padding-bottom: 1px;
803
+ }
804
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
805
+ .ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
806
+ .ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
807
+ cursor: text;
808
+ }
809
+ .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
810
+ cursor: pointer;
811
+ }
812
+ .ui-tabs .ui-tabs-panel {
813
+ display: block;
814
+ border-width: 0;
815
+ padding: 1em 1.4em;
816
+ background: none;
817
+ }
818
+ .ui-tooltip {
819
+ padding: 8px;
820
+ position: absolute;
821
+ z-index: 9999;
822
+ max-width: 300px;
823
+ -webkit-box-shadow: 0 0 5px #aaa;
824
+ box-shadow: 0 0 5px #aaa;
825
+ }
826
+ body .ui-tooltip {
827
+ border-width: 2px;
828
+ }
829
+
830
+ /* Component containers
831
+ ----------------------------------*/
832
+ .ui-widget {
833
+ font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;
834
+ font-size: 1.1em;
835
+ }
836
+ .ui-widget .ui-widget {
837
+ font-size: 1em;
838
+ }
839
+ .ui-widget input,
840
+ .ui-widget select,
841
+ .ui-widget textarea,
842
+ .ui-widget button {
843
+ font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;
844
+ font-size: 1em;
845
+ }
846
+ .ui-widget-content {
847
+ border: 1px solid #dddddd;
848
+ background: #eeeeee url("images/ui-bg_highlight-soft_100_eeeeee_1x100.png") 50% top repeat-x;
849
+ color: #333333;
850
+ }
851
+ .ui-widget-content a {
852
+ color: #333333;
853
+ }
854
+ .ui-widget-header {
855
+ border: 1px solid #e78f08;
856
+ background: #f6a828 url("images/ui-bg_gloss-wave_35_f6a828_500x100.png") 50% 50% repeat-x;
857
+ color: #ffffff;
858
+ font-weight: bold;
859
+ }
860
+ .ui-widget-header a {
861
+ color: #ffffff;
862
+ }
863
+
864
+ /* Interaction states
865
+ ----------------------------------*/
866
+ .ui-state-default,
867
+ .ui-widget-content .ui-state-default,
868
+ .ui-widget-header .ui-state-default {
869
+ border: 1px solid #cccccc;
870
+ background: #f6f6f6 url("images/ui-bg_glass_100_f6f6f6_1x400.png") 50% 50% repeat-x;
871
+ font-weight: bold;
872
+ color: #1c94c4;
873
+ }
874
+ .ui-state-default a,
875
+ .ui-state-default a:link,
876
+ .ui-state-default a:visited {
877
+ color: #1c94c4;
878
+ text-decoration: none;
879
+ }
880
+ .ui-state-hover,
881
+ .ui-widget-content .ui-state-hover,
882
+ .ui-widget-header .ui-state-hover,
883
+ .ui-state-focus,
884
+ .ui-widget-content .ui-state-focus,
885
+ .ui-widget-header .ui-state-focus {
886
+ border: 1px solid #fbcb09;
887
+ background: #fdf5ce url("images/ui-bg_glass_100_fdf5ce_1x400.png") 50% 50% repeat-x;
888
+ font-weight: bold;
889
+ color: #c77405;
890
+ }
891
+ .ui-state-hover a,
892
+ .ui-state-hover a:hover,
893
+ .ui-state-hover a:link,
894
+ .ui-state-hover a:visited,
895
+ .ui-state-focus a,
896
+ .ui-state-focus a:hover,
897
+ .ui-state-focus a:link,
898
+ .ui-state-focus a:visited {
899
+ color: #c77405;
900
+ text-decoration: none;
901
+ }
902
+ .ui-state-active,
903
+ .ui-widget-content .ui-state-active,
904
+ .ui-widget-header .ui-state-active {
905
+ border: 1px solid #fbd850;
906
+ background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;
907
+ font-weight: bold;
908
+ color: #eb8f00;
909
+ }
910
+ .ui-state-active a,
911
+ .ui-state-active a:link,
912
+ .ui-state-active a:visited {
913
+ color: #eb8f00;
914
+ text-decoration: none;
915
+ }
916
+
917
+ /* Interaction Cues
918
+ ----------------------------------*/
919
+ .ui-state-highlight,
920
+ .ui-widget-content .ui-state-highlight,
921
+ .ui-widget-header .ui-state-highlight {
922
+ border: 1px solid #fed22f;
923
+ background: #ffe45c url("images/ui-bg_highlight-soft_75_ffe45c_1x100.png") 50% top repeat-x;
924
+ color: #363636;
925
+ }
926
+ .ui-state-highlight a,
927
+ .ui-widget-content .ui-state-highlight a,
928
+ .ui-widget-header .ui-state-highlight a {
929
+ color: #363636;
930
+ }
931
+ .ui-state-error,
932
+ .ui-widget-content .ui-state-error,
933
+ .ui-widget-header .ui-state-error {
934
+ border: 1px solid #cd0a0a;
935
+ background: #b81900 url("images/ui-bg_diagonals-thick_18_b81900_40x40.png") 50% 50% repeat;
936
+ color: #ffffff;
937
+ }
938
+ .ui-state-error a,
939
+ .ui-widget-content .ui-state-error a,
940
+ .ui-widget-header .ui-state-error a {
941
+ color: #ffffff;
942
+ }
943
+ .ui-state-error-text,
944
+ .ui-widget-content .ui-state-error-text,
945
+ .ui-widget-header .ui-state-error-text {
946
+ color: #ffffff;
947
+ }
948
+ .ui-priority-primary,
949
+ .ui-widget-content .ui-priority-primary,
950
+ .ui-widget-header .ui-priority-primary {
951
+ font-weight: bold;
952
+ }
953
+ .ui-priority-secondary,
954
+ .ui-widget-content .ui-priority-secondary,
955
+ .ui-widget-header .ui-priority-secondary {
956
+ opacity: .7;
957
+ filter:Alpha(Opacity=70); /* support: IE8 */
958
+ font-weight: normal;
959
+ }
960
+ .ui-state-disabled,
961
+ .ui-widget-content .ui-state-disabled,
962
+ .ui-widget-header .ui-state-disabled {
963
+ opacity: .35;
964
+ filter:Alpha(Opacity=35); /* support: IE8 */
965
+ background-image: none;
966
+ }
967
+ .ui-state-disabled .ui-icon {
968
+ filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
969
+ }
970
+
971
+ /* Icons
972
+ ----------------------------------*/
973
+
974
+ /* states and images */
975
+ .ui-icon {
976
+ width: 16px;
977
+ height: 16px;
978
+ }
979
+ .ui-icon,
980
+ .ui-widget-content .ui-icon {
981
+ background-image: url("images/ui-icons_222222_256x240.png");
982
+ }
983
+ .ui-widget-header .ui-icon {
984
+ background-image: url("images/ui-icons_ffffff_256x240.png");
985
+ }
986
+ .ui-state-default .ui-icon {
987
+ background-image: url("images/ui-icons_ef8c08_256x240.png");
988
+ }
989
+ .ui-state-hover .ui-icon,
990
+ .ui-state-focus .ui-icon {
991
+ background-image: url("images/ui-icons_ef8c08_256x240.png");
992
+ }
993
+ .ui-state-active .ui-icon {
994
+ background-image: url("images/ui-icons_ef8c08_256x240.png");
995
+ }
996
+ .ui-state-highlight .ui-icon {
997
+ background-image: url("images/ui-icons_228ef1_256x240.png");
998
+ }
999
+ .ui-state-error .ui-icon,
1000
+ .ui-state-error-text .ui-icon {
1001
+ background-image: url("images/ui-icons_ffd27a_256x240.png");
1002
+ }
1003
+
1004
+ /* positioning */
1005
+ .ui-icon-blank { background-position: 16px 16px; }
1006
+ .ui-icon-carat-1-n { background-position: 0 0; }
1007
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
1008
+ .ui-icon-carat-1-e { background-position: -32px 0; }
1009
+ .ui-icon-carat-1-se { background-position: -48px 0; }
1010
+ .ui-icon-carat-1-s { background-position: -64px 0; }
1011
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
1012
+ .ui-icon-carat-1-w { background-position: -96px 0; }
1013
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
1014
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
1015
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
1016
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
1017
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
1018
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
1019
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
1020
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
1021
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
1022
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
1023
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
1024
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
1025
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
1026
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
1027
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
1028
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
1029
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
1030
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
1031
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
1032
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
1033
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
1034
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
1035
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
1036
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
1037
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
1038
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
1039
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
1040
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
1041
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
1042
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
1043
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
1044
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
1045
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
1046
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
1047
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
1048
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
1049
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
1050
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
1051
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
1052
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
1053
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
1054
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
1055
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
1056
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
1057
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
1058
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
1059
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
1060
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
1061
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
1062
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
1063
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
1064
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
1065
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
1066
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
1067
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
1068
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
1069
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
1070
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
1071
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
1072
+ .ui-icon-extlink { background-position: -32px -80px; }
1073
+ .ui-icon-newwin { background-position: -48px -80px; }
1074
+ .ui-icon-refresh { background-position: -64px -80px; }
1075
+ .ui-icon-shuffle { background-position: -80px -80px; }
1076
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
1077
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
1078
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
1079
+ .ui-icon-folder-open { background-position: -16px -96px; }
1080
+ .ui-icon-document { background-position: -32px -96px; }
1081
+ .ui-icon-document-b { background-position: -48px -96px; }
1082
+ .ui-icon-note { background-position: -64px -96px; }
1083
+ .ui-icon-mail-closed { background-position: -80px -96px; }
1084
+ .ui-icon-mail-open { background-position: -96px -96px; }
1085
+ .ui-icon-suitcase { background-position: -112px -96px; }
1086
+ .ui-icon-comment { background-position: -128px -96px; }
1087
+ .ui-icon-person { background-position: -144px -96px; }
1088
+ .ui-icon-print { background-position: -160px -96px; }
1089
+ .ui-icon-trash { background-position: -176px -96px; }
1090
+ .ui-icon-locked { background-position: -192px -96px; }
1091
+ .ui-icon-unlocked { background-position: -208px -96px; }
1092
+ .ui-icon-bookmark { background-position: -224px -96px; }
1093
+ .ui-icon-tag { background-position: -240px -96px; }
1094
+ .ui-icon-home { background-position: 0 -112px; }
1095
+ .ui-icon-flag { background-position: -16px -112px; }
1096
+ .ui-icon-calendar { background-position: -32px -112px; }
1097
+ .ui-icon-cart { background-position: -48px -112px; }
1098
+ .ui-icon-pencil { background-position: -64px -112px; }
1099
+ .ui-icon-clock { background-position: -80px -112px; }
1100
+ .ui-icon-disk { background-position: -96px -112px; }
1101
+ .ui-icon-calculator { background-position: -112px -112px; }
1102
+ .ui-icon-zoomin { background-position: -128px -112px; }
1103
+ .ui-icon-zoomout { background-position: -144px -112px; }
1104
+ .ui-icon-search { background-position: -160px -112px; }
1105
+ .ui-icon-wrench { background-position: -176px -112px; }
1106
+ .ui-icon-gear { background-position: -192px -112px; }
1107
+ .ui-icon-heart { background-position: -208px -112px; }
1108
+ .ui-icon-star { background-position: -224px -112px; }
1109
+ .ui-icon-link { background-position: -240px -112px; }
1110
+ .ui-icon-cancel { background-position: 0 -128px; }
1111
+ .ui-icon-plus { background-position: -16px -128px; }
1112
+ .ui-icon-plusthick { background-position: -32px -128px; }
1113
+ .ui-icon-minus { background-position: -48px -128px; }
1114
+ .ui-icon-minusthick { background-position: -64px -128px; }
1115
+ .ui-icon-close { background-position: -80px -128px; }
1116
+ .ui-icon-closethick { background-position: -96px -128px; }
1117
+ .ui-icon-key { background-position: -112px -128px; }
1118
+ .ui-icon-lightbulb { background-position: -128px -128px; }
1119
+ .ui-icon-scissors { background-position: -144px -128px; }
1120
+ .ui-icon-clipboard { background-position: -160px -128px; }
1121
+ .ui-icon-copy { background-position: -176px -128px; }
1122
+ .ui-icon-contact { background-position: -192px -128px; }
1123
+ .ui-icon-image { background-position: -208px -128px; }
1124
+ .ui-icon-video { background-position: -224px -128px; }
1125
+ .ui-icon-script { background-position: -240px -128px; }
1126
+ .ui-icon-alert { background-position: 0 -144px; }
1127
+ .ui-icon-info { background-position: -16px -144px; }
1128
+ .ui-icon-notice { background-position: -32px -144px; }
1129
+ .ui-icon-help { background-position: -48px -144px; }
1130
+ .ui-icon-check { background-position: -64px -144px; }
1131
+ .ui-icon-bullet { background-position: -80px -144px; }
1132
+ .ui-icon-radio-on { background-position: -96px -144px; }
1133
+ .ui-icon-radio-off { background-position: -112px -144px; }
1134
+ .ui-icon-pin-w { background-position: -128px -144px; }
1135
+ .ui-icon-pin-s { background-position: -144px -144px; }
1136
+ .ui-icon-play { background-position: 0 -160px; }
1137
+ .ui-icon-pause { background-position: -16px -160px; }
1138
+ .ui-icon-seek-next { background-position: -32px -160px; }
1139
+ .ui-icon-seek-prev { background-position: -48px -160px; }
1140
+ .ui-icon-seek-end { background-position: -64px -160px; }
1141
+ .ui-icon-seek-start { background-position: -80px -160px; }
1142
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
1143
+ .ui-icon-seek-first { background-position: -80px -160px; }
1144
+ .ui-icon-stop { background-position: -96px -160px; }
1145
+ .ui-icon-eject { background-position: -112px -160px; }
1146
+ .ui-icon-volume-off { background-position: -128px -160px; }
1147
+ .ui-icon-volume-on { background-position: -144px -160px; }
1148
+ .ui-icon-power { background-position: 0 -176px; }
1149
+ .ui-icon-signal-diag { background-position: -16px -176px; }
1150
+ .ui-icon-signal { background-position: -32px -176px; }
1151
+ .ui-icon-battery-0 { background-position: -48px -176px; }
1152
+ .ui-icon-battery-1 { background-position: -64px -176px; }
1153
+ .ui-icon-battery-2 { background-position: -80px -176px; }
1154
+ .ui-icon-battery-3 { background-position: -96px -176px; }
1155
+ .ui-icon-circle-plus { background-position: 0 -192px; }
1156
+ .ui-icon-circle-minus { background-position: -16px -192px; }
1157
+ .ui-icon-circle-close { background-position: -32px -192px; }
1158
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
1159
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
1160
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
1161
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
1162
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
1163
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
1164
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
1165
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
1166
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
1167
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
1168
+ .ui-icon-circle-check { background-position: -208px -192px; }
1169
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
1170
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
1171
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
1172
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
1173
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
1174
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
1175
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
1176
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
1177
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
1178
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
1179
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
1180
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
1181
+
1182
+
1183
+ /* Misc visuals
1184
+ ----------------------------------*/
1185
+
1186
+ /* Corner radius */
1187
+ .ui-corner-all,
1188
+ .ui-corner-top,
1189
+ .ui-corner-left,
1190
+ .ui-corner-tl {
1191
+ border-top-left-radius: 4px;
1192
+ }
1193
+ .ui-corner-all,
1194
+ .ui-corner-top,
1195
+ .ui-corner-right,
1196
+ .ui-corner-tr {
1197
+ border-top-right-radius: 4px;
1198
+ }
1199
+ .ui-corner-all,
1200
+ .ui-corner-bottom,
1201
+ .ui-corner-left,
1202
+ .ui-corner-bl {
1203
+ border-bottom-left-radius: 4px;
1204
+ }
1205
+ .ui-corner-all,
1206
+ .ui-corner-bottom,
1207
+ .ui-corner-right,
1208
+ .ui-corner-br {
1209
+ border-bottom-right-radius: 4px;
1210
+ }
1211
+
1212
+ /* Overlays */
1213
+ .ui-widget-overlay {
1214
+ background: #666666 url("images/ui-bg_diagonals-thick_20_666666_40x40.png") 50% 50% repeat;
1215
+ opacity: .5;
1216
+ filter: Alpha(Opacity=50); /* support: IE8 */
1217
+ }
1218
+ .ui-widget-shadow {
1219
+ margin: -5px 0 0 -5px;
1220
+ padding: 5px;
1221
+ background: #000000 url("images/ui-bg_flat_10_000000_40x100.png") 50% 50% repeat-x;
1222
+ opacity: .2;
1223
+ filter: Alpha(Opacity=20); /* support: IE8 */
1224
+ border-radius: 5px;
1225
+ }
static/js/jquery-ui/jquery-ui.js ADDED
The diff for this file is too large to render. See raw diff
 
static/js/jquery-ui/jquery-ui.min.css ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ /*! jQuery UI - v1.11.2 - 2015-02-11
2
+ * http://jqueryui.com
3
+ * Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
4
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
5
+ * Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
6
+
7
+ .ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #ddd;background:#eee url("images/ui-bg_highlight-soft_100_eeeeee_1x100.png") 50% top repeat-x;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #e78f08;background:#f6a828 url("images/ui-bg_gloss-wave_35_f6a828_500x100.png") 50% 50% repeat-x;color:#fff;font-weight:bold}.ui-widget-header a{color:#fff}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#f6f6f6 url("images/ui-bg_glass_100_f6f6f6_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#1c94c4}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#1c94c4;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #fbcb09;background:#fdf5ce url("images/ui-bg_glass_100_fdf5ce_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#c77405}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#c77405;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #fbd850;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#eb8f00}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#eb8f00;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fed22f;background:#ffe45c url("images/ui-bg_highlight-soft_75_ffe45c_1x100.png") 50% top repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#b81900 url("images/ui-bg_diagonals-thick_18_b81900_40x40.png") 50% 50% repeat;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_228ef1_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_ffd27a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#666 url("images/ui-bg_diagonals-thick_20_666666_40x40.png") 50% 50% repeat;opacity:.5;filter:Alpha(Opacity=50)}.ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url("images/ui-bg_flat_10_000000_40x100.png") 50% 50% repeat-x;opacity:.2;filter:Alpha(Opacity=20);border-radius:5px}
static/js/jquery-ui/jquery-ui.min.js ADDED
The diff for this file is too large to render. See raw diff
 
static/js/jquery-ui/jquery-ui.structure.css ADDED
@@ -0,0 +1,833 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * jQuery UI CSS Framework 1.11.2
3
+ * http://jqueryui.com
4
+ *
5
+ * Copyright 2014 jQuery Foundation and other contributors
6
+ * Released under the MIT license.
7
+ * http://jquery.org/license
8
+ *
9
+ * http://api.jqueryui.com/category/theming/
10
+ */
11
+
12
+ /* Layout helpers
13
+ ----------------------------------*/
14
+ .ui-helper-hidden {
15
+ display: none;
16
+ }
17
+ .ui-helper-hidden-accessible {
18
+ border: 0;
19
+ clip: rect(0 0 0 0);
20
+ height: 1px;
21
+ margin: -1px;
22
+ overflow: hidden;
23
+ padding: 0;
24
+ position: absolute;
25
+ width: 1px;
26
+ }
27
+ .ui-helper-reset {
28
+ margin: 0;
29
+ padding: 0;
30
+ border: 0;
31
+ outline: 0;
32
+ line-height: 1.3;
33
+ text-decoration: none;
34
+ font-size: 100%;
35
+ list-style: none;
36
+ }
37
+ .ui-helper-clearfix:before,
38
+ .ui-helper-clearfix:after {
39
+ content: "";
40
+ display: table;
41
+ border-collapse: collapse;
42
+ }
43
+ .ui-helper-clearfix:after {
44
+ clear: both;
45
+ }
46
+ .ui-helper-clearfix {
47
+ min-height: 0; /* support: IE7 */
48
+ }
49
+ .ui-helper-zfix {
50
+ width: 100%;
51
+ height: 100%;
52
+ top: 0;
53
+ left: 0;
54
+ position: absolute;
55
+ opacity: 0;
56
+ filter:Alpha(Opacity=0); /* support: IE8 */
57
+ }
58
+
59
+ .ui-front {
60
+ z-index: 100;
61
+ }
62
+
63
+
64
+ /* Interaction Cues
65
+ ----------------------------------*/
66
+ .ui-state-disabled {
67
+ cursor: default !important;
68
+ }
69
+
70
+
71
+ /* Icons
72
+ ----------------------------------*/
73
+
74
+ /* states and images */
75
+ .ui-icon {
76
+ display: block;
77
+ text-indent: -99999px;
78
+ overflow: hidden;
79
+ background-repeat: no-repeat;
80
+ }
81
+
82
+
83
+ /* Misc visuals
84
+ ----------------------------------*/
85
+
86
+ /* Overlays */
87
+ .ui-widget-overlay {
88
+ position: fixed;
89
+ top: 0;
90
+ left: 0;
91
+ width: 100%;
92
+ height: 100%;
93
+ }
94
+ .ui-draggable-handle {
95
+ -ms-touch-action: none;
96
+ touch-action: none;
97
+ }
98
+ .ui-resizable {
99
+ position: relative;
100
+ }
101
+ .ui-resizable-handle {
102
+ position: absolute;
103
+ font-size: 0.1px;
104
+ display: block;
105
+ -ms-touch-action: none;
106
+ touch-action: none;
107
+ }
108
+ .ui-resizable-disabled .ui-resizable-handle,
109
+ .ui-resizable-autohide .ui-resizable-handle {
110
+ display: none;
111
+ }
112
+ .ui-resizable-n {
113
+ cursor: n-resize;
114
+ height: 7px;
115
+ width: 100%;
116
+ top: -5px;
117
+ left: 0;
118
+ }
119
+ .ui-resizable-s {
120
+ cursor: s-resize;
121
+ height: 7px;
122
+ width: 100%;
123
+ bottom: -5px;
124
+ left: 0;
125
+ }
126
+ .ui-resizable-e {
127
+ cursor: e-resize;
128
+ width: 7px;
129
+ right: -5px;
130
+ top: 0;
131
+ height: 100%;
132
+ }
133
+ .ui-resizable-w {
134
+ cursor: w-resize;
135
+ width: 7px;
136
+ left: -5px;
137
+ top: 0;
138
+ height: 100%;
139
+ }
140
+ .ui-resizable-se {
141
+ cursor: se-resize;
142
+ width: 12px;
143
+ height: 12px;
144
+ right: 1px;
145
+ bottom: 1px;
146
+ }
147
+ .ui-resizable-sw {
148
+ cursor: sw-resize;
149
+ width: 9px;
150
+ height: 9px;
151
+ left: -5px;
152
+ bottom: -5px;
153
+ }
154
+ .ui-resizable-nw {
155
+ cursor: nw-resize;
156
+ width: 9px;
157
+ height: 9px;
158
+ left: -5px;
159
+ top: -5px;
160
+ }
161
+ .ui-resizable-ne {
162
+ cursor: ne-resize;
163
+ width: 9px;
164
+ height: 9px;
165
+ right: -5px;
166
+ top: -5px;
167
+ }
168
+ .ui-selectable {
169
+ -ms-touch-action: none;
170
+ touch-action: none;
171
+ }
172
+ .ui-selectable-helper {
173
+ position: absolute;
174
+ z-index: 100;
175
+ border: 1px dotted black;
176
+ }
177
+ .ui-sortable-handle {
178
+ -ms-touch-action: none;
179
+ touch-action: none;
180
+ }
181
+ .ui-accordion .ui-accordion-header {
182
+ display: block;
183
+ cursor: pointer;
184
+ position: relative;
185
+ margin: 2px 0 0 0;
186
+ padding: .5em .5em .5em .7em;
187
+ min-height: 0; /* support: IE7 */
188
+ font-size: 100%;
189
+ }
190
+ .ui-accordion .ui-accordion-icons {
191
+ padding-left: 2.2em;
192
+ }
193
+ .ui-accordion .ui-accordion-icons .ui-accordion-icons {
194
+ padding-left: 2.2em;
195
+ }
196
+ .ui-accordion .ui-accordion-header .ui-accordion-header-icon {
197
+ position: absolute;
198
+ left: .5em;
199
+ top: 50%;
200
+ margin-top: -8px;
201
+ }
202
+ .ui-accordion .ui-accordion-content {
203
+ padding: 1em 2.2em;
204
+ border-top: 0;
205
+ overflow: auto;
206
+ }
207
+ .ui-autocomplete {
208
+ position: absolute;
209
+ top: 0;
210
+ left: 0;
211
+ cursor: default;
212
+ }
213
+ .ui-button {
214
+ display: inline-block;
215
+ position: relative;
216
+ padding: 0;
217
+ line-height: normal;
218
+ margin-right: .1em;
219
+ cursor: pointer;
220
+ vertical-align: middle;
221
+ text-align: center;
222
+ overflow: visible; /* removes extra width in IE */
223
+ }
224
+ .ui-button,
225
+ .ui-button:link,
226
+ .ui-button:visited,
227
+ .ui-button:hover,
228
+ .ui-button:active {
229
+ text-decoration: none;
230
+ }
231
+ /* to make room for the icon, a width needs to be set here */
232
+ .ui-button-icon-only {
233
+ width: 2.2em;
234
+ }
235
+ /* button elements seem to need a little more width */
236
+ button.ui-button-icon-only {
237
+ width: 2.4em;
238
+ }
239
+ .ui-button-icons-only {
240
+ width: 3.4em;
241
+ }
242
+ button.ui-button-icons-only {
243
+ width: 3.7em;
244
+ }
245
+
246
+ /* button text element */
247
+ .ui-button .ui-button-text {
248
+ display: block;
249
+ line-height: normal;
250
+ }
251
+ .ui-button-text-only .ui-button-text {
252
+ padding: .4em 1em;
253
+ }
254
+ .ui-button-icon-only .ui-button-text,
255
+ .ui-button-icons-only .ui-button-text {
256
+ padding: .4em;
257
+ text-indent: -9999999px;
258
+ }
259
+ .ui-button-text-icon-primary .ui-button-text,
260
+ .ui-button-text-icons .ui-button-text {
261
+ padding: .4em 1em .4em 2.1em;
262
+ }
263
+ .ui-button-text-icon-secondary .ui-button-text,
264
+ .ui-button-text-icons .ui-button-text {
265
+ padding: .4em 2.1em .4em 1em;
266
+ }
267
+ .ui-button-text-icons .ui-button-text {
268
+ padding-left: 2.1em;
269
+ padding-right: 2.1em;
270
+ }
271
+ /* no icon support for input elements, provide padding by default */
272
+ input.ui-button {
273
+ padding: .4em 1em;
274
+ }
275
+
276
+ /* button icon element(s) */
277
+ .ui-button-icon-only .ui-icon,
278
+ .ui-button-text-icon-primary .ui-icon,
279
+ .ui-button-text-icon-secondary .ui-icon,
280
+ .ui-button-text-icons .ui-icon,
281
+ .ui-button-icons-only .ui-icon {
282
+ position: absolute;
283
+ top: 50%;
284
+ margin-top: -8px;
285
+ }
286
+ .ui-button-icon-only .ui-icon {
287
+ left: 50%;
288
+ margin-left: -8px;
289
+ }
290
+ .ui-button-text-icon-primary .ui-button-icon-primary,
291
+ .ui-button-text-icons .ui-button-icon-primary,
292
+ .ui-button-icons-only .ui-button-icon-primary {
293
+ left: .5em;
294
+ }
295
+ .ui-button-text-icon-secondary .ui-button-icon-secondary,
296
+ .ui-button-text-icons .ui-button-icon-secondary,
297
+ .ui-button-icons-only .ui-button-icon-secondary {
298
+ right: .5em;
299
+ }
300
+
301
+ /* button sets */
302
+ .ui-buttonset {
303
+ margin-right: 7px;
304
+ }
305
+ .ui-buttonset .ui-button {
306
+ margin-left: 0;
307
+ margin-right: -.3em;
308
+ }
309
+
310
+ /* workarounds */
311
+ /* reset extra padding in Firefox, see h5bp.com/l */
312
+ input.ui-button::-moz-focus-inner,
313
+ button.ui-button::-moz-focus-inner {
314
+ border: 0;
315
+ padding: 0;
316
+ }
317
+ .ui-datepicker {
318
+ width: 17em;
319
+ padding: .2em .2em 0;
320
+ display: none;
321
+ }
322
+ .ui-datepicker .ui-datepicker-header {
323
+ position: relative;
324
+ padding: .2em 0;
325
+ }
326
+ .ui-datepicker .ui-datepicker-prev,
327
+ .ui-datepicker .ui-datepicker-next {
328
+ position: absolute;
329
+ top: 2px;
330
+ width: 1.8em;
331
+ height: 1.8em;
332
+ }
333
+ .ui-datepicker .ui-datepicker-prev-hover,
334
+ .ui-datepicker .ui-datepicker-next-hover {
335
+ top: 1px;
336
+ }
337
+ .ui-datepicker .ui-datepicker-prev {
338
+ left: 2px;
339
+ }
340
+ .ui-datepicker .ui-datepicker-next {
341
+ right: 2px;
342
+ }
343
+ .ui-datepicker .ui-datepicker-prev-hover {
344
+ left: 1px;
345
+ }
346
+ .ui-datepicker .ui-datepicker-next-hover {
347
+ right: 1px;
348
+ }
349
+ .ui-datepicker .ui-datepicker-prev span,
350
+ .ui-datepicker .ui-datepicker-next span {
351
+ display: block;
352
+ position: absolute;
353
+ left: 50%;
354
+ margin-left: -8px;
355
+ top: 50%;
356
+ margin-top: -8px;
357
+ }
358
+ .ui-datepicker .ui-datepicker-title {
359
+ margin: 0 2.3em;
360
+ line-height: 1.8em;
361
+ text-align: center;
362
+ }
363
+ .ui-datepicker .ui-datepicker-title select {
364
+ font-size: 1em;
365
+ margin: 1px 0;
366
+ }
367
+ .ui-datepicker select.ui-datepicker-month,
368
+ .ui-datepicker select.ui-datepicker-year {
369
+ width: 45%;
370
+ }
371
+ .ui-datepicker table {
372
+ width: 100%;
373
+ font-size: .9em;
374
+ border-collapse: collapse;
375
+ margin: 0 0 .4em;
376
+ }
377
+ .ui-datepicker th {
378
+ padding: .7em .3em;
379
+ text-align: center;
380
+ font-weight: bold;
381
+ border: 0;
382
+ }
383
+ .ui-datepicker td {
384
+ border: 0;
385
+ padding: 1px;
386
+ }
387
+ .ui-datepicker td span,
388
+ .ui-datepicker td a {
389
+ display: block;
390
+ padding: .2em;
391
+ text-align: right;
392
+ text-decoration: none;
393
+ }
394
+ .ui-datepicker .ui-datepicker-buttonpane {
395
+ background-image: none;
396
+ margin: .7em 0 0 0;
397
+ padding: 0 .2em;
398
+ border-left: 0;
399
+ border-right: 0;
400
+ border-bottom: 0;
401
+ }
402
+ .ui-datepicker .ui-datepicker-buttonpane button {
403
+ float: right;
404
+ margin: .5em .2em .4em;
405
+ cursor: pointer;
406
+ padding: .2em .6em .3em .6em;
407
+ width: auto;
408
+ overflow: visible;
409
+ }
410
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
411
+ float: left;
412
+ }
413
+
414
+ /* with multiple calendars */
415
+ .ui-datepicker.ui-datepicker-multi {
416
+ width: auto;
417
+ }
418
+ .ui-datepicker-multi .ui-datepicker-group {
419
+ float: left;
420
+ }
421
+ .ui-datepicker-multi .ui-datepicker-group table {
422
+ width: 95%;
423
+ margin: 0 auto .4em;
424
+ }
425
+ .ui-datepicker-multi-2 .ui-datepicker-group {
426
+ width: 50%;
427
+ }
428
+ .ui-datepicker-multi-3 .ui-datepicker-group {
429
+ width: 33.3%;
430
+ }
431
+ .ui-datepicker-multi-4 .ui-datepicker-group {
432
+ width: 25%;
433
+ }
434
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
435
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
436
+ border-left-width: 0;
437
+ }
438
+ .ui-datepicker-multi .ui-datepicker-buttonpane {
439
+ clear: left;
440
+ }
441
+ .ui-datepicker-row-break {
442
+ clear: both;
443
+ width: 100%;
444
+ font-size: 0;
445
+ }
446
+
447
+ /* RTL support */
448
+ .ui-datepicker-rtl {
449
+ direction: rtl;
450
+ }
451
+ .ui-datepicker-rtl .ui-datepicker-prev {
452
+ right: 2px;
453
+ left: auto;
454
+ }
455
+ .ui-datepicker-rtl .ui-datepicker-next {
456
+ left: 2px;
457
+ right: auto;
458
+ }
459
+ .ui-datepicker-rtl .ui-datepicker-prev:hover {
460
+ right: 1px;
461
+ left: auto;
462
+ }
463
+ .ui-datepicker-rtl .ui-datepicker-next:hover {
464
+ left: 1px;
465
+ right: auto;
466
+ }
467
+ .ui-datepicker-rtl .ui-datepicker-buttonpane {
468
+ clear: right;
469
+ }
470
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button {
471
+ float: left;
472
+ }
473
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
474
+ .ui-datepicker-rtl .ui-datepicker-group {
475
+ float: right;
476
+ }
477
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
478
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
479
+ border-right-width: 0;
480
+ border-left-width: 1px;
481
+ }
482
+ .ui-dialog {
483
+ overflow: hidden;
484
+ position: absolute;
485
+ top: 0;
486
+ left: 0;
487
+ padding: .2em;
488
+ outline: 0;
489
+ }
490
+ .ui-dialog .ui-dialog-titlebar {
491
+ padding: .4em 1em;
492
+ position: relative;
493
+ }
494
+ .ui-dialog .ui-dialog-title {
495
+ float: left;
496
+ margin: .1em 0;
497
+ white-space: nowrap;
498
+ width: 90%;
499
+ overflow: hidden;
500
+ text-overflow: ellipsis;
501
+ }
502
+ .ui-dialog .ui-dialog-titlebar-close {
503
+ position: absolute;
504
+ right: .3em;
505
+ top: 50%;
506
+ width: 20px;
507
+ margin: -10px 0 0 0;
508
+ padding: 1px;
509
+ height: 20px;
510
+ }
511
+ .ui-dialog .ui-dialog-content {
512
+ position: relative;
513
+ border: 0;
514
+ padding: .5em 1em;
515
+ background: none;
516
+ overflow: auto;
517
+ }
518
+ .ui-dialog .ui-dialog-buttonpane {
519
+ text-align: left;
520
+ border-width: 1px 0 0 0;
521
+ background-image: none;
522
+ margin-top: .5em;
523
+ padding: .3em 1em .5em .4em;
524
+ }
525
+ .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
526
+ float: right;
527
+ }
528
+ .ui-dialog .ui-dialog-buttonpane button {
529
+ margin: .5em .4em .5em 0;
530
+ cursor: pointer;
531
+ }
532
+ .ui-dialog .ui-resizable-se {
533
+ width: 12px;
534
+ height: 12px;
535
+ right: -5px;
536
+ bottom: -5px;
537
+ background-position: 16px 16px;
538
+ }
539
+ .ui-draggable .ui-dialog-titlebar {
540
+ cursor: move;
541
+ }
542
+ .ui-menu {
543
+ list-style: none;
544
+ padding: 0;
545
+ margin: 0;
546
+ display: block;
547
+ outline: none;
548
+ }
549
+ .ui-menu .ui-menu {
550
+ position: absolute;
551
+ }
552
+ .ui-menu .ui-menu-item {
553
+ position: relative;
554
+ margin: 0;
555
+ padding: 3px 1em 3px .4em;
556
+ cursor: pointer;
557
+ min-height: 0; /* support: IE7 */
558
+ /* support: IE10, see #8844 */
559
+ list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
560
+ }
561
+ .ui-menu .ui-menu-divider {
562
+ margin: 5px 0;
563
+ height: 0;
564
+ font-size: 0;
565
+ line-height: 0;
566
+ border-width: 1px 0 0 0;
567
+ }
568
+ .ui-menu .ui-state-focus,
569
+ .ui-menu .ui-state-active {
570
+ margin: -1px;
571
+ }
572
+
573
+ /* icon support */
574
+ .ui-menu-icons {
575
+ position: relative;
576
+ }
577
+ .ui-menu-icons .ui-menu-item {
578
+ padding-left: 2em;
579
+ }
580
+
581
+ /* left-aligned */
582
+ .ui-menu .ui-icon {
583
+ position: absolute;
584
+ top: 0;
585
+ bottom: 0;
586
+ left: .2em;
587
+ margin: auto 0;
588
+ }
589
+
590
+ /* right-aligned */
591
+ .ui-menu .ui-menu-icon {
592
+ left: auto;
593
+ right: 0;
594
+ }
595
+ .ui-progressbar {
596
+ height: 2em;
597
+ text-align: left;
598
+ overflow: hidden;
599
+ }
600
+ .ui-progressbar .ui-progressbar-value {
601
+ margin: -1px;
602
+ height: 100%;
603
+ }
604
+ .ui-progressbar .ui-progressbar-overlay {
605
+ background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
606
+ height: 100%;
607
+ filter: alpha(opacity=25); /* support: IE8 */
608
+ opacity: 0.25;
609
+ }
610
+ .ui-progressbar-indeterminate .ui-progressbar-value {
611
+ background-image: none;
612
+ }
613
+ .ui-selectmenu-menu {
614
+ padding: 0;
615
+ margin: 0;
616
+ position: absolute;
617
+ top: 0;
618
+ left: 0;
619
+ display: none;
620
+ }
621
+ .ui-selectmenu-menu .ui-menu {
622
+ overflow: auto;
623
+ /* Support: IE7 */
624
+ overflow-x: hidden;
625
+ padding-bottom: 1px;
626
+ }
627
+ .ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
628
+ font-size: 1em;
629
+ font-weight: bold;
630
+ line-height: 1.5;
631
+ padding: 2px 0.4em;
632
+ margin: 0.5em 0 0 0;
633
+ height: auto;
634
+ border: 0;
635
+ }
636
+ .ui-selectmenu-open {
637
+ display: block;
638
+ }
639
+ .ui-selectmenu-button {
640
+ display: inline-block;
641
+ overflow: hidden;
642
+ position: relative;
643
+ text-decoration: none;
644
+ cursor: pointer;
645
+ }
646
+ .ui-selectmenu-button span.ui-icon {
647
+ right: 0.5em;
648
+ left: auto;
649
+ margin-top: -8px;
650
+ position: absolute;
651
+ top: 50%;
652
+ }
653
+ .ui-selectmenu-button span.ui-selectmenu-text {
654
+ text-align: left;
655
+ padding: 0.4em 2.1em 0.4em 1em;
656
+ display: block;
657
+ line-height: 1.4;
658
+ overflow: hidden;
659
+ text-overflow: ellipsis;
660
+ white-space: nowrap;
661
+ }
662
+ .ui-slider {
663
+ position: relative;
664
+ text-align: left;
665
+ }
666
+ .ui-slider .ui-slider-handle {
667
+ position: absolute;
668
+ z-index: 2;
669
+ width: 1.2em;
670
+ height: 1.2em;
671
+ cursor: default;
672
+ -ms-touch-action: none;
673
+ touch-action: none;
674
+ }
675
+ .ui-slider .ui-slider-range {
676
+ position: absolute;
677
+ z-index: 1;
678
+ font-size: .7em;
679
+ display: block;
680
+ border: 0;
681
+ background-position: 0 0;
682
+ }
683
+
684
+ /* support: IE8 - See #6727 */
685
+ .ui-slider.ui-state-disabled .ui-slider-handle,
686
+ .ui-slider.ui-state-disabled .ui-slider-range {
687
+ filter: inherit;
688
+ }
689
+
690
+ .ui-slider-horizontal {
691
+ height: .8em;
692
+ }
693
+ .ui-slider-horizontal .ui-slider-handle {
694
+ top: -.3em;
695
+ margin-left: -.6em;
696
+ }
697
+ .ui-slider-horizontal .ui-slider-range {
698
+ top: 0;
699
+ height: 100%;
700
+ }
701
+ .ui-slider-horizontal .ui-slider-range-min {
702
+ left: 0;
703
+ }
704
+ .ui-slider-horizontal .ui-slider-range-max {
705
+ right: 0;
706
+ }
707
+
708
+ .ui-slider-vertical {
709
+ width: .8em;
710
+ height: 100px;
711
+ }
712
+ .ui-slider-vertical .ui-slider-handle {
713
+ left: -.3em;
714
+ margin-left: 0;
715
+ margin-bottom: -.6em;
716
+ }
717
+ .ui-slider-vertical .ui-slider-range {
718
+ left: 0;
719
+ width: 100%;
720
+ }
721
+ .ui-slider-vertical .ui-slider-range-min {
722
+ bottom: 0;
723
+ }
724
+ .ui-slider-vertical .ui-slider-range-max {
725
+ top: 0;
726
+ }
727
+ .ui-spinner {
728
+ position: relative;
729
+ display: inline-block;
730
+ overflow: hidden;
731
+ padding: 0;
732
+ vertical-align: middle;
733
+ }
734
+ .ui-spinner-input {
735
+ border: none;
736
+ background: none;
737
+ color: inherit;
738
+ padding: 0;
739
+ margin: .2em 0;
740
+ vertical-align: middle;
741
+ margin-left: .4em;
742
+ margin-right: 22px;
743
+ }
744
+ .ui-spinner-button {
745
+ width: 16px;
746
+ height: 50%;
747
+ font-size: .5em;
748
+ padding: 0;
749
+ margin: 0;
750
+ text-align: center;
751
+ position: absolute;
752
+ cursor: default;
753
+ display: block;
754
+ overflow: hidden;
755
+ right: 0;
756
+ }
757
+ /* more specificity required here to override default borders */
758
+ .ui-spinner a.ui-spinner-button {
759
+ border-top: none;
760
+ border-bottom: none;
761
+ border-right: none;
762
+ }
763
+ /* vertically center icon */
764
+ .ui-spinner .ui-icon {
765
+ position: absolute;
766
+ margin-top: -8px;
767
+ top: 50%;
768
+ left: 0;
769
+ }
770
+ .ui-spinner-up {
771
+ top: 0;
772
+ }
773
+ .ui-spinner-down {
774
+ bottom: 0;
775
+ }
776
+
777
+ /* TR overrides */
778
+ .ui-spinner .ui-icon-triangle-1-s {
779
+ /* need to fix icons sprite */
780
+ background-position: -65px -16px;
781
+ }
782
+ .ui-tabs {
783
+ position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
784
+ padding: .2em;
785
+ }
786
+ .ui-tabs .ui-tabs-nav {
787
+ margin: 0;
788
+ padding: .2em .2em 0;
789
+ }
790
+ .ui-tabs .ui-tabs-nav li {
791
+ list-style: none;
792
+ float: left;
793
+ position: relative;
794
+ top: 0;
795
+ margin: 1px .2em 0 0;
796
+ border-bottom-width: 0;
797
+ padding: 0;
798
+ white-space: nowrap;
799
+ }
800
+ .ui-tabs .ui-tabs-nav .ui-tabs-anchor {
801
+ float: left;
802
+ padding: .5em 1em;
803
+ text-decoration: none;
804
+ }
805
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active {
806
+ margin-bottom: -1px;
807
+ padding-bottom: 1px;
808
+ }
809
+ .ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
810
+ .ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
811
+ .ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
812
+ cursor: text;
813
+ }
814
+ .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
815
+ cursor: pointer;
816
+ }
817
+ .ui-tabs .ui-tabs-panel {
818
+ display: block;
819
+ border-width: 0;
820
+ padding: 1em 1.4em;
821
+ background: none;
822
+ }
823
+ .ui-tooltip {
824
+ padding: 8px;
825
+ position: absolute;
826
+ z-index: 9999;
827
+ max-width: 300px;
828
+ -webkit-box-shadow: 0 0 5px #aaa;
829
+ box-shadow: 0 0 5px #aaa;
830
+ }
831
+ body .ui-tooltip {
832
+ border-width: 2px;
833
+ }