Changeset - dd8f0ba9c517
[Not reviewed]
gulp/config/index.js
Show inline comments
 
new file 100644
 
const templatePath = 'pinaxcon/templates/';
 
const staticRoot = 'static/';
 
const staticSource = staticRoot + 'src/';
 
const staticBuild = staticRoot + '_build/';
 
const staticDist = staticRoot + 'dist/';
 
const npmRoot = 'node_modules/';
 

	
 

	
 
exports = module.exports = {
 
    staticUrlRoot: '/site_media/static',
 
    paths: {
 
        source: staticSource,
 
        build: staticBuild,
 
        dist: staticDist
 
    },
 
    watch: {
 
        styles: [
 
            staticSource + 'less/**/*.less'
 
        ],
 
        scripts: [
 
            staticSource + 'js/**/*.js'
 
        ]
 
    },
 
    templates: {
 
        destination: templatePath,
 
        manifestPath: staticBuild + 'manifest.json',
 
        scriptsTemplate: staticSource + 'hbs/_scripts.hbs',
 
        stylesTemplate: staticSource + 'hbs/_styles.hbs',
 
    },
 
    fonts: {
 
        sources: [
 
            npmRoot + 'font-awesome/fonts/**.*',
 
            npmRoot + 'bootstrap/fonts/**.*',
 
        ],
 
        dist: staticDist + 'fonts/'
 
    },
 
    styles: {
 
        source: staticSource + 'less/site.less',
 
        dist: staticBuild + 'css/',
 
        npmPaths: [
 
            npmRoot + 'bootstrap/less',
 
            npmRoot + 'font-awesome/less',
 
            npmRoot
 
        ]
 
    },
 
    scripts: {
 
        main: staticSource + 'js/site.js',
 
        source: [
 
            staticSource + 'js/**/*'
 
        ],
 
        dist: staticBuild + 'js/'
 
    },
 
    images: {
 
        sources: [
 
            staticSource + 'images/**.*'
 
        ],
 
        dist: staticDist + 'images/'
 
    },
 
    manifest: {
 
        source: [
 
            staticBuild + '**/*.css',
 
            staticBuild + '**/*.js'
 
        ]
 
    },
 
    test: {
 
        all: 'test/**/*.test.js',
 
        req: 'test/req/*.test.js',
 
        components: 'test/components/*.test.js'
 
      },
 
    xo: {
 
       source: [
 
         'tasks/**/*.js',
 
         staticSource + '**/*.js'
 
       ]
 
   },
 
   optimize: {
 
     css: {
 
       source: staticDist + 'css/*.css',
 
       options: {},
 
       dist: staticDist + 'css/'
 
     },
 
     js: {
 
       source: staticDist + 'js/*.js',
 
       options: {},
 
       dist: staticDist + 'js/'
 
     }
 
   }
 
};
gulp/tasks/browserify.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const path = require('path');
 
const browserify = require('browserify');
 
const babelify   = require('babelify');
 
const source     = require('vinyl-source-stream');
 

	
 
/**
 
 * Module body / Expose
 
 */
 
module.exports = (entry, config) => {
 
  config = config || {};
 
  const built = browserify(entry)
 
    .transform(babelify);
 
  return built.bundle().pipe(source(path.basename(entry)));
 
};
gulp/tasks/clean.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const del = require('del');
 

	
 
/**
 
 * Module body / Expose
 
 */
 
module.exports = (entry, config) => {
 
  config = config || {};
 
  return del(entry, config);
 
};
gulp/tasks/cleanup.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const cleanup = require('gulp-cleanup');
 

	
 
/**
 
 * Module body / Expose
 
 */
 
module.exports = config => {
 
  config = config || {};
 
  return cleanup();
 
};
gulp/tasks/copy.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const gulp = require('gulp');
 

	
 
/**
 
 * Module body
 
 */
 
module.exports = (entry, config) => {
 
  config = config || {};
 
  return gulp.src(entry, config);
 
};
gulp/tasks/css.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const gulp   = require('gulp');
 
const less   = require('gulp-less');
 
const prefix = require('gulp-autoprefixer');
 

	
 
/**
 
 * Module body
 
 */
 
module.exports = (entry, config) => {
 
  config = config || {};
 
  config.less = config.less || {};
 
  config.autoprefixer = config.autoprefixer || {};
 

	
 
  return gulp.src(entry)
 
    .pipe(less(config.less))
 
    .pipe(prefix(config.autoprefixer));
 
};
gulp/tasks/handlebars.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const fs = require('fs');
 
const gulp  = require('gulp');
 
const handlebars = require('gulp-compile-handlebars');
 
const path = require('path');
 
const rename = require('gulp-rename');
 

	
 
/**
 
 * Module body / Expose
 
 */
 
module.exports = (manifestPath, scriptSourceTemplate, staticRoot) => {
 
  const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
 
  const handlebarOpts = {
 
            helpers: {
 
                assetPath: (path, context) => {
 
                    return [staticRoot, context.data.root[path]].join('/');
 
                }
 
            }
 
        };
 
  const outputFile = path.basename(scriptSourceTemplate).replace('.hbs', '.html');
 
  return gulp.src(scriptSourceTemplate)
 
      .pipe(handlebars(manifest, handlebarOpts))
 
      .pipe(rename(outputFile));
 
};
gulp/tasks/index.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const path    = require('path');
 
const modules = {};
 

	
 
/**
 
 * Module body
 
 */
 
const load = function load(name) {
 
  return require(path.resolve(__dirname, name));
 
};
 

	
 
const tasks = [
 
  'clean',
 
  'css',
 
  'browserify',
 
  'test',
 
  'xo',
 
  'rev',
 
  'manifest',
 
  'cleanup',
 
  'copy',
 
  'handlebars',
 
  'optimizejs',
 
  'optimizecss'
 
];
 

	
 
tasks.forEach(task => {
 
  modules[task] = load(task);
 
});
 

	
 
/**
 
 * Expose
 
 */
 
exports = module.exports = modules;
gulp/tasks/manifest.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const rev = require('gulp-rev');
 

	
 
/**
 
 * Module body / Expose
 
 */
 
module.exports = config => {
 
  config = config || {};
 
  config.path = config.path || 'manifest.json';
 
  return rev.manifest(config);
 
};
gulp/tasks/optimizecss.js
Show inline comments
 
new file 100644
 
const gulp = require('gulp');
 
const nano = require('gulp-cssnano');
 
const size = require('gulp-size');
 

	
 

	
 
module.exports = (source, options, dist) => {
 
    return gulp.src(source)
 
        .pipe(nano(options))
 
        .pipe(gulp.dest(dist))
 
        .pipe(size());
 
};
gulp/tasks/optimizejs.js
Show inline comments
 
new file 100644
 
const gulp   = require('gulp');
 
const uglify = require('gulp-uglify');
 
const size   = require('gulp-size');
 

	
 

	
 
module.exports = (source, options, dist) => {
 
    return gulp.src(source)
 
        .pipe(uglify(options))
 
        .pipe(gulp.dest(dist))
 
        .pipe(size());
 
};
gulp/tasks/rev.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const gulp = require('gulp');
 
const rev  = require('gulp-rev');
 

	
 
/**
 
 * Module body / Expose
 
 */
 
module.exports = (entry, config) => {
 
  config = config || {};
 
  return gulp.src(entry)
 
    .pipe(rev());
 
};
gulp/tasks/test.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const gulp  = require('gulp');
 
const mocha = require('gulp-mocha');
 

	
 
/**
 
 * Module body / Expose
 
 */
 
module.exports = (entry, config) => {
 
  config = config || {};
 
  return gulp.src(entry, config)
 
    .pipe(mocha({
 
      require: [
 
        'babel-register'
 
      ]
 
    }));
 
};
gulp/tasks/xo.js
Show inline comments
 
new file 100644
 
/**
 
 * Dependencies
 
 */
 
const gulp = require('gulp');
 
const xo   = require('gulp-xo');
 

	
 
/**
 
 * Module body / Expose
 
 */
 
module.exports = (entry, config) => {
 
  config = config || {};
 
  return gulp.src(entry)
 
    .pipe(xo());
 
};
gulpfile.js
Show inline comments
 
new file 100644
 
/**
 
 * Setup
 
 */
 
process.title = process.title || 'gulp';
 

	
 
/**
 
 * Dependencies
 
 */
 
const path = require('path');
 
const gulp = require('gulp');
 

	
 
/**
 
 * Setup
 
 */
 
const tasks = require(path.resolve(__dirname, 'gulp/tasks'));
 
const config = require(path.resolve(__dirname, 'gulp/config'));
 

	
 
/**
 
 * Tasks
 
 */
 
gulp.task('build:clean', function buildClean() {
 
  tasks.clean(config.paths.build);
 
  return tasks.clean(config.paths.dist);
 
});
 

	
 
gulp.task('build:styles', function buildStyles() {
 
  return tasks.css(config.styles.source, {less: {paths: config.styles.npmPaths}})
 
    .pipe(gulp.dest(config.styles.dist));
 
});
 

	
 
gulp.task('build:js', function buildJS() {
 
  return tasks.browserify(config.scripts.main)
 
    .pipe(gulp.dest(config.scripts.dist));
 
});
 

	
 
gulp.task('manifest', function manifest() {
 
  return tasks.rev(config.manifest.source)
 
    .pipe(gulp.dest(config.paths.dist))
 
    .pipe(tasks.manifest())
 
    .pipe(gulp.dest(config.paths.build));
 
});
 

	
 
gulp.task('build:copy-icons', function() {

 
    return tasks.copy(config.fonts.sources)
 
        .pipe(gulp.dest(config.fonts.dist));

 
});
 
gulp.task('build:copy-images', function() {
 
    return tasks.copy(config.images.sources).pipe(gulp.dest(config.images.dist));
 
});
 

	
 
gulp.task('build:script-include', function () {
 
    return tasks.handlebars(config.templates.manifestPath, config.templates.scriptsTemplate, config.staticUrlRoot)
 
        .pipe(gulp.dest(config.templates.destination));
 
});
 

	
 
gulp.task('build:style-include', function () {
 
    return tasks.handlebars(config.templates.manifestPath, config.templates.stylesTemplate, config.staticUrlRoot)
 
        .pipe(gulp.dest(config.templates.destination));
 
});
 

	
 
gulp.task('test', function test() {
 
  return tasks.test(config.test.all);
 
});
 

	
 
gulp.task('test:req', function testReq() {
 
  return tasks.test(config.test.req);
 
});
 

	
 
gulp.task('test:components', function testComponents() {
 
  return tasks.test(config.test.components);
 
});
 

	
 
gulp.task('xo', function xo() {
 
  return tasks.xo(config.xo.source);
 
});
 

	
 
gulp.task('optimize:js', function () {
 
  return tasks.optimizejs(config.optimize.js.source, config.optimize.js.options, config.optimize.js.dist);
 
});
 

	
 
gulp.task('optimize:css', function () {
 
  return tasks.optimizecss(config.optimize.css.source, config.optimize.css.options, config.optimize.css.dist);
 
});
 

	
 
/**
 
 * Compound Tasks
 
 */
 
gulp.task('watch', function watch() {
 
  gulp.watch(config.watch.styles, gulp.series(['build:styles', 'manifest', 'build:style-include']));
 
  gulp.watch(config.watch.scripts, gulp.series(['build:js', 'manifest', 'build:script-include']));
 
});
 

	
 
gulp.task('build', gulp.series([
 
  'xo',
 
  'build:clean',
 
  gulp.parallel([
 
    'build:styles',
 
    'build:js',
 
    'build:copy-icons',
 
    'build:copy-images'
 
  ]),
 
  'manifest',
 
  'build:script-include',
 
  'build:style-include'
 
]));
 

	
 
gulp.task('default', gulp.series([
 
  'build',
 
  'watch'
 
]));
 

	
 
gulp.task('release', gulp.series([
 
    'build',
 
    'optimize:js',
 
    'optimize:css'
 
]));
package.json
Show inline comments
...
 
@@ -3,22 +3,98 @@
 
    "type": "git",
 
    "url": "https://github.com/pinax/pinax-project"
 
    "url": "https://github.com/pinax/PinaxCon"
 
  },
 
  "scripts": {
 
     "build": "./node_modules/.bin/webpack --config=static/webpack.config.js -p",
 
     "watch": "./node_modules/.bin/webpack --config=static/webpack.config.js -w"
 
    "build": "NODE_PATH=. ./node_modules/.bin/gulp release",
 
    "watch": "NODE_PATH=. ./node_modules/.bin/gulp",
 
    "lint": "NODE_PATH=. ./node_modules/.bin/gulp xo",
 
    "test": "./node_modules/.bin/gulp test"
 
  },
 
  "license": "",
 
  "dependencies": {
 
    "babel-core": "^5.8.23",
 
    "babel-loader": "^5.3.2",
 
    "bootstrap": "^3.3.5",
 
    "css-loader": "^0.17.0",
 
    "extract-text-webpack-plugin": "^0.8.2",
 
    "file-loader": "^0.8.4",
 
    "font-awesome": "^4.4.0",
 
    "html-webpack-plugin": "^1.6.1",
 
    "jquery": "^2.1.4",
 
    "less": "^2.5.1",
 
    "less-loader": "^2.2.0",
 
    "style-loader": "^0.12.3",
 
    "webpack": "^1.12.1"
 
    "bootstrap": "^3.3.6",
 
    "font-awesome": "^4.5.0",
 
    "jquery": "^2.1.4"
 
  },
 
  "babel": {
 
    "presets": [
 
      "stage-1"
 
    ],
 
    "plugins": [
 
      "check-es2015-constants",
 
      "transform-es2015-arrow-functions",
 
      "transform-es2015-block-scoped-functions",
 
      "transform-es2015-block-scoping",
 
      "transform-es2015-classes",
 
      "transform-es2015-computed-properties",
 
      "transform-es2015-destructuring",
 
      "transform-es2015-for-of",
 
      "transform-es2015-function-name",
 
      "transform-es2015-literals",
 
      "transform-es2015-modules-commonjs",
 
      "transform-es2015-object-super",
 
      "transform-es2015-parameters",
 
      "transform-es2015-shorthand-properties",
 
      "transform-es2015-spread",
 
      "transform-es2015-sticky-regex",
 
      "transform-es2015-template-literals",
 
      "transform-es2015-typeof-symbol",
 
      "transform-es2015-unicode-regex"
 
    ],
 
    "ignore": [
 
      "node_modules/",
 
      "dist/"
 
    ]
 
  },
 
  "xo": {
 
    "esnext": true,
 
    "rules": {
 
      "indent": 0,
 
      "no-multi-spaces": 0,
 
      "no-trailing-spaces": 0,
 
      "brace-style": 0,
 
      "babel/object-curly-spacing": 0
 
    }
 
  },
 
  "devDependencies": {
 
    "babel-plugin-check-es2015-constants": "^6.3.13",
 
    "babel-plugin-transform-es2015-arrow-functions": "^6.3.13",
 
    "babel-plugin-transform-es2015-block-scoped-functions": "^6.3.13",
 
    "babel-plugin-transform-es2015-block-scoping": "^6.3.13",
 
    "babel-plugin-transform-es2015-classes": "^6.3.15",
 
    "babel-plugin-transform-es2015-computed-properties": "^6.3.13",
 
    "babel-plugin-transform-es2015-destructuring": "^6.3.15",
 
    "babel-plugin-transform-es2015-for-of": "^6.3.13",
 
    "babel-plugin-transform-es2015-function-name": "^6.3.21",
 
    "babel-plugin-transform-es2015-literals": "^6.3.13",
 
    "babel-plugin-transform-es2015-modules-commonjs": "^6.3.16",
 
    "babel-plugin-transform-es2015-object-super": "^6.3.13",
 
    "babel-plugin-transform-es2015-parameters": "^6.3.26",
 
    "babel-plugin-transform-es2015-shorthand-properties": "^6.3.13",
 
    "babel-plugin-transform-es2015-spread": "^6.3.14",
 
    "babel-plugin-transform-es2015-sticky-regex": "^6.3.13",
 
    "babel-plugin-transform-es2015-template-literals": "^6.3.13",
 
    "babel-plugin-transform-es2015-typeof-symbol": "^6.3.13",
 
    "babel-plugin-transform-es2015-unicode-regex": "^6.3.13",
 
    "babel-preset-es2015": "^6.3.13",
 
    "babel-preset-stage-1": "^6.3.13",
 
    "babelify": "^7.2.0",
 
    "browserify": "^12.0.1",
 
    "browserify-hmr": "^0.3.1",
 
    "del": "^2.2.0",
 
    "fs": "0.0.2",
 
    "gulp": "gulpjs/gulp#4.0",
 
    "gulp-autoprefixer": "^3.1.0",
 
    "gulp-cleanup": "^1.0.0",
 
    "gulp-compile-handlebars": "^0.6.1",
 
    "gulp-cssnano": "^2.0.0",
 
    "gulp-less": "^3.0.5",
 
    "gulp-mocha": "^2.2.0",
 
    "gulp-rename": "^1.2.2",
 
    "gulp-rev": "^6.0.1",
 
    "gulp-size": "^2.0.0",
 
    "gulp-uglify": "^1.5.1",
 
    "gulp-util": "^3.0.7",
 
    "gulp-xo": "^0.7.0",
 
    "vinyl-source-stream": "^1.1.0",
 
    "watchify": "^3.6.1"
 
  }
pinaxcon/templates/_scripts.html
Show inline comments
 
<script src='/site_media/static/js/site.js?7324c997497bcdad9dd0'></script>
 
<script src='/site_media/static/js/site-92ae8d0d6c.js'></script>
pinaxcon/templates/_styles.html
Show inline comments
 
<link href='/site_media/static/css/site.css?7324c997497bcdad9dd0' rel='stylesheet' />
 
<link href='/site_media/static/css/site-cf99a8bad7.css' rel='stylesheet' />
static/STATIC_README.md
Show inline comments
...
 
@@ -2,6 +2,3 @@
 

	
 
We are using `webpack` and `npm` for our static build process. A configuration
 
that should work for most cases has already been configured and statics come
 
pre-built so you don't need to do anything unless you change anything in the
 
`src/` directory.
 
We are using `gulp` and `npm` for our static build process.
 

	
...
 
@@ -13,36 +10 @@ always are testing and exercise exactly what will be served in production. It
 
also makes our deployment simpler.
 

	
 
## Images
 

	
 
If you want to add images to be referenced in your site's HTML or CSS there are
 
a couple things you need to be aware of.
 

	
 
You should first create a folder under `src/` called `images` (you can change
 
the name of this by updating your `webpack.config.js` to look for something
 
else). Store all your source images in this folder (or subfolders).
 

	
 
### CSS
 

	
 
Whether you use SASS or LESS, you will reference your images using relative
 
urls:
 

	
 
```css
 
div {
 
    background-image: url(../images/background.png);
 
}
 
```
 

	
 
### HTML
 

	
 
If you want to use an `img` tag you will need to do a couple things:
 

	
 
```html
 
<img src="{% static "images/picture.png" %}" />
 
```
 

	
 
then in your `src/js/main.js` you need to tell `webpack` that you are going to
 
reference that image:
 

	
 
```js
 
require("../images/picture.png");
 
```
static/_build/css/site.css
Show inline comments
 
new file 100644
 
/*!
 
 * Bootstrap v3.3.6 (http://getbootstrap.com)
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 */
 
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
 
html {
 
  font-family: sans-serif;
 
  -ms-text-size-adjust: 100%;
 
  -webkit-text-size-adjust: 100%;
 
}
 
body {
 
  margin: 0;
 
}
 
article,
 
aside,
 
details,
 
figcaption,
 
figure,
 
footer,
 
header,
 
hgroup,
 
main,
 
menu,
 
nav,
 
section,
 
summary {
 
  display: block;
 
}
 
audio,
 
canvas,
 
progress,
 
video {
 
  display: inline-block;
 
  vertical-align: baseline;
 
}
 
audio:not([controls]) {
 
  display: none;
 
  height: 0;
 
}
 
[hidden],
 
template {
 
  display: none;
 
}
 
a {
 
  background-color: transparent;
 
}
 
a:active,
 
a:hover {
 
  outline: 0;
 
}
 
abbr[title] {
 
  border-bottom: 1px dotted;
 
}
 
b,
 
strong {
 
  font-weight: bold;
 
}
 
dfn {
 
  font-style: italic;
 
}
 
h1 {
 
  font-size: 2em;
 
  margin: 0.67em 0;
 
}
 
mark {
 
  background: #ff0;
 
  color: #000;
 
}
 
small {
 
  font-size: 80%;
 
}
 
sub,
 
sup {
 
  font-size: 75%;
 
  line-height: 0;
 
  position: relative;
 
  vertical-align: baseline;
 
}
 
sup {
 
  top: -0.5em;
 
}
 
sub {
 
  bottom: -0.25em;
 
}
 
img {
 
  border: 0;
 
}
 
svg:not(:root) {
 
  overflow: hidden;
 
}
 
figure {
 
  margin: 1em 40px;
 
}
 
hr {
 
  box-sizing: content-box;
 
  height: 0;
 
}
 
pre {
 
  overflow: auto;
 
}
 
code,
 
kbd,
 
pre,
 
samp {
 
  font-family: monospace, monospace;
 
  font-size: 1em;
 
}
 
button,
 
input,
 
optgroup,
 
select,
 
textarea {
 
  color: inherit;
 
  font: inherit;
 
  margin: 0;
 
}
 
button {
 
  overflow: visible;
 
}
 
button,
 
select {
 
  text-transform: none;
 
}
 
button,
 
html input[type="button"],
 
input[type="reset"],
 
input[type="submit"] {
 
  -webkit-appearance: button;
 
  cursor: pointer;
 
}
 
button[disabled],
 
html input[disabled] {
 
  cursor: default;
 
}
 
button::-moz-focus-inner,
 
input::-moz-focus-inner {
 
  border: 0;
 
  padding: 0;
 
}
 
input {
 
  line-height: normal;
 
}
 
input[type="checkbox"],
 
input[type="radio"] {
 
  box-sizing: border-box;
 
  padding: 0;
 
}
 
input[type="number"]::-webkit-inner-spin-button,
 
input[type="number"]::-webkit-outer-spin-button {
 
  height: auto;
 
}
 
input[type="search"] {
 
  -webkit-appearance: textfield;
 
  box-sizing: content-box;
 
}
 
input[type="search"]::-webkit-search-cancel-button,
 
input[type="search"]::-webkit-search-decoration {
 
  -webkit-appearance: none;
 
}
 
fieldset {
 
  border: 1px solid #c0c0c0;
 
  margin: 0 2px;
 
  padding: 0.35em 0.625em 0.75em;
 
}
 
legend {
 
  border: 0;
 
  padding: 0;
 
}
 
textarea {
 
  overflow: auto;
 
}
 
optgroup {
 
  font-weight: bold;
 
}
 
table {
 
  border-collapse: collapse;
 
  border-spacing: 0;
 
}
 
td,
 
th {
 
  padding: 0;
 
}
 
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
 
@media print {
 
  *,
 
  *:before,
 
  *:after {
 
    background: transparent !important;
 
    color: #000 !important;
 
    box-shadow: none !important;
 
    text-shadow: none !important;
 
  }
 
  a,
 
  a:visited {
 
    text-decoration: underline;
 
  }
 
  a[href]:after {
 
    content: " (" attr(href) ")";
 
  }
 
  abbr[title]:after {
 
    content: " (" attr(title) ")";
 
  }
 
  a[href^="#"]:after,
 
  a[href^="javascript:"]:after {
 
    content: "";
 
  }
 
  pre,
 
  blockquote {
 
    border: 1px solid #999;
 
    page-break-inside: avoid;
 
  }
 
  thead {
 
    display: table-header-group;
 
  }
 
  tr,
 
  img {
 
    page-break-inside: avoid;
 
  }
 
  img {
 
    max-width: 100% !important;
 
  }
 
  p,
 
  h2,
 
  h3 {
 
    orphans: 3;
 
    widows: 3;
 
  }
 
  h2,
 
  h3 {
 
    page-break-after: avoid;
 
  }
 
  .navbar {
 
    display: none;
 
  }
 
  .btn > .caret,
 
  .dropup > .btn > .caret {
 
    border-top-color: #000 !important;
 
  }
 
  .label {
 
    border: 1px solid #000;
 
  }
 
  .table {
 
    border-collapse: collapse !important;
 
  }
 
  .table td,
 
  .table th {
 
    background-color: #fff !important;
 
  }
 
  .table-bordered th,
 
  .table-bordered td {
 
    border: 1px solid #ddd !important;
 
  }
 
}
 
@font-face {
 
  font-family: 'Glyphicons Halflings';
 
  src: url('../fonts/glyphicons-halflings-regular.eot');
 
  src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
 
}
 
.glyphicon {
 
  position: relative;
 
  top: 1px;
 
  display: inline-block;
 
  font-family: 'Glyphicons Halflings';
 
  font-style: normal;
 
  font-weight: normal;
 
  line-height: 1;
 
  -webkit-font-smoothing: antialiased;
 
  -moz-osx-font-smoothing: grayscale;
 
}
 
.glyphicon-asterisk:before {
 
  content: "\002a";
 
}
 
.glyphicon-plus:before {
 
  content: "\002b";
 
}
 
.glyphicon-euro:before,
 
.glyphicon-eur:before {
 
  content: "\20ac";
 
}
 
.glyphicon-minus:before {
 
  content: "\2212";
 
}
 
.glyphicon-cloud:before {
 
  content: "\2601";
 
}
 
.glyphicon-envelope:before {
 
  content: "\2709";
 
}
 
.glyphicon-pencil:before {
 
  content: "\270f";
 
}
 
.glyphicon-glass:before {
 
  content: "\e001";
 
}
 
.glyphicon-music:before {
 
  content: "\e002";
 
}
 
.glyphicon-search:before {
 
  content: "\e003";
 
}
 
.glyphicon-heart:before {
 
  content: "\e005";
 
}
 
.glyphicon-star:before {
 
  content: "\e006";
 
}
 
.glyphicon-star-empty:before {
 
  content: "\e007";
 
}
 
.glyphicon-user:before {
 
  content: "\e008";
 
}
 
.glyphicon-film:before {
 
  content: "\e009";
 
}
 
.glyphicon-th-large:before {
 
  content: "\e010";
 
}
 
.glyphicon-th:before {
 
  content: "\e011";
 
}
 
.glyphicon-th-list:before {
 
  content: "\e012";
 
}
 
.glyphicon-ok:before {
 
  content: "\e013";
 
}
 
.glyphicon-remove:before {
 
  content: "\e014";
 
}
 
.glyphicon-zoom-in:before {
 
  content: "\e015";
 
}
 
.glyphicon-zoom-out:before {
 
  content: "\e016";
 
}
 
.glyphicon-off:before {
 
  content: "\e017";
 
}
 
.glyphicon-signal:before {
 
  content: "\e018";
 
}
 
.glyphicon-cog:before {
 
  content: "\e019";
 
}
 
.glyphicon-trash:before {
 
  content: "\e020";
 
}
 
.glyphicon-home:before {
 
  content: "\e021";
 
}
 
.glyphicon-file:before {
 
  content: "\e022";
 
}
 
.glyphicon-time:before {
 
  content: "\e023";
 
}
 
.glyphicon-road:before {
 
  content: "\e024";
 
}
 
.glyphicon-download-alt:before {
 
  content: "\e025";
 
}
 
.glyphicon-download:before {
 
  content: "\e026";
 
}
 
.glyphicon-upload:before {
 
  content: "\e027";
 
}
 
.glyphicon-inbox:before {
 
  content: "\e028";
 
}
 
.glyphicon-play-circle:before {
 
  content: "\e029";
 
}
 
.glyphicon-repeat:before {
 
  content: "\e030";
 
}
 
.glyphicon-refresh:before {
 
  content: "\e031";
 
}
 
.glyphicon-list-alt:before {
 
  content: "\e032";
 
}
 
.glyphicon-lock:before {
 
  content: "\e033";
 
}
 
.glyphicon-flag:before {
 
  content: "\e034";
 
}
 
.glyphicon-headphones:before {
 
  content: "\e035";
 
}
 
.glyphicon-volume-off:before {
 
  content: "\e036";
 
}
 
.glyphicon-volume-down:before {
 
  content: "\e037";
 
}
 
.glyphicon-volume-up:before {
 
  content: "\e038";
 
}
 
.glyphicon-qrcode:before {
 
  content: "\e039";
 
}
 
.glyphicon-barcode:before {
 
  content: "\e040";
 
}
 
.glyphicon-tag:before {
 
  content: "\e041";
 
}
 
.glyphicon-tags:before {
 
  content: "\e042";
 
}
 
.glyphicon-book:before {
 
  content: "\e043";
 
}
 
.glyphicon-bookmark:before {
 
  content: "\e044";
 
}
 
.glyphicon-print:before {
 
  content: "\e045";
 
}
 
.glyphicon-camera:before {
 
  content: "\e046";
 
}
 
.glyphicon-font:before {
 
  content: "\e047";
 
}
 
.glyphicon-bold:before {
 
  content: "\e048";
 
}
 
.glyphicon-italic:before {
 
  content: "\e049";
 
}
 
.glyphicon-text-height:before {
 
  content: "\e050";
 
}
 
.glyphicon-text-width:before {
 
  content: "\e051";
 
}
 
.glyphicon-align-left:before {
 
  content: "\e052";
 
}
 
.glyphicon-align-center:before {
 
  content: "\e053";
 
}
 
.glyphicon-align-right:before {
 
  content: "\e054";
 
}
 
.glyphicon-align-justify:before {
 
  content: "\e055";
 
}
 
.glyphicon-list:before {
 
  content: "\e056";
 
}
 
.glyphicon-indent-left:before {
 
  content: "\e057";
 
}
 
.glyphicon-indent-right:before {
 
  content: "\e058";
 
}
 
.glyphicon-facetime-video:before {
 
  content: "\e059";
 
}
 
.glyphicon-picture:before {
 
  content: "\e060";
 
}
 
.glyphicon-map-marker:before {
 
  content: "\e062";
 
}
 
.glyphicon-adjust:before {
 
  content: "\e063";
 
}
 
.glyphicon-tint:before {
 
  content: "\e064";
 
}
 
.glyphicon-edit:before {
 
  content: "\e065";
 
}
 
.glyphicon-share:before {
 
  content: "\e066";
 
}
 
.glyphicon-check:before {
 
  content: "\e067";
 
}
 
.glyphicon-move:before {
 
  content: "\e068";
 
}
 
.glyphicon-step-backward:before {
 
  content: "\e069";
 
}
 
.glyphicon-fast-backward:before {
 
  content: "\e070";
 
}
 
.glyphicon-backward:before {
 
  content: "\e071";
 
}
 
.glyphicon-play:before {
 
  content: "\e072";
 
}
 
.glyphicon-pause:before {
 
  content: "\e073";
 
}
 
.glyphicon-stop:before {
 
  content: "\e074";
 
}
 
.glyphicon-forward:before {
 
  content: "\e075";
 
}
 
.glyphicon-fast-forward:before {
 
  content: "\e076";
 
}
 
.glyphicon-step-forward:before {
 
  content: "\e077";
 
}
 
.glyphicon-eject:before {
 
  content: "\e078";
 
}
 
.glyphicon-chevron-left:before {
 
  content: "\e079";
 
}
 
.glyphicon-chevron-right:before {
 
  content: "\e080";
 
}
 
.glyphicon-plus-sign:before {
 
  content: "\e081";
 
}
 
.glyphicon-minus-sign:before {
 
  content: "\e082";
 
}
 
.glyphicon-remove-sign:before {
 
  content: "\e083";
 
}
 
.glyphicon-ok-sign:before {
 
  content: "\e084";
 
}
 
.glyphicon-question-sign:before {
 
  content: "\e085";
 
}
 
.glyphicon-info-sign:before {
 
  content: "\e086";
 
}
 
.glyphicon-screenshot:before {
 
  content: "\e087";
 
}
 
.glyphicon-remove-circle:before {
 
  content: "\e088";
 
}
 
.glyphicon-ok-circle:before {
 
  content: "\e089";
 
}
 
.glyphicon-ban-circle:before {
 
  content: "\e090";
 
}
 
.glyphicon-arrow-left:before {
 
  content: "\e091";
 
}
 
.glyphicon-arrow-right:before {
 
  content: "\e092";
 
}
 
.glyphicon-arrow-up:before {
 
  content: "\e093";
 
}
 
.glyphicon-arrow-down:before {
 
  content: "\e094";
 
}
 
.glyphicon-share-alt:before {
 
  content: "\e095";
 
}
 
.glyphicon-resize-full:before {
 
  content: "\e096";
 
}
 
.glyphicon-resize-small:before {
 
  content: "\e097";
 
}
 
.glyphicon-exclamation-sign:before {
 
  content: "\e101";
 
}
 
.glyphicon-gift:before {
 
  content: "\e102";
 
}
 
.glyphicon-leaf:before {
 
  content: "\e103";
 
}
 
.glyphicon-fire:before {
 
  content: "\e104";
 
}
 
.glyphicon-eye-open:before {
 
  content: "\e105";
 
}
 
.glyphicon-eye-close:before {
 
  content: "\e106";
 
}
 
.glyphicon-warning-sign:before {
 
  content: "\e107";
 
}
 
.glyphicon-plane:before {
 
  content: "\e108";
 
}
 
.glyphicon-calendar:before {
 
  content: "\e109";
 
}
 
.glyphicon-random:before {
 
  content: "\e110";
 
}
 
.glyphicon-comment:before {
 
  content: "\e111";
 
}
 
.glyphicon-magnet:before {
 
  content: "\e112";
 
}
 
.glyphicon-chevron-up:before {
 
  content: "\e113";
 
}
 
.glyphicon-chevron-down:before {
 
  content: "\e114";
 
}
 
.glyphicon-retweet:before {
 
  content: "\e115";
 
}
 
.glyphicon-shopping-cart:before {
 
  content: "\e116";
 
}
 
.glyphicon-folder-close:before {
 
  content: "\e117";
 
}
 
.glyphicon-folder-open:before {
 
  content: "\e118";
 
}
 
.glyphicon-resize-vertical:before {
 
  content: "\e119";
 
}
 
.glyphicon-resize-horizontal:before {
 
  content: "\e120";
 
}
 
.glyphicon-hdd:before {
 
  content: "\e121";
 
}
 
.glyphicon-bullhorn:before {
 
  content: "\e122";
 
}
 
.glyphicon-bell:before {
 
  content: "\e123";
 
}
 
.glyphicon-certificate:before {
 
  content: "\e124";
 
}
 
.glyphicon-thumbs-up:before {
 
  content: "\e125";
 
}
 
.glyphicon-thumbs-down:before {
 
  content: "\e126";
 
}
 
.glyphicon-hand-right:before {
 
  content: "\e127";
 
}
 
.glyphicon-hand-left:before {
 
  content: "\e128";
 
}
 
.glyphicon-hand-up:before {
 
  content: "\e129";
 
}
 
.glyphicon-hand-down:before {
 
  content: "\e130";
 
}
 
.glyphicon-circle-arrow-right:before {
 
  content: "\e131";
 
}
 
.glyphicon-circle-arrow-left:before {
 
  content: "\e132";
 
}
 
.glyphicon-circle-arrow-up:before {
 
  content: "\e133";
 
}
 
.glyphicon-circle-arrow-down:before {
 
  content: "\e134";
 
}
 
.glyphicon-globe:before {
 
  content: "\e135";
 
}
 
.glyphicon-wrench:before {
 
  content: "\e136";
 
}
 
.glyphicon-tasks:before {
 
  content: "\e137";
 
}
 
.glyphicon-filter:before {
 
  content: "\e138";
 
}
 
.glyphicon-briefcase:before {
 
  content: "\e139";
 
}
 
.glyphicon-fullscreen:before {
 
  content: "\e140";
 
}
 
.glyphicon-dashboard:before {
 
  content: "\e141";
 
}
 
.glyphicon-paperclip:before {
 
  content: "\e142";
 
}
 
.glyphicon-heart-empty:before {
 
  content: "\e143";
 
}
 
.glyphicon-link:before {
 
  content: "\e144";
 
}
 
.glyphicon-phone:before {
 
  content: "\e145";
 
}
 
.glyphicon-pushpin:before {
 
  content: "\e146";
 
}
 
.glyphicon-usd:before {
 
  content: "\e148";
 
}
 
.glyphicon-gbp:before {
 
  content: "\e149";
 
}
 
.glyphicon-sort:before {
 
  content: "\e150";
 
}
 
.glyphicon-sort-by-alphabet:before {
 
  content: "\e151";
 
}
 
.glyphicon-sort-by-alphabet-alt:before {
 
  content: "\e152";
 
}
 
.glyphicon-sort-by-order:before {
 
  content: "\e153";
 
}
 
.glyphicon-sort-by-order-alt:before {
 
  content: "\e154";
 
}
 
.glyphicon-sort-by-attributes:before {
 
  content: "\e155";
 
}
 
.glyphicon-sort-by-attributes-alt:before {
 
  content: "\e156";
 
}
 
.glyphicon-unchecked:before {
 
  content: "\e157";
 
}
 
.glyphicon-expand:before {
 
  content: "\e158";
 
}
 
.glyphicon-collapse-down:before {
 
  content: "\e159";
 
}
 
.glyphicon-collapse-up:before {
 
  content: "\e160";
 
}
 
.glyphicon-log-in:before {
 
  content: "\e161";
 
}
 
.glyphicon-flash:before {
 
  content: "\e162";
 
}
 
.glyphicon-log-out:before {
 
  content: "\e163";
 
}
 
.glyphicon-new-window:before {
 
  content: "\e164";
 
}
 
.glyphicon-record:before {
 
  content: "\e165";
 
}
 
.glyphicon-save:before {
 
  content: "\e166";
 
}
 
.glyphicon-open:before {
 
  content: "\e167";
 
}
 
.glyphicon-saved:before {
 
  content: "\e168";
 
}
 
.glyphicon-import:before {
 
  content: "\e169";
 
}
 
.glyphicon-export:before {
 
  content: "\e170";
 
}
 
.glyphicon-send:before {
 
  content: "\e171";
 
}
 
.glyphicon-floppy-disk:before {
 
  content: "\e172";
 
}
 
.glyphicon-floppy-saved:before {
 
  content: "\e173";
 
}
 
.glyphicon-floppy-remove:before {
 
  content: "\e174";
 
}
 
.glyphicon-floppy-save:before {
 
  content: "\e175";
 
}
 
.glyphicon-floppy-open:before {
 
  content: "\e176";
 
}
 
.glyphicon-credit-card:before {
 
  content: "\e177";
 
}
 
.glyphicon-transfer:before {
 
  content: "\e178";
 
}
 
.glyphicon-cutlery:before {
 
  content: "\e179";
 
}
 
.glyphicon-header:before {
 
  content: "\e180";
 
}
 
.glyphicon-compressed:before {
 
  content: "\e181";
 
}
 
.glyphicon-earphone:before {
 
  content: "\e182";
 
}
 
.glyphicon-phone-alt:before {
 
  content: "\e183";
 
}
 
.glyphicon-tower:before {
 
  content: "\e184";
 
}
 
.glyphicon-stats:before {
 
  content: "\e185";
 
}
 
.glyphicon-sd-video:before {
 
  content: "\e186";
 
}
 
.glyphicon-hd-video:before {
 
  content: "\e187";
 
}
 
.glyphicon-subtitles:before {
 
  content: "\e188";
 
}
 
.glyphicon-sound-stereo:before {
 
  content: "\e189";
 
}
 
.glyphicon-sound-dolby:before {
 
  content: "\e190";
 
}
 
.glyphicon-sound-5-1:before {
 
  content: "\e191";
 
}
 
.glyphicon-sound-6-1:before {
 
  content: "\e192";
 
}
 
.glyphicon-sound-7-1:before {
 
  content: "\e193";
 
}
 
.glyphicon-copyright-mark:before {
 
  content: "\e194";
 
}
 
.glyphicon-registration-mark:before {
 
  content: "\e195";
 
}
 
.glyphicon-cloud-download:before {
 
  content: "\e197";
 
}
 
.glyphicon-cloud-upload:before {
 
  content: "\e198";
 
}
 
.glyphicon-tree-conifer:before {
 
  content: "\e199";
 
}
 
.glyphicon-tree-deciduous:before {
 
  content: "\e200";
 
}
 
.glyphicon-cd:before {
 
  content: "\e201";
 
}
 
.glyphicon-save-file:before {
 
  content: "\e202";
 
}
 
.glyphicon-open-file:before {
 
  content: "\e203";
 
}
 
.glyphicon-level-up:before {
 
  content: "\e204";
 
}
 
.glyphicon-copy:before {
 
  content: "\e205";
 
}
 
.glyphicon-paste:before {
 
  content: "\e206";
 
}
 
.glyphicon-alert:before {
 
  content: "\e209";
 
}
 
.glyphicon-equalizer:before {
 
  content: "\e210";
 
}
 
.glyphicon-king:before {
 
  content: "\e211";
 
}
 
.glyphicon-queen:before {
 
  content: "\e212";
 
}
 
.glyphicon-pawn:before {
 
  content: "\e213";
 
}
 
.glyphicon-bishop:before {
 
  content: "\e214";
 
}
 
.glyphicon-knight:before {
 
  content: "\e215";
 
}
 
.glyphicon-baby-formula:before {
 
  content: "\e216";
 
}
 
.glyphicon-tent:before {
 
  content: "\26fa";
 
}
 
.glyphicon-blackboard:before {
 
  content: "\e218";
 
}
 
.glyphicon-bed:before {
 
  content: "\e219";
 
}
 
.glyphicon-apple:before {
 
  content: "\f8ff";
 
}
 
.glyphicon-erase:before {
 
  content: "\e221";
 
}
 
.glyphicon-hourglass:before {
 
  content: "\231b";
 
}
 
.glyphicon-lamp:before {
 
  content: "\e223";
 
}
 
.glyphicon-duplicate:before {
 
  content: "\e224";
 
}
 
.glyphicon-piggy-bank:before {
 
  content: "\e225";
 
}
 
.glyphicon-scissors:before {
 
  content: "\e226";
 
}
 
.glyphicon-bitcoin:before {
 
  content: "\e227";
 
}
 
.glyphicon-btc:before {
 
  content: "\e227";
 
}
 
.glyphicon-xbt:before {
 
  content: "\e227";
 
}
 
.glyphicon-yen:before {
 
  content: "\00a5";
 
}
 
.glyphicon-jpy:before {
 
  content: "\00a5";
 
}
 
.glyphicon-ruble:before {
 
  content: "\20bd";
 
}
 
.glyphicon-rub:before {
 
  content: "\20bd";
 
}
 
.glyphicon-scale:before {
 
  content: "\e230";
 
}
 
.glyphicon-ice-lolly:before {
 
  content: "\e231";
 
}
 
.glyphicon-ice-lolly-tasted:before {
 
  content: "\e232";
 
}
 
.glyphicon-education:before {
 
  content: "\e233";
 
}
 
.glyphicon-option-horizontal:before {
 
  content: "\e234";
 
}
 
.glyphicon-option-vertical:before {
 
  content: "\e235";
 
}
 
.glyphicon-menu-hamburger:before {
 
  content: "\e236";
 
}
 
.glyphicon-modal-window:before {
 
  content: "\e237";
 
}
 
.glyphicon-oil:before {
 
  content: "\e238";
 
}
 
.glyphicon-grain:before {
 
  content: "\e239";
 
}
 
.glyphicon-sunglasses:before {
 
  content: "\e240";
 
}
 
.glyphicon-text-size:before {
 
  content: "\e241";
 
}
 
.glyphicon-text-color:before {
 
  content: "\e242";
 
}
 
.glyphicon-text-background:before {
 
  content: "\e243";
 
}
 
.glyphicon-object-align-top:before {
 
  content: "\e244";
 
}
 
.glyphicon-object-align-bottom:before {
 
  content: "\e245";
 
}
 
.glyphicon-object-align-horizontal:before {
 
  content: "\e246";
 
}
 
.glyphicon-object-align-left:before {
 
  content: "\e247";
 
}
 
.glyphicon-object-align-vertical:before {
 
  content: "\e248";
 
}
 
.glyphicon-object-align-right:before {
 
  content: "\e249";
 
}
 
.glyphicon-triangle-right:before {
 
  content: "\e250";
 
}
 
.glyphicon-triangle-left:before {
 
  content: "\e251";
 
}
 
.glyphicon-triangle-bottom:before {
 
  content: "\e252";
 
}
 
.glyphicon-triangle-top:before {
 
  content: "\e253";
 
}
 
.glyphicon-console:before {
 
  content: "\e254";
 
}
 
.glyphicon-superscript:before {
 
  content: "\e255";
 
}
 
.glyphicon-subscript:before {
 
  content: "\e256";
 
}
 
.glyphicon-menu-left:before {
 
  content: "\e257";
 
}
 
.glyphicon-menu-right:before {
 
  content: "\e258";
 
}
 
.glyphicon-menu-down:before {
 
  content: "\e259";
 
}
 
.glyphicon-menu-up:before {
 
  content: "\e260";
 
}
 
* {
 
  box-sizing: border-box;
 
}
 
*:before,
 
*:after {
 
  box-sizing: border-box;
 
}
 
html {
 
  font-size: 10px;
 
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
 
}
 
body {
 
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
 
  font-size: 14px;
 
  line-height: 1.42857143;
 
  color: #333333;
 
  background-color: #fff;
 
}
 
input,
 
button,
 
select,
 
textarea {
 
  font-family: inherit;
 
  font-size: inherit;
 
  line-height: inherit;
 
}
 
a {
 
  color: #337ab7;
 
  text-decoration: none;
 
}
 
a:hover,
 
a:focus {
 
  color: #23527c;
 
  text-decoration: underline;
 
}
 
a:focus {
 
  outline: thin dotted;
 
  outline: 5px auto -webkit-focus-ring-color;
 
  outline-offset: -2px;
 
}
 
figure {
 
  margin: 0;
 
}
 
img {
 
  vertical-align: middle;
 
}
 
.img-responsive,
 
.thumbnail > img,
 
.thumbnail a > img,
 
.carousel-inner > .item > img,
 
.carousel-inner > .item > a > img {
 
  display: block;
 
  max-width: 100%;
 
  height: auto;
 
}
 
.img-rounded {
 
  border-radius: 6px;
 
}
 
.img-thumbnail {
 
  padding: 4px;
 
  line-height: 1.42857143;
 
  background-color: #fff;
 
  border: 1px solid #ddd;
 
  border-radius: 4px;
 
  -webkit-transition: all 0.2s ease-in-out;
 
  transition: all 0.2s ease-in-out;
 
  display: inline-block;
 
  max-width: 100%;
 
  height: auto;
 
}
 
.img-circle {
 
  border-radius: 50%;
 
}
 
hr {
 
  margin-top: 20px;
 
  margin-bottom: 20px;
 
  border: 0;
 
  border-top: 1px solid #eeeeee;
 
}
 
.sr-only {
 
  position: absolute;
 
  width: 1px;
 
  height: 1px;
 
  margin: -1px;
 
  padding: 0;
 
  overflow: hidden;
 
  clip: rect(0, 0, 0, 0);
 
  border: 0;
 
}
 
.sr-only-focusable:active,
 
.sr-only-focusable:focus {
 
  position: static;
 
  width: auto;
 
  height: auto;
 
  margin: 0;
 
  overflow: visible;
 
  clip: auto;
 
}
 
[role="button"] {
 
  cursor: pointer;
 
}
 
h1,
 
h2,
 
h3,
 
h4,
 
h5,
 
h6,
 
.h1,
 
.h2,
 
.h3,
 
.h4,
 
.h5,
 
.h6 {
 
  font-family: inherit;
 
  font-weight: 500;
 
  line-height: 1.1;
 
  color: inherit;
 
}
 
h1 small,
 
h2 small,
 
h3 small,
 
h4 small,
 
h5 small,
 
h6 small,
 
.h1 small,
 
.h2 small,
 
.h3 small,
 
.h4 small,
 
.h5 small,
 
.h6 small,
 
h1 .small,
 
h2 .small,
 
h3 .small,
 
h4 .small,
 
h5 .small,
 
h6 .small,
 
.h1 .small,
 
.h2 .small,
 
.h3 .small,
 
.h4 .small,
 
.h5 .small,
 
.h6 .small {
 
  font-weight: normal;
 
  line-height: 1;
 
  color: #777777;
 
}
 
h1,
 
.h1,
 
h2,
 
.h2,
 
h3,
 
.h3 {
 
  margin-top: 20px;
 
  margin-bottom: 10px;
 
}
 
h1 small,
 
.h1 small,
 
h2 small,
 
.h2 small,
 
h3 small,
 
.h3 small,
 
h1 .small,
 
.h1 .small,
 
h2 .small,
 
.h2 .small,
 
h3 .small,
 
.h3 .small {
 
  font-size: 65%;
 
}
 
h4,
 
.h4,
 
h5,
 
.h5,
 
h6,
 
.h6 {
 
  margin-top: 10px;
 
  margin-bottom: 10px;
 
}
 
h4 small,
 
.h4 small,
 
h5 small,
 
.h5 small,
 
h6 small,
 
.h6 small,
 
h4 .small,
 
.h4 .small,
 
h5 .small,
 
.h5 .small,
 
h6 .small,
 
.h6 .small {
 
  font-size: 75%;
 
}
 
h1,
 
.h1 {
 
  font-size: 36px;
 
}
 
h2,
 
.h2 {
 
  font-size: 30px;
 
}
 
h3,
 
.h3 {
 
  font-size: 24px;
 
}
 
h4,
 
.h4 {
 
  font-size: 18px;
 
}
 
h5,
 
.h5 {
 
  font-size: 14px;
 
}
 
h6,
 
.h6 {
 
  font-size: 12px;
 
}
 
p {
 
  margin: 0 0 10px;
 
}
 
.lead {
 
  margin-bottom: 20px;
 
  font-size: 16px;
 
  font-weight: 300;
 
  line-height: 1.4;
 
}
 
@media (min-width: 768px) {
 
  .lead {
 
    font-size: 21px;
 
  }
 
}
 
small,
 
.small {
 
  font-size: 85%;
 
}
 
mark,
 
.mark {
 
  background-color: #fcf8e3;
 
  padding: .2em;
 
}
 
.text-left {
 
  text-align: left;
 
}
 
.text-right {
 
  text-align: right;
 
}
 
.text-center {
 
  text-align: center;
 
}
 
.text-justify {
 
  text-align: justify;
 
}
 
.text-nowrap {
 
  white-space: nowrap;
 
}
 
.text-lowercase {
 
  text-transform: lowercase;
 
}
 
.text-uppercase {
 
  text-transform: uppercase;
 
}
 
.text-capitalize {
 
  text-transform: capitalize;
 
}
 
.text-muted {
 
  color: #777777;
 
}
 
.text-primary {
 
  color: #337ab7;
 
}
 
a.text-primary:hover,
 
a.text-primary:focus {
 
  color: #286090;
 
}
 
.text-success {
 
  color: #3c763d;
 
}
 
a.text-success:hover,
 
a.text-success:focus {
 
  color: #2b542c;
 
}
 
.text-info {
 
  color: #31708f;
 
}
 
a.text-info:hover,
 
a.text-info:focus {
 
  color: #245269;
 
}
 
.text-warning {
 
  color: #8a6d3b;
 
}
 
a.text-warning:hover,
 
a.text-warning:focus {
 
  color: #66512c;
 
}
 
.text-danger {
 
  color: #a94442;
 
}
 
a.text-danger:hover,
 
a.text-danger:focus {
 
  color: #843534;
 
}
 
.bg-primary {
 
  color: #fff;
 
  background-color: #337ab7;
 
}
 
a.bg-primary:hover,
 
a.bg-primary:focus {
 
  background-color: #286090;
 
}
 
.bg-success {
 
  background-color: #dff0d8;
 
}
 
a.bg-success:hover,
 
a.bg-success:focus {
 
  background-color: #c1e2b3;
 
}
 
.bg-info {
 
  background-color: #d9edf7;
 
}
 
a.bg-info:hover,
 
a.bg-info:focus {
 
  background-color: #afd9ee;
 
}
 
.bg-warning {
 
  background-color: #fcf8e3;
 
}
 
a.bg-warning:hover,
 
a.bg-warning:focus {
 
  background-color: #f7ecb5;
 
}
 
.bg-danger {
 
  background-color: #f2dede;
 
}
 
a.bg-danger:hover,
 
a.bg-danger:focus {
 
  background-color: #e4b9b9;
 
}
 
.page-header {
 
  padding-bottom: 9px;
 
  margin: 40px 0 20px;
 
  border-bottom: 1px solid #eeeeee;
 
}
 
ul,
 
ol {
 
  margin-top: 0;
 
  margin-bottom: 10px;
 
}
 
ul ul,
 
ol ul,
 
ul ol,
 
ol ol {
 
  margin-bottom: 0;
 
}
 
.list-unstyled {
 
  padding-left: 0;
 
  list-style: none;
 
}
 
.list-inline {
 
  padding-left: 0;
 
  list-style: none;
 
  margin-left: -5px;
 
}
 
.list-inline > li {
 
  display: inline-block;
 
  padding-left: 5px;
 
  padding-right: 5px;
 
}
 
dl {
 
  margin-top: 0;
 
  margin-bottom: 20px;
 
}
 
dt,
 
dd {
 
  line-height: 1.42857143;
 
}
 
dt {
 
  font-weight: bold;
 
}
 
dd {
 
  margin-left: 0;
 
}
 
@media (min-width: 768px) {
 
  .dl-horizontal dt {
 
    float: left;
 
    width: 160px;
 
    clear: left;
 
    text-align: right;
 
    overflow: hidden;
 
    text-overflow: ellipsis;
 
    white-space: nowrap;
 
  }
 
  .dl-horizontal dd {
 
    margin-left: 180px;
 
  }
 
}
 
abbr[title],
 
abbr[data-original-title] {
 
  cursor: help;
 
  border-bottom: 1px dotted #777777;
 
}
 
.initialism {
 
  font-size: 90%;
 
  text-transform: uppercase;
 
}
 
blockquote {
 
  padding: 10px 20px;
 
  margin: 0 0 20px;
 
  font-size: 17.5px;
 
  border-left: 5px solid #eeeeee;
 
}
 
blockquote p:last-child,
 
blockquote ul:last-child,
 
blockquote ol:last-child {
 
  margin-bottom: 0;
 
}
 
blockquote footer,
 
blockquote small,
 
blockquote .small {
 
  display: block;
 
  font-size: 80%;
 
  line-height: 1.42857143;
 
  color: #777777;
 
}
 
blockquote footer:before,
 
blockquote small:before,
 
blockquote .small:before {
 
  content: '\2014 \00A0';
 
}
 
.blockquote-reverse,
 
blockquote.pull-right {
 
  padding-right: 15px;
 
  padding-left: 0;
 
  border-right: 5px solid #eeeeee;
 
  border-left: 0;
 
  text-align: right;
 
}
 
.blockquote-reverse footer:before,
 
blockquote.pull-right footer:before,
 
.blockquote-reverse small:before,
 
blockquote.pull-right small:before,
 
.blockquote-reverse .small:before,
 
blockquote.pull-right .small:before {
 
  content: '';
 
}
 
.blockquote-reverse footer:after,
 
blockquote.pull-right footer:after,
 
.blockquote-reverse small:after,
 
blockquote.pull-right small:after,
 
.blockquote-reverse .small:after,
 
blockquote.pull-right .small:after {
 
  content: '\00A0 \2014';
 
}
 
address {
 
  margin-bottom: 20px;
 
  font-style: normal;
 
  line-height: 1.42857143;
 
}
 
code,
 
kbd,
 
pre,
 
samp {
 
  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
 
}
 
code {
 
  padding: 2px 4px;
 
  font-size: 90%;
 
  color: #c7254e;
 
  background-color: #f9f2f4;
 
  border-radius: 4px;
 
}
 
kbd {
 
  padding: 2px 4px;
 
  font-size: 90%;
 
  color: #fff;
 
  background-color: #333;
 
  border-radius: 3px;
 
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
 
}
 
kbd kbd {
 
  padding: 0;
 
  font-size: 100%;
 
  font-weight: bold;
 
  box-shadow: none;
 
}
 
pre {
 
  display: block;
 
  padding: 9.5px;
 
  margin: 0 0 10px;
 
  font-size: 13px;
 
  line-height: 1.42857143;
 
  word-break: break-all;
 
  word-wrap: break-word;
 
  color: #333333;
 
  background-color: #f5f5f5;
 
  border: 1px solid #ccc;
 
  border-radius: 4px;
 
}
 
pre code {
 
  padding: 0;
 
  font-size: inherit;
 
  color: inherit;
 
  white-space: pre-wrap;
 
  background-color: transparent;
 
  border-radius: 0;
 
}
 
.pre-scrollable {
 
  max-height: 340px;
 
  overflow-y: scroll;
 
}
 
.container {
 
  margin-right: auto;
 
  margin-left: auto;
 
  padding-left: 15px;
 
  padding-right: 15px;
 
}
 
@media (min-width: 768px) {
 
  .container {
 
    width: 750px;
 
  }
 
}
 
@media (min-width: 992px) {
 
  .container {
 
    width: 970px;
 
  }
 
}
 
@media (min-width: 1200px) {
 
  .container {
 
    width: 1170px;
 
  }
 
}
 
.container-fluid {
 
  margin-right: auto;
 
  margin-left: auto;
 
  padding-left: 15px;
 
  padding-right: 15px;
 
}
 
.row {
 
  margin-left: -15px;
 
  margin-right: -15px;
 
}
 
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
 
  position: relative;
 
  min-height: 1px;
 
  padding-left: 15px;
 
  padding-right: 15px;
 
}
 
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
 
  float: left;
 
}
 
.col-xs-12 {
 
  width: 100%;
 
}
 
.col-xs-11 {
 
  width: 91.66666667%;
 
}
 
.col-xs-10 {
 
  width: 83.33333333%;
 
}
 
.col-xs-9 {
 
  width: 75%;
 
}
 
.col-xs-8 {
 
  width: 66.66666667%;
 
}
 
.col-xs-7 {
 
  width: 58.33333333%;
 
}
 
.col-xs-6 {
 
  width: 50%;
 
}
 
.col-xs-5 {
 
  width: 41.66666667%;
 
}
 
.col-xs-4 {
 
  width: 33.33333333%;
 
}
 
.col-xs-3 {
 
  width: 25%;
 
}
 
.col-xs-2 {
 
  width: 16.66666667%;
 
}
 
.col-xs-1 {
 
  width: 8.33333333%;
 
}
 
.col-xs-pull-12 {
 
  right: 100%;
 
}
 
.col-xs-pull-11 {
 
  right: 91.66666667%;
 
}
 
.col-xs-pull-10 {
 
  right: 83.33333333%;
 
}
 
.col-xs-pull-9 {
 
  right: 75%;
 
}
 
.col-xs-pull-8 {
 
  right: 66.66666667%;
 
}
 
.col-xs-pull-7 {
 
  right: 58.33333333%;
 
}
 
.col-xs-pull-6 {
 
  right: 50%;
 
}
 
.col-xs-pull-5 {
 
  right: 41.66666667%;
 
}
 
.col-xs-pull-4 {
 
  right: 33.33333333%;
 
}
 
.col-xs-pull-3 {
 
  right: 25%;
 
}
 
.col-xs-pull-2 {
 
  right: 16.66666667%;
 
}
 
.col-xs-pull-1 {
 
  right: 8.33333333%;
 
}
 
.col-xs-pull-0 {
 
  right: auto;
 
}
 
.col-xs-push-12 {
 
  left: 100%;
 
}
 
.col-xs-push-11 {
 
  left: 91.66666667%;
 
}
 
.col-xs-push-10 {
 
  left: 83.33333333%;
 
}
 
.col-xs-push-9 {
 
  left: 75%;
 
}
 
.col-xs-push-8 {
 
  left: 66.66666667%;
 
}
 
.col-xs-push-7 {
 
  left: 58.33333333%;
 
}
 
.col-xs-push-6 {
 
  left: 50%;
 
}
 
.col-xs-push-5 {
 
  left: 41.66666667%;
 
}
 
.col-xs-push-4 {
 
  left: 33.33333333%;
 
}
 
.col-xs-push-3 {
 
  left: 25%;
 
}
 
.col-xs-push-2 {
 
  left: 16.66666667%;
 
}
 
.col-xs-push-1 {
 
  left: 8.33333333%;
 
}
 
.col-xs-push-0 {
 
  left: auto;
 
}
 
.col-xs-offset-12 {
 
  margin-left: 100%;
 
}
 
.col-xs-offset-11 {
 
  margin-left: 91.66666667%;
 
}
 
.col-xs-offset-10 {
 
  margin-left: 83.33333333%;
 
}
 
.col-xs-offset-9 {
 
  margin-left: 75%;
 
}
 
.col-xs-offset-8 {
 
  margin-left: 66.66666667%;
 
}
 
.col-xs-offset-7 {
 
  margin-left: 58.33333333%;
 
}
 
.col-xs-offset-6 {
 
  margin-left: 50%;
 
}
 
.col-xs-offset-5 {
 
  margin-left: 41.66666667%;
 
}
 
.col-xs-offset-4 {
 
  margin-left: 33.33333333%;
 
}
 
.col-xs-offset-3 {
 
  margin-left: 25%;
 
}
 
.col-xs-offset-2 {
 
  margin-left: 16.66666667%;
 
}
 
.col-xs-offset-1 {
 
  margin-left: 8.33333333%;
 
}
 
.col-xs-offset-0 {
 
  margin-left: 0%;
 
}
 
@media (min-width: 768px) {
 
  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
 
    float: left;
 
  }
 
  .col-sm-12 {
 
    width: 100%;
 
  }
 
  .col-sm-11 {
 
    width: 91.66666667%;
 
  }
 
  .col-sm-10 {
 
    width: 83.33333333%;
 
  }
 
  .col-sm-9 {
 
    width: 75%;
 
  }
 
  .col-sm-8 {
 
    width: 66.66666667%;
 
  }
 
  .col-sm-7 {
 
    width: 58.33333333%;
 
  }
 
  .col-sm-6 {
 
    width: 50%;
 
  }
 
  .col-sm-5 {
 
    width: 41.66666667%;
 
  }
 
  .col-sm-4 {
 
    width: 33.33333333%;
 
  }
 
  .col-sm-3 {
 
    width: 25%;
 
  }
 
  .col-sm-2 {
 
    width: 16.66666667%;
 
  }
 
  .col-sm-1 {
 
    width: 8.33333333%;
 
  }
 
  .col-sm-pull-12 {
 
    right: 100%;
 
  }
 
  .col-sm-pull-11 {
 
    right: 91.66666667%;
 
  }
 
  .col-sm-pull-10 {
 
    right: 83.33333333%;
 
  }
 
  .col-sm-pull-9 {
 
    right: 75%;
 
  }
 
  .col-sm-pull-8 {
 
    right: 66.66666667%;
 
  }
 
  .col-sm-pull-7 {
 
    right: 58.33333333%;
 
  }
 
  .col-sm-pull-6 {
 
    right: 50%;
 
  }
 
  .col-sm-pull-5 {
 
    right: 41.66666667%;
 
  }
 
  .col-sm-pull-4 {
 
    right: 33.33333333%;
 
  }
 
  .col-sm-pull-3 {
 
    right: 25%;
 
  }
 
  .col-sm-pull-2 {
 
    right: 16.66666667%;
 
  }
 
  .col-sm-pull-1 {
 
    right: 8.33333333%;
 
  }
 
  .col-sm-pull-0 {
 
    right: auto;
 
  }
 
  .col-sm-push-12 {
 
    left: 100%;
 
  }
 
  .col-sm-push-11 {
 
    left: 91.66666667%;
 
  }
 
  .col-sm-push-10 {
 
    left: 83.33333333%;
 
  }
 
  .col-sm-push-9 {
 
    left: 75%;
 
  }
 
  .col-sm-push-8 {
 
    left: 66.66666667%;
 
  }
 
  .col-sm-push-7 {
 
    left: 58.33333333%;
 
  }
 
  .col-sm-push-6 {
 
    left: 50%;
 
  }
 
  .col-sm-push-5 {
 
    left: 41.66666667%;
 
  }
 
  .col-sm-push-4 {
 
    left: 33.33333333%;
 
  }
 
  .col-sm-push-3 {
 
    left: 25%;
 
  }
 
  .col-sm-push-2 {
 
    left: 16.66666667%;
 
  }
 
  .col-sm-push-1 {
 
    left: 8.33333333%;
 
  }
 
  .col-sm-push-0 {
 
    left: auto;
 
  }
 
  .col-sm-offset-12 {
 
    margin-left: 100%;
 
  }
 
  .col-sm-offset-11 {
 
    margin-left: 91.66666667%;
 
  }
 
  .col-sm-offset-10 {
 
    margin-left: 83.33333333%;
 
  }
 
  .col-sm-offset-9 {
 
    margin-left: 75%;
 
  }
 
  .col-sm-offset-8 {
 
    margin-left: 66.66666667%;
 
  }
 
  .col-sm-offset-7 {
 
    margin-left: 58.33333333%;
 
  }
 
  .col-sm-offset-6 {
 
    margin-left: 50%;
 
  }
 
  .col-sm-offset-5 {
 
    margin-left: 41.66666667%;
 
  }
 
  .col-sm-offset-4 {
 
    margin-left: 33.33333333%;
 
  }
 
  .col-sm-offset-3 {
 
    margin-left: 25%;
 
  }
 
  .col-sm-offset-2 {
 
    margin-left: 16.66666667%;
 
  }
 
  .col-sm-offset-1 {
 
    margin-left: 8.33333333%;
 
  }
 
  .col-sm-offset-0 {
 
    margin-left: 0%;
 
  }
 
}
 
@media (min-width: 992px) {
 
  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
 
    float: left;
 
  }
 
  .col-md-12 {
 
    width: 100%;
 
  }
 
  .col-md-11 {
 
    width: 91.66666667%;
 
  }
 
  .col-md-10 {
 
    width: 83.33333333%;
 
  }
 
  .col-md-9 {
 
    width: 75%;
 
  }
 
  .col-md-8 {
 
    width: 66.66666667%;
 
  }
 
  .col-md-7 {
 
    width: 58.33333333%;
 
  }
 
  .col-md-6 {
 
    width: 50%;
 
  }
 
  .col-md-5 {
 
    width: 41.66666667%;
 
  }
 
  .col-md-4 {
 
    width: 33.33333333%;
 
  }
 
  .col-md-3 {
 
    width: 25%;
 
  }
 
  .col-md-2 {
 
    width: 16.66666667%;
 
  }
 
  .col-md-1 {
 
    width: 8.33333333%;
 
  }
 
  .col-md-pull-12 {
 
    right: 100%;
 
  }
 
  .col-md-pull-11 {
 
    right: 91.66666667%;
 
  }
 
  .col-md-pull-10 {
 
    right: 83.33333333%;
 
  }
 
  .col-md-pull-9 {
 
    right: 75%;
 
  }
 
  .col-md-pull-8 {
 
    right: 66.66666667%;
 
  }
 
  .col-md-pull-7 {
 
    right: 58.33333333%;
 
  }
 
  .col-md-pull-6 {
 
    right: 50%;
 
  }
 
  .col-md-pull-5 {
 
    right: 41.66666667%;
 
  }
 
  .col-md-pull-4 {
 
    right: 33.33333333%;
 
  }
 
  .col-md-pull-3 {
 
    right: 25%;
 
  }
 
  .col-md-pull-2 {
 
    right: 16.66666667%;
 
  }
 
  .col-md-pull-1 {
 
    right: 8.33333333%;
 
  }
 
  .col-md-pull-0 {
 
    right: auto;
 
  }
 
  .col-md-push-12 {
 
    left: 100%;
 
  }
 
  .col-md-push-11 {
 
    left: 91.66666667%;
 
  }
 
  .col-md-push-10 {
 
    left: 83.33333333%;
 
  }
 
  .col-md-push-9 {
 
    left: 75%;
 
  }
 
  .col-md-push-8 {
 
    left: 66.66666667%;
 
  }
 
  .col-md-push-7 {
 
    left: 58.33333333%;
 
  }
 
  .col-md-push-6 {
 
    left: 50%;
 
  }
 
  .col-md-push-5 {
 
    left: 41.66666667%;
 
  }
 
  .col-md-push-4 {
 
    left: 33.33333333%;
 
  }
 
  .col-md-push-3 {
 
    left: 25%;
 
  }
 
  .col-md-push-2 {
 
    left: 16.66666667%;
 
  }
 
  .col-md-push-1 {
 
    left: 8.33333333%;
 
  }
 
  .col-md-push-0 {
 
    left: auto;
 
  }
 
  .col-md-offset-12 {
 
    margin-left: 100%;
 
  }
 
  .col-md-offset-11 {
 
    margin-left: 91.66666667%;
 
  }
 
  .col-md-offset-10 {
 
    margin-left: 83.33333333%;
 
  }
 
  .col-md-offset-9 {
 
    margin-left: 75%;
 
  }
 
  .col-md-offset-8 {
 
    margin-left: 66.66666667%;
 
  }
 
  .col-md-offset-7 {
 
    margin-left: 58.33333333%;
 
  }
 
  .col-md-offset-6 {
 
    margin-left: 50%;
 
  }
 
  .col-md-offset-5 {
 
    margin-left: 41.66666667%;
 
  }
 
  .col-md-offset-4 {
 
    margin-left: 33.33333333%;
 
  }
 
  .col-md-offset-3 {
 
    margin-left: 25%;
 
  }
 
  .col-md-offset-2 {
 
    margin-left: 16.66666667%;
 
  }
 
  .col-md-offset-1 {
 
    margin-left: 8.33333333%;
 
  }
 
  .col-md-offset-0 {
 
    margin-left: 0%;
 
  }
 
}
 
@media (min-width: 1200px) {
 
  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
 
    float: left;
 
  }
 
  .col-lg-12 {
 
    width: 100%;
 
  }
 
  .col-lg-11 {
 
    width: 91.66666667%;
 
  }
 
  .col-lg-10 {
 
    width: 83.33333333%;
 
  }
 
  .col-lg-9 {
 
    width: 75%;
 
  }
 
  .col-lg-8 {
 
    width: 66.66666667%;
 
  }
 
  .col-lg-7 {
 
    width: 58.33333333%;
 
  }
 
  .col-lg-6 {
 
    width: 50%;
 
  }
 
  .col-lg-5 {
 
    width: 41.66666667%;
 
  }
 
  .col-lg-4 {
 
    width: 33.33333333%;
 
  }
 
  .col-lg-3 {
 
    width: 25%;
 
  }
 
  .col-lg-2 {
 
    width: 16.66666667%;
 
  }
 
  .col-lg-1 {
 
    width: 8.33333333%;
 
  }
 
  .col-lg-pull-12 {
 
    right: 100%;
 
  }
 
  .col-lg-pull-11 {
 
    right: 91.66666667%;
 
  }
 
  .col-lg-pull-10 {
 
    right: 83.33333333%;
 
  }
 
  .col-lg-pull-9 {
 
    right: 75%;
 
  }
 
  .col-lg-pull-8 {
 
    right: 66.66666667%;
 
  }
 
  .col-lg-pull-7 {
 
    right: 58.33333333%;
 
  }
 
  .col-lg-pull-6 {
 
    right: 50%;
 
  }
 
  .col-lg-pull-5 {
 
    right: 41.66666667%;
 
  }
 
  .col-lg-pull-4 {
 
    right: 33.33333333%;
 
  }
 
  .col-lg-pull-3 {
 
    right: 25%;
 
  }
 
  .col-lg-pull-2 {
 
    right: 16.66666667%;
 
  }
 
  .col-lg-pull-1 {
 
    right: 8.33333333%;
 
  }
 
  .col-lg-pull-0 {
 
    right: auto;
 
  }
 
  .col-lg-push-12 {
 
    left: 100%;
 
  }
 
  .col-lg-push-11 {
 
    left: 91.66666667%;
 
  }
 
  .col-lg-push-10 {
 
    left: 83.33333333%;
 
  }
 
  .col-lg-push-9 {
 
    left: 75%;
 
  }
 
  .col-lg-push-8 {
 
    left: 66.66666667%;
 
  }
 
  .col-lg-push-7 {
 
    left: 58.33333333%;
 
  }
 
  .col-lg-push-6 {
 
    left: 50%;
 
  }
 
  .col-lg-push-5 {
 
    left: 41.66666667%;
 
  }
 
  .col-lg-push-4 {
 
    left: 33.33333333%;
 
  }
 
  .col-lg-push-3 {
 
    left: 25%;
 
  }
 
  .col-lg-push-2 {
 
    left: 16.66666667%;
 
  }
 
  .col-lg-push-1 {
 
    left: 8.33333333%;
 
  }
 
  .col-lg-push-0 {
 
    left: auto;
 
  }
 
  .col-lg-offset-12 {
 
    margin-left: 100%;
 
  }
 
  .col-lg-offset-11 {
 
    margin-left: 91.66666667%;
 
  }
 
  .col-lg-offset-10 {
 
    margin-left: 83.33333333%;
 
  }
 
  .col-lg-offset-9 {
 
    margin-left: 75%;
 
  }
 
  .col-lg-offset-8 {
 
    margin-left: 66.66666667%;
 
  }
 
  .col-lg-offset-7 {
 
    margin-left: 58.33333333%;
 
  }
 
  .col-lg-offset-6 {
 
    margin-left: 50%;
 
  }
 
  .col-lg-offset-5 {
 
    margin-left: 41.66666667%;
 
  }
 
  .col-lg-offset-4 {
 
    margin-left: 33.33333333%;
 
  }
 
  .col-lg-offset-3 {
 
    margin-left: 25%;
 
  }
 
  .col-lg-offset-2 {
 
    margin-left: 16.66666667%;
 
  }
 
  .col-lg-offset-1 {
 
    margin-left: 8.33333333%;
 
  }
 
  .col-lg-offset-0 {
 
    margin-left: 0%;
 
  }
 
}
 
table {
 
  background-color: transparent;
 
}
 
caption {
 
  padding-top: 8px;
 
  padding-bottom: 8px;
 
  color: #777777;
 
  text-align: left;
 
}
 
th {
 
  text-align: left;
 
}
 
.table {
 
  width: 100%;
 
  max-width: 100%;
 
  margin-bottom: 20px;
 
}
 
.table > thead > tr > th,
 
.table > tbody > tr > th,
 
.table > tfoot > tr > th,
 
.table > thead > tr > td,
 
.table > tbody > tr > td,
 
.table > tfoot > tr > td {
 
  padding: 8px;
 
  line-height: 1.42857143;
 
  vertical-align: top;
 
  border-top: 1px solid #ddd;
 
}
 
.table > thead > tr > th {
 
  vertical-align: bottom;
 
  border-bottom: 2px solid #ddd;
 
}
 
.table > caption + thead > tr:first-child > th,
 
.table > colgroup + thead > tr:first-child > th,
 
.table > thead:first-child > tr:first-child > th,
 
.table > caption + thead > tr:first-child > td,
 
.table > colgroup + thead > tr:first-child > td,
 
.table > thead:first-child > tr:first-child > td {
 
  border-top: 0;
 
}
 
.table > tbody + tbody {
 
  border-top: 2px solid #ddd;
 
}
 
.table .table {
 
  background-color: #fff;
 
}
 
.table-condensed > thead > tr > th,
 
.table-condensed > tbody > tr > th,
 
.table-condensed > tfoot > tr > th,
 
.table-condensed > thead > tr > td,
 
.table-condensed > tbody > tr > td,
 
.table-condensed > tfoot > tr > td {
 
  padding: 5px;
 
}
 
.table-bordered {
 
  border: 1px solid #ddd;
 
}
 
.table-bordered > thead > tr > th,
 
.table-bordered > tbody > tr > th,
 
.table-bordered > tfoot > tr > th,
 
.table-bordered > thead > tr > td,
 
.table-bordered > tbody > tr > td,
 
.table-bordered > tfoot > tr > td {
 
  border: 1px solid #ddd;
 
}
 
.table-bordered > thead > tr > th,
 
.table-bordered > thead > tr > td {
 
  border-bottom-width: 2px;
 
}
 
.table-striped > tbody > tr:nth-of-type(odd) {
 
  background-color: #f9f9f9;
 
}
 
.table-hover > tbody > tr:hover {
 
  background-color: #f5f5f5;
 
}
 
table col[class*="col-"] {
 
  position: static;
 
  float: none;
 
  display: table-column;
 
}
 
table td[class*="col-"],
 
table th[class*="col-"] {
 
  position: static;
 
  float: none;
 
  display: table-cell;
 
}
 
.table > thead > tr > td.active,
 
.table > tbody > tr > td.active,
 
.table > tfoot > tr > td.active,
 
.table > thead > tr > th.active,
 
.table > tbody > tr > th.active,
 
.table > tfoot > tr > th.active,
 
.table > thead > tr.active > td,
 
.table > tbody > tr.active > td,
 
.table > tfoot > tr.active > td,
 
.table > thead > tr.active > th,
 
.table > tbody > tr.active > th,
 
.table > tfoot > tr.active > th {
 
  background-color: #f5f5f5;
 
}
 
.table-hover > tbody > tr > td.active:hover,
 
.table-hover > tbody > tr > th.active:hover,
 
.table-hover > tbody > tr.active:hover > td,
 
.table-hover > tbody > tr:hover > .active,
 
.table-hover > tbody > tr.active:hover > th {
 
  background-color: #e8e8e8;
 
}
 
.table > thead > tr > td.success,
 
.table > tbody > tr > td.success,
 
.table > tfoot > tr > td.success,
 
.table > thead > tr > th.success,
 
.table > tbody > tr > th.success,
 
.table > tfoot > tr > th.success,
 
.table > thead > tr.success > td,
 
.table > tbody > tr.success > td,
 
.table > tfoot > tr.success > td,
 
.table > thead > tr.success > th,
 
.table > tbody > tr.success > th,
 
.table > tfoot > tr.success > th {
 
  background-color: #dff0d8;
 
}
 
.table-hover > tbody > tr > td.success:hover,
 
.table-hover > tbody > tr > th.success:hover,
 
.table-hover > tbody > tr.success:hover > td,
 
.table-hover > tbody > tr:hover > .success,
 
.table-hover > tbody > tr.success:hover > th {
 
  background-color: #d0e9c6;
 
}
 
.table > thead > tr > td.info,
 
.table > tbody > tr > td.info,
 
.table > tfoot > tr > td.info,
 
.table > thead > tr > th.info,
 
.table > tbody > tr > th.info,
 
.table > tfoot > tr > th.info,
 
.table > thead > tr.info > td,
 
.table > tbody > tr.info > td,
 
.table > tfoot > tr.info > td,
 
.table > thead > tr.info > th,
 
.table > tbody > tr.info > th,
 
.table > tfoot > tr.info > th {
 
  background-color: #d9edf7;
 
}
 
.table-hover > tbody > tr > td.info:hover,
 
.table-hover > tbody > tr > th.info:hover,
 
.table-hover > tbody > tr.info:hover > td,
 
.table-hover > tbody > tr:hover > .info,
 
.table-hover > tbody > tr.info:hover > th {
 
  background-color: #c4e3f3;
 
}
 
.table > thead > tr > td.warning,
 
.table > tbody > tr > td.warning,
 
.table > tfoot > tr > td.warning,
 
.table > thead > tr > th.warning,
 
.table > tbody > tr > th.warning,
 
.table > tfoot > tr > th.warning,
 
.table > thead > tr.warning > td,
 
.table > tbody > tr.warning > td,
 
.table > tfoot > tr.warning > td,
 
.table > thead > tr.warning > th,
 
.table > tbody > tr.warning > th,
 
.table > tfoot > tr.warning > th {
 
  background-color: #fcf8e3;
 
}
 
.table-hover > tbody > tr > td.warning:hover,
 
.table-hover > tbody > tr > th.warning:hover,
 
.table-hover > tbody > tr.warning:hover > td,
 
.table-hover > tbody > tr:hover > .warning,
 
.table-hover > tbody > tr.warning:hover > th {
 
  background-color: #faf2cc;
 
}
 
.table > thead > tr > td.danger,
 
.table > tbody > tr > td.danger,
 
.table > tfoot > tr > td.danger,
 
.table > thead > tr > th.danger,
 
.table > tbody > tr > th.danger,
 
.table > tfoot > tr > th.danger,
 
.table > thead > tr.danger > td,
 
.table > tbody > tr.danger > td,
 
.table > tfoot > tr.danger > td,
 
.table > thead > tr.danger > th,
 
.table > tbody > tr.danger > th,
 
.table > tfoot > tr.danger > th {
 
  background-color: #f2dede;
 
}
 
.table-hover > tbody > tr > td.danger:hover,
 
.table-hover > tbody > tr > th.danger:hover,
 
.table-hover > tbody > tr.danger:hover > td,
 
.table-hover > tbody > tr:hover > .danger,
 
.table-hover > tbody > tr.danger:hover > th {
 
  background-color: #ebcccc;
 
}
 
.table-responsive {
 
  overflow-x: auto;
 
  min-height: 0.01%;
 
}
 
@media screen and (max-width: 767px) {
 
  .table-responsive {
 
    width: 100%;
 
    margin-bottom: 15px;
 
    overflow-y: hidden;
 
    -ms-overflow-style: -ms-autohiding-scrollbar;
 
    border: 1px solid #ddd;
 
  }
 
  .table-responsive > .table {
 
    margin-bottom: 0;
 
  }
 
  .table-responsive > .table > thead > tr > th,
 
  .table-responsive > .table > tbody > tr > th,
 
  .table-responsive > .table > tfoot > tr > th,
 
  .table-responsive > .table > thead > tr > td,
 
  .table-responsive > .table > tbody > tr > td,
 
  .table-responsive > .table > tfoot > tr > td {
 
    white-space: nowrap;
 
  }
 
  .table-responsive > .table-bordered {
 
    border: 0;
 
  }
 
  .table-responsive > .table-bordered > thead > tr > th:first-child,
 
  .table-responsive > .table-bordered > tbody > tr > th:first-child,
 
  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
 
  .table-responsive > .table-bordered > thead > tr > td:first-child,
 
  .table-responsive > .table-bordered > tbody > tr > td:first-child,
 
  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
 
    border-left: 0;
 
  }
 
  .table-responsive > .table-bordered > thead > tr > th:last-child,
 
  .table-responsive > .table-bordered > tbody > tr > th:last-child,
 
  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
 
  .table-responsive > .table-bordered > thead > tr > td:last-child,
 
  .table-responsive > .table-bordered > tbody > tr > td:last-child,
 
  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
 
    border-right: 0;
 
  }
 
  .table-responsive > .table-bordered > tbody > tr:last-child > th,
 
  .table-responsive > .table-bordered > tfoot > tr:last-child > th,
 
  .table-responsive > .table-bordered > tbody > tr:last-child > td,
 
  .table-responsive > .table-bordered > tfoot > tr:last-child > td {
 
    border-bottom: 0;
 
  }
 
}
 
fieldset {
 
  padding: 0;
 
  margin: 0;
 
  border: 0;
 
  min-width: 0;
 
}
 
legend {
 
  display: block;
 
  width: 100%;
 
  padding: 0;
 
  margin-bottom: 20px;
 
  font-size: 21px;
 
  line-height: inherit;
 
  color: #333333;
 
  border: 0;
 
  border-bottom: 1px solid #e5e5e5;
 
}
 
label {
 
  display: inline-block;
 
  max-width: 100%;
 
  margin-bottom: 5px;
 
  font-weight: bold;
 
}
 
input[type="search"] {
 
  box-sizing: border-box;
 
}
 
input[type="radio"],
 
input[type="checkbox"] {
 
  margin: 4px 0 0;
 
  margin-top: 1px \9;
 
  line-height: normal;
 
}
 
input[type="file"] {
 
  display: block;
 
}
 
input[type="range"] {
 
  display: block;
 
  width: 100%;
 
}
 
select[multiple],
 
select[size] {
 
  height: auto;
 
}
 
input[type="file"]:focus,
 
input[type="radio"]:focus,
 
input[type="checkbox"]:focus {
 
  outline: thin dotted;
 
  outline: 5px auto -webkit-focus-ring-color;
 
  outline-offset: -2px;
 
}
 
output {
 
  display: block;
 
  padding-top: 7px;
 
  font-size: 14px;
 
  line-height: 1.42857143;
 
  color: #555555;
 
}
 
.form-control {
 
  display: block;
 
  width: 100%;
 
  height: 34px;
 
  padding: 6px 12px;
 
  font-size: 14px;
 
  line-height: 1.42857143;
 
  color: #555555;
 
  background-color: #fff;
 
  background-image: none;
 
  border: 1px solid #ccc;
 
  border-radius: 4px;
 
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
 
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
 
}
 
.form-control:focus {
 
  border-color: #66afe9;
 
  outline: 0;
 
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
 
}
 
.form-control::-moz-placeholder {
 
  color: #999;
 
  opacity: 1;
 
}
 
.form-control:-ms-input-placeholder {
 
  color: #999;
 
}
 
.form-control::-webkit-input-placeholder {
 
  color: #999;
 
}
 
.form-control::-ms-expand {
 
  border: 0;
 
  background-color: transparent;
 
}
 
.form-control[disabled],
 
.form-control[readonly],
 
fieldset[disabled] .form-control {
 
  background-color: #eeeeee;
 
  opacity: 1;
 
}
 
.form-control[disabled],
 
fieldset[disabled] .form-control {
 
  cursor: not-allowed;
 
}
 
textarea.form-control {
 
  height: auto;
 
}
 
input[type="search"] {
 
  -webkit-appearance: none;
 
}
 
@media screen and (-webkit-min-device-pixel-ratio: 0) {
 
  input[type="date"].form-control,
 
  input[type="time"].form-control,
 
  input[type="datetime-local"].form-control,
 
  input[type="month"].form-control {
 
    line-height: 34px;
 
  }
 
  input[type="date"].input-sm,
 
  input[type="time"].input-sm,
 
  input[type="datetime-local"].input-sm,
 
  input[type="month"].input-sm,
 
  .input-group-sm input[type="date"],
 
  .input-group-sm input[type="time"],
 
  .input-group-sm input[type="datetime-local"],
 
  .input-group-sm input[type="month"] {
 
    line-height: 30px;
 
  }
 
  input[type="date"].input-lg,
 
  input[type="time"].input-lg,
 
  input[type="datetime-local"].input-lg,
 
  input[type="month"].input-lg,
 
  .input-group-lg input[type="date"],
 
  .input-group-lg input[type="time"],
 
  .input-group-lg input[type="datetime-local"],
 
  .input-group-lg input[type="month"] {
 
    line-height: 46px;
 
  }
 
}
 
.form-group {
 
  margin-bottom: 15px;
 
}
 
.radio,
 
.checkbox {
 
  position: relative;
 
  display: block;
 
  margin-top: 10px;
 
  margin-bottom: 10px;
 
}
 
.radio label,
 
.checkbox label {
 
  min-height: 20px;
 
  padding-left: 20px;
 
  margin-bottom: 0;
 
  font-weight: normal;
 
  cursor: pointer;
 
}
 
.radio input[type="radio"],
 
.radio-inline input[type="radio"],
 
.checkbox input[type="checkbox"],
 
.checkbox-inline input[type="checkbox"] {
 
  position: absolute;
 
  margin-left: -20px;
 
  margin-top: 4px \9;
 
}
 
.radio + .radio,
 
.checkbox + .checkbox {
 
  margin-top: -5px;
 
}
 
.radio-inline,
 
.checkbox-inline {
 
  position: relative;
 
  display: inline-block;
 
  padding-left: 20px;
 
  margin-bottom: 0;
 
  vertical-align: middle;
 
  font-weight: normal;
 
  cursor: pointer;
 
}
 
.radio-inline + .radio-inline,
 
.checkbox-inline + .checkbox-inline {
 
  margin-top: 0;
 
  margin-left: 10px;
 
}
 
input[type="radio"][disabled],
 
input[type="checkbox"][disabled],
 
input[type="radio"].disabled,
 
input[type="checkbox"].disabled,
 
fieldset[disabled] input[type="radio"],
 
fieldset[disabled] input[type="checkbox"] {
 
  cursor: not-allowed;
 
}
 
.radio-inline.disabled,
 
.checkbox-inline.disabled,
 
fieldset[disabled] .radio-inline,
 
fieldset[disabled] .checkbox-inline {
 
  cursor: not-allowed;
 
}
 
.radio.disabled label,
 
.checkbox.disabled label,
 
fieldset[disabled] .radio label,
 
fieldset[disabled] .checkbox label {
 
  cursor: not-allowed;
 
}
 
.form-control-static {
 
  padding-top: 7px;
 
  padding-bottom: 7px;
 
  margin-bottom: 0;
 
  min-height: 34px;
 
}
 
.form-control-static.input-lg,
 
.form-control-static.input-sm {
 
  padding-left: 0;
 
  padding-right: 0;
 
}
 
.input-sm {
 
  height: 30px;
 
  padding: 5px 10px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
  border-radius: 3px;
 
}
 
select.input-sm {
 
  height: 30px;
 
  line-height: 30px;
 
}
 
textarea.input-sm,
 
select[multiple].input-sm {
 
  height: auto;
 
}
 
.form-group-sm .form-control {
 
  height: 30px;
 
  padding: 5px 10px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
  border-radius: 3px;
 
}
 
.form-group-sm select.form-control {
 
  height: 30px;
 
  line-height: 30px;
 
}
 
.form-group-sm textarea.form-control,
 
.form-group-sm select[multiple].form-control {
 
  height: auto;
 
}
 
.form-group-sm .form-control-static {
 
  height: 30px;
 
  min-height: 32px;
 
  padding: 6px 10px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
}
 
.input-lg {
 
  height: 46px;
 
  padding: 10px 16px;
 
  font-size: 18px;
 
  line-height: 1.3333333;
 
  border-radius: 6px;
 
}
 
select.input-lg {
 
  height: 46px;
 
  line-height: 46px;
 
}
 
textarea.input-lg,
 
select[multiple].input-lg {
 
  height: auto;
 
}
 
.form-group-lg .form-control {
 
  height: 46px;
 
  padding: 10px 16px;
 
  font-size: 18px;
 
  line-height: 1.3333333;
 
  border-radius: 6px;
 
}
 
.form-group-lg select.form-control {
 
  height: 46px;
 
  line-height: 46px;
 
}
 
.form-group-lg textarea.form-control,
 
.form-group-lg select[multiple].form-control {
 
  height: auto;
 
}
 
.form-group-lg .form-control-static {
 
  height: 46px;
 
  min-height: 38px;
 
  padding: 11px 16px;
 
  font-size: 18px;
 
  line-height: 1.3333333;
 
}
 
.has-feedback {
 
  position: relative;
 
}
 
.has-feedback .form-control {
 
  padding-right: 42.5px;
 
}
 
.form-control-feedback {
 
  position: absolute;
 
  top: 0;
 
  right: 0;
 
  z-index: 2;
 
  display: block;
 
  width: 34px;
 
  height: 34px;
 
  line-height: 34px;
 
  text-align: center;
 
  pointer-events: none;
 
}
 
.input-lg + .form-control-feedback,
 
.input-group-lg + .form-control-feedback,
 
.form-group-lg .form-control + .form-control-feedback {
 
  width: 46px;
 
  height: 46px;
 
  line-height: 46px;
 
}
 
.input-sm + .form-control-feedback,
 
.input-group-sm + .form-control-feedback,
 
.form-group-sm .form-control + .form-control-feedback {
 
  width: 30px;
 
  height: 30px;
 
  line-height: 30px;
 
}
 
.has-success .help-block,
 
.has-success .control-label,
 
.has-success .radio,
 
.has-success .checkbox,
 
.has-success .radio-inline,
 
.has-success .checkbox-inline,
 
.has-success.radio label,
 
.has-success.checkbox label,
 
.has-success.radio-inline label,
 
.has-success.checkbox-inline label {
 
  color: #3c763d;
 
}
 
.has-success .form-control {
 
  border-color: #3c763d;
 
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 
}
 
.has-success .form-control:focus {
 
  border-color: #2b542c;
 
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
 
}
 
.has-success .input-group-addon {
 
  color: #3c763d;
 
  border-color: #3c763d;
 
  background-color: #dff0d8;
 
}
 
.has-success .form-control-feedback {
 
  color: #3c763d;
 
}
 
.has-warning .help-block,
 
.has-warning .control-label,
 
.has-warning .radio,
 
.has-warning .checkbox,
 
.has-warning .radio-inline,
 
.has-warning .checkbox-inline,
 
.has-warning.radio label,
 
.has-warning.checkbox label,
 
.has-warning.radio-inline label,
 
.has-warning.checkbox-inline label {
 
  color: #8a6d3b;
 
}
 
.has-warning .form-control {
 
  border-color: #8a6d3b;
 
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 
}
 
.has-warning .form-control:focus {
 
  border-color: #66512c;
 
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
 
}
 
.has-warning .input-group-addon {
 
  color: #8a6d3b;
 
  border-color: #8a6d3b;
 
  background-color: #fcf8e3;
 
}
 
.has-warning .form-control-feedback {
 
  color: #8a6d3b;
 
}
 
.has-error .help-block,
 
.has-error .control-label,
 
.has-error .radio,
 
.has-error .checkbox,
 
.has-error .radio-inline,
 
.has-error .checkbox-inline,
 
.has-error.radio label,
 
.has-error.checkbox label,
 
.has-error.radio-inline label,
 
.has-error.checkbox-inline label {
 
  color: #a94442;
 
}
 
.has-error .form-control {
 
  border-color: #a94442;
 
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 
}
 
.has-error .form-control:focus {
 
  border-color: #843534;
 
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
 
}
 
.has-error .input-group-addon {
 
  color: #a94442;
 
  border-color: #a94442;
 
  background-color: #f2dede;
 
}
 
.has-error .form-control-feedback {
 
  color: #a94442;
 
}
 
.has-feedback label ~ .form-control-feedback {
 
  top: 25px;
 
}
 
.has-feedback label.sr-only ~ .form-control-feedback {
 
  top: 0;
 
}
 
.help-block {
 
  display: block;
 
  margin-top: 5px;
 
  margin-bottom: 10px;
 
  color: #737373;
 
}
 
@media (min-width: 768px) {
 
  .form-inline .form-group {
 
    display: inline-block;
 
    margin-bottom: 0;
 
    vertical-align: middle;
 
  }
 
  .form-inline .form-control {
 
    display: inline-block;
 
    width: auto;
 
    vertical-align: middle;
 
  }
 
  .form-inline .form-control-static {
 
    display: inline-block;
 
  }
 
  .form-inline .input-group {
 
    display: inline-table;
 
    vertical-align: middle;
 
  }
 
  .form-inline .input-group .input-group-addon,
 
  .form-inline .input-group .input-group-btn,
 
  .form-inline .input-group .form-control {
 
    width: auto;
 
  }
 
  .form-inline .input-group > .form-control {
 
    width: 100%;
 
  }
 
  .form-inline .control-label {
 
    margin-bottom: 0;
 
    vertical-align: middle;
 
  }
 
  .form-inline .radio,
 
  .form-inline .checkbox {
 
    display: inline-block;
 
    margin-top: 0;
 
    margin-bottom: 0;
 
    vertical-align: middle;
 
  }
 
  .form-inline .radio label,
 
  .form-inline .checkbox label {
 
    padding-left: 0;
 
  }
 
  .form-inline .radio input[type="radio"],
 
  .form-inline .checkbox input[type="checkbox"] {
 
    position: relative;
 
    margin-left: 0;
 
  }
 
  .form-inline .has-feedback .form-control-feedback {
 
    top: 0;
 
  }
 
}
 
.form-horizontal .radio,
 
.form-horizontal .checkbox,
 
.form-horizontal .radio-inline,
 
.form-horizontal .checkbox-inline {
 
  margin-top: 0;
 
  margin-bottom: 0;
 
  padding-top: 7px;
 
}
 
.form-horizontal .radio,
 
.form-horizontal .checkbox {
 
  min-height: 27px;
 
}
 
.form-horizontal .form-group {
 
  margin-left: -15px;
 
  margin-right: -15px;
 
}
 
@media (min-width: 768px) {
 
  .form-horizontal .control-label {
 
    text-align: right;
 
    margin-bottom: 0;
 
    padding-top: 7px;
 
  }
 
}
 
.form-horizontal .has-feedback .form-control-feedback {
 
  right: 15px;
 
}
 
@media (min-width: 768px) {
 
  .form-horizontal .form-group-lg .control-label {
 
    padding-top: 11px;
 
    font-size: 18px;
 
  }
 
}
 
@media (min-width: 768px) {
 
  .form-horizontal .form-group-sm .control-label {
 
    padding-top: 6px;
 
    font-size: 12px;
 
  }
 
}
 
.btn {
 
  display: inline-block;
 
  margin-bottom: 0;
 
  font-weight: normal;
 
  text-align: center;
 
  vertical-align: middle;
 
  -ms-touch-action: manipulation;
 
      touch-action: manipulation;
 
  cursor: pointer;
 
  background-image: none;
 
  border: 1px solid transparent;
 
  white-space: nowrap;
 
  padding: 6px 12px;
 
  font-size: 14px;
 
  line-height: 1.42857143;
 
  border-radius: 4px;
 
  -webkit-user-select: none;
 
  -moz-user-select: none;
 
  -ms-user-select: none;
 
  user-select: none;
 
}
 
.btn:focus,
 
.btn:active:focus,
 
.btn.active:focus,
 
.btn.focus,
 
.btn:active.focus,
 
.btn.active.focus {
 
  outline: thin dotted;
 
  outline: 5px auto -webkit-focus-ring-color;
 
  outline-offset: -2px;
 
}
 
.btn:hover,
 
.btn:focus,
 
.btn.focus {
 
  color: #333;
 
  text-decoration: none;
 
}
 
.btn:active,
 
.btn.active {
 
  outline: 0;
 
  background-image: none;
 
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
 
}
 
.btn.disabled,
 
.btn[disabled],
 
fieldset[disabled] .btn {
 
  cursor: not-allowed;
 
  opacity: 0.65;
 
  filter: alpha(opacity=65);
 
  box-shadow: none;
 
}
 
a.btn.disabled,
 
fieldset[disabled] a.btn {
 
  pointer-events: none;
 
}
 
.btn-default {
 
  color: #333;
 
  background-color: #fff;
 
  border-color: #ccc;
 
}
 
.btn-default:focus,
 
.btn-default.focus {
 
  color: #333;
 
  background-color: #e6e6e6;
 
  border-color: #8c8c8c;
 
}
 
.btn-default:hover {
 
  color: #333;
 
  background-color: #e6e6e6;
 
  border-color: #adadad;
 
}
 
.btn-default:active,
 
.btn-default.active,
 
.open > .dropdown-toggle.btn-default {
 
  color: #333;
 
  background-color: #e6e6e6;
 
  border-color: #adadad;
 
}
 
.btn-default:active:hover,
 
.btn-default.active:hover,
 
.open > .dropdown-toggle.btn-default:hover,
 
.btn-default:active:focus,
 
.btn-default.active:focus,
 
.open > .dropdown-toggle.btn-default:focus,
 
.btn-default:active.focus,
 
.btn-default.active.focus,
 
.open > .dropdown-toggle.btn-default.focus {
 
  color: #333;
 
  background-color: #d4d4d4;
 
  border-color: #8c8c8c;
 
}
 
.btn-default:active,
 
.btn-default.active,
 
.open > .dropdown-toggle.btn-default {
 
  background-image: none;
 
}
 
.btn-default.disabled:hover,
 
.btn-default[disabled]:hover,
 
fieldset[disabled] .btn-default:hover,
 
.btn-default.disabled:focus,
 
.btn-default[disabled]:focus,
 
fieldset[disabled] .btn-default:focus,
 
.btn-default.disabled.focus,
 
.btn-default[disabled].focus,
 
fieldset[disabled] .btn-default.focus {
 
  background-color: #fff;
 
  border-color: #ccc;
 
}
 
.btn-default .badge {
 
  color: #fff;
 
  background-color: #333;
 
}
 
.btn-primary {
 
  color: #fff;
 
  background-color: #337ab7;
 
  border-color: #2e6da4;
 
}
 
.btn-primary:focus,
 
.btn-primary.focus {
 
  color: #fff;
 
  background-color: #286090;
 
  border-color: #122b40;
 
}
 
.btn-primary:hover {
 
  color: #fff;
 
  background-color: #286090;
 
  border-color: #204d74;
 
}
 
.btn-primary:active,
 
.btn-primary.active,
 
.open > .dropdown-toggle.btn-primary {
 
  color: #fff;
 
  background-color: #286090;
 
  border-color: #204d74;
 
}
 
.btn-primary:active:hover,
 
.btn-primary.active:hover,
 
.open > .dropdown-toggle.btn-primary:hover,
 
.btn-primary:active:focus,
 
.btn-primary.active:focus,
 
.open > .dropdown-toggle.btn-primary:focus,
 
.btn-primary:active.focus,
 
.btn-primary.active.focus,
 
.open > .dropdown-toggle.btn-primary.focus {
 
  color: #fff;
 
  background-color: #204d74;
 
  border-color: #122b40;
 
}
 
.btn-primary:active,
 
.btn-primary.active,
 
.open > .dropdown-toggle.btn-primary {
 
  background-image: none;
 
}
 
.btn-primary.disabled:hover,
 
.btn-primary[disabled]:hover,
 
fieldset[disabled] .btn-primary:hover,
 
.btn-primary.disabled:focus,
 
.btn-primary[disabled]:focus,
 
fieldset[disabled] .btn-primary:focus,
 
.btn-primary.disabled.focus,
 
.btn-primary[disabled].focus,
 
fieldset[disabled] .btn-primary.focus {
 
  background-color: #337ab7;
 
  border-color: #2e6da4;
 
}
 
.btn-primary .badge {
 
  color: #337ab7;
 
  background-color: #fff;
 
}
 
.btn-success {
 
  color: #fff;
 
  background-color: #5cb85c;
 
  border-color: #4cae4c;
 
}
 
.btn-success:focus,
 
.btn-success.focus {
 
  color: #fff;
 
  background-color: #449d44;
 
  border-color: #255625;
 
}
 
.btn-success:hover {
 
  color: #fff;
 
  background-color: #449d44;
 
  border-color: #398439;
 
}
 
.btn-success:active,
 
.btn-success.active,
 
.open > .dropdown-toggle.btn-success {
 
  color: #fff;
 
  background-color: #449d44;
 
  border-color: #398439;
 
}
 
.btn-success:active:hover,
 
.btn-success.active:hover,
 
.open > .dropdown-toggle.btn-success:hover,
 
.btn-success:active:focus,
 
.btn-success.active:focus,
 
.open > .dropdown-toggle.btn-success:focus,
 
.btn-success:active.focus,
 
.btn-success.active.focus,
 
.open > .dropdown-toggle.btn-success.focus {
 
  color: #fff;
 
  background-color: #398439;
 
  border-color: #255625;
 
}
 
.btn-success:active,
 
.btn-success.active,
 
.open > .dropdown-toggle.btn-success {
 
  background-image: none;
 
}
 
.btn-success.disabled:hover,
 
.btn-success[disabled]:hover,
 
fieldset[disabled] .btn-success:hover,
 
.btn-success.disabled:focus,
 
.btn-success[disabled]:focus,
 
fieldset[disabled] .btn-success:focus,
 
.btn-success.disabled.focus,
 
.btn-success[disabled].focus,
 
fieldset[disabled] .btn-success.focus {
 
  background-color: #5cb85c;
 
  border-color: #4cae4c;
 
}
 
.btn-success .badge {
 
  color: #5cb85c;
 
  background-color: #fff;
 
}
 
.btn-info {
 
  color: #fff;
 
  background-color: #5bc0de;
 
  border-color: #46b8da;
 
}
 
.btn-info:focus,
 
.btn-info.focus {
 
  color: #fff;
 
  background-color: #31b0d5;
 
  border-color: #1b6d85;
 
}
 
.btn-info:hover {
 
  color: #fff;
 
  background-color: #31b0d5;
 
  border-color: #269abc;
 
}
 
.btn-info:active,
 
.btn-info.active,
 
.open > .dropdown-toggle.btn-info {
 
  color: #fff;
 
  background-color: #31b0d5;
 
  border-color: #269abc;
 
}
 
.btn-info:active:hover,
 
.btn-info.active:hover,
 
.open > .dropdown-toggle.btn-info:hover,
 
.btn-info:active:focus,
 
.btn-info.active:focus,
 
.open > .dropdown-toggle.btn-info:focus,
 
.btn-info:active.focus,
 
.btn-info.active.focus,
 
.open > .dropdown-toggle.btn-info.focus {
 
  color: #fff;
 
  background-color: #269abc;
 
  border-color: #1b6d85;
 
}
 
.btn-info:active,
 
.btn-info.active,
 
.open > .dropdown-toggle.btn-info {
 
  background-image: none;
 
}
 
.btn-info.disabled:hover,
 
.btn-info[disabled]:hover,
 
fieldset[disabled] .btn-info:hover,
 
.btn-info.disabled:focus,
 
.btn-info[disabled]:focus,
 
fieldset[disabled] .btn-info:focus,
 
.btn-info.disabled.focus,
 
.btn-info[disabled].focus,
 
fieldset[disabled] .btn-info.focus {
 
  background-color: #5bc0de;
 
  border-color: #46b8da;
 
}
 
.btn-info .badge {
 
  color: #5bc0de;
 
  background-color: #fff;
 
}
 
.btn-warning {
 
  color: #fff;
 
  background-color: #f0ad4e;
 
  border-color: #eea236;
 
}
 
.btn-warning:focus,
 
.btn-warning.focus {
 
  color: #fff;
 
  background-color: #ec971f;
 
  border-color: #985f0d;
 
}
 
.btn-warning:hover {
 
  color: #fff;
 
  background-color: #ec971f;
 
  border-color: #d58512;
 
}
 
.btn-warning:active,
 
.btn-warning.active,
 
.open > .dropdown-toggle.btn-warning {
 
  color: #fff;
 
  background-color: #ec971f;
 
  border-color: #d58512;
 
}
 
.btn-warning:active:hover,
 
.btn-warning.active:hover,
 
.open > .dropdown-toggle.btn-warning:hover,
 
.btn-warning:active:focus,
 
.btn-warning.active:focus,
 
.open > .dropdown-toggle.btn-warning:focus,
 
.btn-warning:active.focus,
 
.btn-warning.active.focus,
 
.open > .dropdown-toggle.btn-warning.focus {
 
  color: #fff;
 
  background-color: #d58512;
 
  border-color: #985f0d;
 
}
 
.btn-warning:active,
 
.btn-warning.active,
 
.open > .dropdown-toggle.btn-warning {
 
  background-image: none;
 
}
 
.btn-warning.disabled:hover,
 
.btn-warning[disabled]:hover,
 
fieldset[disabled] .btn-warning:hover,
 
.btn-warning.disabled:focus,
 
.btn-warning[disabled]:focus,
 
fieldset[disabled] .btn-warning:focus,
 
.btn-warning.disabled.focus,
 
.btn-warning[disabled].focus,
 
fieldset[disabled] .btn-warning.focus {
 
  background-color: #f0ad4e;
 
  border-color: #eea236;
 
}
 
.btn-warning .badge {
 
  color: #f0ad4e;
 
  background-color: #fff;
 
}
 
.btn-danger {
 
  color: #fff;
 
  background-color: #d9534f;
 
  border-color: #d43f3a;
 
}
 
.btn-danger:focus,
 
.btn-danger.focus {
 
  color: #fff;
 
  background-color: #c9302c;
 
  border-color: #761c19;
 
}
 
.btn-danger:hover {
 
  color: #fff;
 
  background-color: #c9302c;
 
  border-color: #ac2925;
 
}
 
.btn-danger:active,
 
.btn-danger.active,
 
.open > .dropdown-toggle.btn-danger {
 
  color: #fff;
 
  background-color: #c9302c;
 
  border-color: #ac2925;
 
}
 
.btn-danger:active:hover,
 
.btn-danger.active:hover,
 
.open > .dropdown-toggle.btn-danger:hover,
 
.btn-danger:active:focus,
 
.btn-danger.active:focus,
 
.open > .dropdown-toggle.btn-danger:focus,
 
.btn-danger:active.focus,
 
.btn-danger.active.focus,
 
.open > .dropdown-toggle.btn-danger.focus {
 
  color: #fff;
 
  background-color: #ac2925;
 
  border-color: #761c19;
 
}
 
.btn-danger:active,
 
.btn-danger.active,
 
.open > .dropdown-toggle.btn-danger {
 
  background-image: none;
 
}
 
.btn-danger.disabled:hover,
 
.btn-danger[disabled]:hover,
 
fieldset[disabled] .btn-danger:hover,
 
.btn-danger.disabled:focus,
 
.btn-danger[disabled]:focus,
 
fieldset[disabled] .btn-danger:focus,
 
.btn-danger.disabled.focus,
 
.btn-danger[disabled].focus,
 
fieldset[disabled] .btn-danger.focus {
 
  background-color: #d9534f;
 
  border-color: #d43f3a;
 
}
 
.btn-danger .badge {
 
  color: #d9534f;
 
  background-color: #fff;
 
}
 
.btn-link {
 
  color: #337ab7;
 
  font-weight: normal;
 
  border-radius: 0;
 
}
 
.btn-link,
 
.btn-link:active,
 
.btn-link.active,
 
.btn-link[disabled],
 
fieldset[disabled] .btn-link {
 
  background-color: transparent;
 
  box-shadow: none;
 
}
 
.btn-link,
 
.btn-link:hover,
 
.btn-link:focus,
 
.btn-link:active {
 
  border-color: transparent;
 
}
 
.btn-link:hover,
 
.btn-link:focus {
 
  color: #23527c;
 
  text-decoration: underline;
 
  background-color: transparent;
 
}
 
.btn-link[disabled]:hover,
 
fieldset[disabled] .btn-link:hover,
 
.btn-link[disabled]:focus,
 
fieldset[disabled] .btn-link:focus {
 
  color: #777777;
 
  text-decoration: none;
 
}
 
.btn-lg,
 
.btn-group-lg > .btn {
 
  padding: 10px 16px;
 
  font-size: 18px;
 
  line-height: 1.3333333;
 
  border-radius: 6px;
 
}
 
.btn-sm,
 
.btn-group-sm > .btn {
 
  padding: 5px 10px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
  border-radius: 3px;
 
}
 
.btn-xs,
 
.btn-group-xs > .btn {
 
  padding: 1px 5px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
  border-radius: 3px;
 
}
 
.btn-block {
 
  display: block;
 
  width: 100%;
 
}
 
.btn-block + .btn-block {
 
  margin-top: 5px;
 
}
 
input[type="submit"].btn-block,
 
input[type="reset"].btn-block,
 
input[type="button"].btn-block {
 
  width: 100%;
 
}
 
.fade {
 
  opacity: 0;
 
  -webkit-transition: opacity 0.15s linear;
 
  transition: opacity 0.15s linear;
 
}
 
.fade.in {
 
  opacity: 1;
 
}
 
.collapse {
 
  display: none;
 
}
 
.collapse.in {
 
  display: block;
 
}
 
tr.collapse.in {
 
  display: table-row;
 
}
 
tbody.collapse.in {
 
  display: table-row-group;
 
}
 
.collapsing {
 
  position: relative;
 
  height: 0;
 
  overflow: hidden;
 
  -webkit-transition-property: height, visibility;
 
  transition-property: height, visibility;
 
  -webkit-transition-duration: 0.35s;
 
  transition-duration: 0.35s;
 
  -webkit-transition-timing-function: ease;
 
  transition-timing-function: ease;
 
}
 
.caret {
 
  display: inline-block;
 
  width: 0;
 
  height: 0;
 
  margin-left: 2px;
 
  vertical-align: middle;
 
  border-top: 4px dashed;
 
  border-top: 4px solid \9;
 
  border-right: 4px solid transparent;
 
  border-left: 4px solid transparent;
 
}
 
.dropup,
 
.dropdown {
 
  position: relative;
 
}
 
.dropdown-toggle:focus {
 
  outline: 0;
 
}
 
.dropdown-menu {
 
  position: absolute;
 
  top: 100%;
 
  left: 0;
 
  z-index: 1000;
 
  display: none;
 
  float: left;
 
  min-width: 160px;
 
  padding: 5px 0;
 
  margin: 2px 0 0;
 
  list-style: none;
 
  font-size: 14px;
 
  text-align: left;
 
  background-color: #fff;
 
  border: 1px solid #ccc;
 
  border: 1px solid rgba(0, 0, 0, 0.15);
 
  border-radius: 4px;
 
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
 
  background-clip: padding-box;
 
}
 
.dropdown-menu.pull-right {
 
  right: 0;
 
  left: auto;
 
}
 
.dropdown-menu .divider {
 
  height: 1px;
 
  margin: 9px 0;
 
  overflow: hidden;
 
  background-color: #e5e5e5;
 
}
 
.dropdown-menu > li > a {
 
  display: block;
 
  padding: 3px 20px;
 
  clear: both;
 
  font-weight: normal;
 
  line-height: 1.42857143;
 
  color: #333333;
 
  white-space: nowrap;
 
}
 
.dropdown-menu > li > a:hover,
 
.dropdown-menu > li > a:focus {
 
  text-decoration: none;
 
  color: #262626;
 
  background-color: #f5f5f5;
 
}
 
.dropdown-menu > .active > a,
 
.dropdown-menu > .active > a:hover,
 
.dropdown-menu > .active > a:focus {
 
  color: #fff;
 
  text-decoration: none;
 
  outline: 0;
 
  background-color: #337ab7;
 
}
 
.dropdown-menu > .disabled > a,
 
.dropdown-menu > .disabled > a:hover,
 
.dropdown-menu > .disabled > a:focus {
 
  color: #777777;
 
}
 
.dropdown-menu > .disabled > a:hover,
 
.dropdown-menu > .disabled > a:focus {
 
  text-decoration: none;
 
  background-color: transparent;
 
  background-image: none;
 
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
 
  cursor: not-allowed;
 
}
 
.open > .dropdown-menu {
 
  display: block;
 
}
 
.open > a {
 
  outline: 0;
 
}
 
.dropdown-menu-right {
 
  left: auto;
 
  right: 0;
 
}
 
.dropdown-menu-left {
 
  left: 0;
 
  right: auto;
 
}
 
.dropdown-header {
 
  display: block;
 
  padding: 3px 20px;
 
  font-size: 12px;
 
  line-height: 1.42857143;
 
  color: #777777;
 
  white-space: nowrap;
 
}
 
.dropdown-backdrop {
 
  position: fixed;
 
  left: 0;
 
  right: 0;
 
  bottom: 0;
 
  top: 0;
 
  z-index: 990;
 
}
 
.pull-right > .dropdown-menu {
 
  right: 0;
 
  left: auto;
 
}
 
.dropup .caret,
 
.navbar-fixed-bottom .dropdown .caret {
 
  border-top: 0;
 
  border-bottom: 4px dashed;
 
  border-bottom: 4px solid \9;
 
  content: "";
 
}
 
.dropup .dropdown-menu,
 
.navbar-fixed-bottom .dropdown .dropdown-menu {
 
  top: auto;
 
  bottom: 100%;
 
  margin-bottom: 2px;
 
}
 
@media (min-width: 768px) {
 
  .navbar-right .dropdown-menu {
 
    left: auto;
 
    right: 0;
 
  }
 
  .navbar-right .dropdown-menu-left {
 
    left: 0;
 
    right: auto;
 
  }
 
}
 
.btn-group,
 
.btn-group-vertical {
 
  position: relative;
 
  display: inline-block;
 
  vertical-align: middle;
 
}
 
.btn-group > .btn,
 
.btn-group-vertical > .btn {
 
  position: relative;
 
  float: left;
 
}
 
.btn-group > .btn:hover,
 
.btn-group-vertical > .btn:hover,
 
.btn-group > .btn:focus,
 
.btn-group-vertical > .btn:focus,
 
.btn-group > .btn:active,
 
.btn-group-vertical > .btn:active,
 
.btn-group > .btn.active,
 
.btn-group-vertical > .btn.active {
 
  z-index: 2;
 
}
 
.btn-group .btn + .btn,
 
.btn-group .btn + .btn-group,
 
.btn-group .btn-group + .btn,
 
.btn-group .btn-group + .btn-group {
 
  margin-left: -1px;
 
}
 
.btn-toolbar {
 
  margin-left: -5px;
 
}
 
.btn-toolbar .btn,
 
.btn-toolbar .btn-group,
 
.btn-toolbar .input-group {
 
  float: left;
 
}
 
.btn-toolbar > .btn,
 
.btn-toolbar > .btn-group,
 
.btn-toolbar > .input-group {
 
  margin-left: 5px;
 
}
 
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
 
  border-radius: 0;
 
}
 
.btn-group > .btn:first-child {
 
  margin-left: 0;
 
}
 
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
 
  border-bottom-right-radius: 0;
 
  border-top-right-radius: 0;
 
}
 
.btn-group > .btn:last-child:not(:first-child),
 
.btn-group > .dropdown-toggle:not(:first-child) {
 
  border-bottom-left-radius: 0;
 
  border-top-left-radius: 0;
 
}
 
.btn-group > .btn-group {
 
  float: left;
 
}
 
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
 
  border-radius: 0;
 
}
 
.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
 
.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
 
  border-bottom-right-radius: 0;
 
  border-top-right-radius: 0;
 
}
 
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
 
  border-bottom-left-radius: 0;
 
  border-top-left-radius: 0;
 
}
 
.btn-group .dropdown-toggle:active,
 
.btn-group.open .dropdown-toggle {
 
  outline: 0;
 
}
 
.btn-group > .btn + .dropdown-toggle {
 
  padding-left: 8px;
 
  padding-right: 8px;
 
}
 
.btn-group > .btn-lg + .dropdown-toggle {
 
  padding-left: 12px;
 
  padding-right: 12px;
 
}
 
.btn-group.open .dropdown-toggle {
 
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
 
}
 
.btn-group.open .dropdown-toggle.btn-link {
 
  box-shadow: none;
 
}
 
.btn .caret {
 
  margin-left: 0;
 
}
 
.btn-lg .caret {
 
  border-width: 5px 5px 0;
 
  border-bottom-width: 0;
 
}
 
.dropup .btn-lg .caret {
 
  border-width: 0 5px 5px;
 
}
 
.btn-group-vertical > .btn,
 
.btn-group-vertical > .btn-group,
 
.btn-group-vertical > .btn-group > .btn {
 
  display: block;
 
  float: none;
 
  width: 100%;
 
  max-width: 100%;
 
}
 
.btn-group-vertical > .btn-group > .btn {
 
  float: none;
 
}
 
.btn-group-vertical > .btn + .btn,
 
.btn-group-vertical > .btn + .btn-group,
 
.btn-group-vertical > .btn-group + .btn,
 
.btn-group-vertical > .btn-group + .btn-group {
 
  margin-top: -1px;
 
  margin-left: 0;
 
}
 
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
 
  border-radius: 0;
 
}
 
.btn-group-vertical > .btn:first-child:not(:last-child) {
 
  border-top-right-radius: 4px;
 
  border-top-left-radius: 4px;
 
  border-bottom-right-radius: 0;
 
  border-bottom-left-radius: 0;
 
}
 
.btn-group-vertical > .btn:last-child:not(:first-child) {
 
  border-top-right-radius: 0;
 
  border-top-left-radius: 0;
 
  border-bottom-right-radius: 4px;
 
  border-bottom-left-radius: 4px;
 
}
 
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
 
  border-radius: 0;
 
}
 
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
 
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
 
  border-bottom-right-radius: 0;
 
  border-bottom-left-radius: 0;
 
}
 
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
 
  border-top-right-radius: 0;
 
  border-top-left-radius: 0;
 
}
 
.btn-group-justified {
 
  display: table;
 
  width: 100%;
 
  table-layout: fixed;
 
  border-collapse: separate;
 
}
 
.btn-group-justified > .btn,
 
.btn-group-justified > .btn-group {
 
  float: none;
 
  display: table-cell;
 
  width: 1%;
 
}
 
.btn-group-justified > .btn-group .btn {
 
  width: 100%;
 
}
 
.btn-group-justified > .btn-group .dropdown-menu {
 
  left: auto;
 
}
 
[data-toggle="buttons"] > .btn input[type="radio"],
 
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
 
[data-toggle="buttons"] > .btn input[type="checkbox"],
 
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
 
  position: absolute;
 
  clip: rect(0, 0, 0, 0);
 
  pointer-events: none;
 
}
 
.input-group {
 
  position: relative;
 
  display: table;
 
  border-collapse: separate;
 
}
 
.input-group[class*="col-"] {
 
  float: none;
 
  padding-left: 0;
 
  padding-right: 0;
 
}
 
.input-group .form-control {
 
  position: relative;
 
  z-index: 2;
 
  float: left;
 
  width: 100%;
 
  margin-bottom: 0;
 
}
 
.input-group .form-control:focus {
 
  z-index: 3;
 
}
 
.input-group-lg > .form-control,
 
.input-group-lg > .input-group-addon,
 
.input-group-lg > .input-group-btn > .btn {
 
  height: 46px;
 
  padding: 10px 16px;
 
  font-size: 18px;
 
  line-height: 1.3333333;
 
  border-radius: 6px;
 
}
 
select.input-group-lg > .form-control,
 
select.input-group-lg > .input-group-addon,
 
select.input-group-lg > .input-group-btn > .btn {
 
  height: 46px;
 
  line-height: 46px;
 
}
 
textarea.input-group-lg > .form-control,
 
textarea.input-group-lg > .input-group-addon,
 
textarea.input-group-lg > .input-group-btn > .btn,
 
select[multiple].input-group-lg > .form-control,
 
select[multiple].input-group-lg > .input-group-addon,
 
select[multiple].input-group-lg > .input-group-btn > .btn {
 
  height: auto;
 
}
 
.input-group-sm > .form-control,
 
.input-group-sm > .input-group-addon,
 
.input-group-sm > .input-group-btn > .btn {
 
  height: 30px;
 
  padding: 5px 10px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
  border-radius: 3px;
 
}
 
select.input-group-sm > .form-control,
 
select.input-group-sm > .input-group-addon,
 
select.input-group-sm > .input-group-btn > .btn {
 
  height: 30px;
 
  line-height: 30px;
 
}
 
textarea.input-group-sm > .form-control,
 
textarea.input-group-sm > .input-group-addon,
 
textarea.input-group-sm > .input-group-btn > .btn,
 
select[multiple].input-group-sm > .form-control,
 
select[multiple].input-group-sm > .input-group-addon,
 
select[multiple].input-group-sm > .input-group-btn > .btn {
 
  height: auto;
 
}
 
.input-group-addon,
 
.input-group-btn,
 
.input-group .form-control {
 
  display: table-cell;
 
}
 
.input-group-addon:not(:first-child):not(:last-child),
 
.input-group-btn:not(:first-child):not(:last-child),
 
.input-group .form-control:not(:first-child):not(:last-child) {
 
  border-radius: 0;
 
}
 
.input-group-addon,
 
.input-group-btn {
 
  width: 1%;
 
  white-space: nowrap;
 
  vertical-align: middle;
 
}
 
.input-group-addon {
 
  padding: 6px 12px;
 
  font-size: 14px;
 
  font-weight: normal;
 
  line-height: 1;
 
  color: #555555;
 
  text-align: center;
 
  background-color: #eeeeee;
 
  border: 1px solid #ccc;
 
  border-radius: 4px;
 
}
 
.input-group-addon.input-sm {
 
  padding: 5px 10px;
 
  font-size: 12px;
 
  border-radius: 3px;
 
}
 
.input-group-addon.input-lg {
 
  padding: 10px 16px;
 
  font-size: 18px;
 
  border-radius: 6px;
 
}
 
.input-group-addon input[type="radio"],
 
.input-group-addon input[type="checkbox"] {
 
  margin-top: 0;
 
}
 
.input-group .form-control:first-child,
 
.input-group-addon:first-child,
 
.input-group-btn:first-child > .btn,
 
.input-group-btn:first-child > .btn-group > .btn,
 
.input-group-btn:first-child > .dropdown-toggle,
 
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
 
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
 
  border-bottom-right-radius: 0;
 
  border-top-right-radius: 0;
 
}
 
.input-group-addon:first-child {
 
  border-right: 0;
 
}
 
.input-group .form-control:last-child,
 
.input-group-addon:last-child,
 
.input-group-btn:last-child > .btn,
 
.input-group-btn:last-child > .btn-group > .btn,
 
.input-group-btn:last-child > .dropdown-toggle,
 
.input-group-btn:first-child > .btn:not(:first-child),
 
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
 
  border-bottom-left-radius: 0;
 
  border-top-left-radius: 0;
 
}
 
.input-group-addon:last-child {
 
  border-left: 0;
 
}
 
.input-group-btn {
 
  position: relative;
 
  font-size: 0;
 
  white-space: nowrap;
 
}
 
.input-group-btn > .btn {
 
  position: relative;
 
}
 
.input-group-btn > .btn + .btn {
 
  margin-left: -1px;
 
}
 
.input-group-btn > .btn:hover,
 
.input-group-btn > .btn:focus,
 
.input-group-btn > .btn:active {
 
  z-index: 2;
 
}
 
.input-group-btn:first-child > .btn,
 
.input-group-btn:first-child > .btn-group {
 
  margin-right: -1px;
 
}
 
.input-group-btn:last-child > .btn,
 
.input-group-btn:last-child > .btn-group {
 
  z-index: 2;
 
  margin-left: -1px;
 
}
 
.nav {
 
  margin-bottom: 0;
 
  padding-left: 0;
 
  list-style: none;
 
}
 
.nav > li {
 
  position: relative;
 
  display: block;
 
}
 
.nav > li > a {
 
  position: relative;
 
  display: block;
 
  padding: 10px 15px;
 
}
 
.nav > li > a:hover,
 
.nav > li > a:focus {
 
  text-decoration: none;
 
  background-color: #eeeeee;
 
}
 
.nav > li.disabled > a {
 
  color: #777777;
 
}
 
.nav > li.disabled > a:hover,
 
.nav > li.disabled > a:focus {
 
  color: #777777;
 
  text-decoration: none;
 
  background-color: transparent;
 
  cursor: not-allowed;
 
}
 
.nav .open > a,
 
.nav .open > a:hover,
 
.nav .open > a:focus {
 
  background-color: #eeeeee;
 
  border-color: #337ab7;
 
}
 
.nav .nav-divider {
 
  height: 1px;
 
  margin: 9px 0;
 
  overflow: hidden;
 
  background-color: #e5e5e5;
 
}
 
.nav > li > a > img {
 
  max-width: none;
 
}
 
.nav-tabs {
 
  border-bottom: 1px solid #ddd;
 
}
 
.nav-tabs > li {
 
  float: left;
 
  margin-bottom: -1px;
 
}
 
.nav-tabs > li > a {
 
  margin-right: 2px;
 
  line-height: 1.42857143;
 
  border: 1px solid transparent;
 
  border-radius: 4px 4px 0 0;
 
}
 
.nav-tabs > li > a:hover {
 
  border-color: #eeeeee #eeeeee #ddd;
 
}
 
.nav-tabs > li.active > a,
 
.nav-tabs > li.active > a:hover,
 
.nav-tabs > li.active > a:focus {
 
  color: #555555;
 
  background-color: #fff;
 
  border: 1px solid #ddd;
 
  border-bottom-color: transparent;
 
  cursor: default;
 
}
 
.nav-tabs.nav-justified {
 
  width: 100%;
 
  border-bottom: 0;
 
}
 
.nav-tabs.nav-justified > li {
 
  float: none;
 
}
 
.nav-tabs.nav-justified > li > a {
 
  text-align: center;
 
  margin-bottom: 5px;
 
}
 
.nav-tabs.nav-justified > .dropdown .dropdown-menu {
 
  top: auto;
 
  left: auto;
 
}
 
@media (min-width: 768px) {
 
  .nav-tabs.nav-justified > li {
 
    display: table-cell;
 
    width: 1%;
 
  }
 
  .nav-tabs.nav-justified > li > a {
 
    margin-bottom: 0;
 
  }
 
}
 
.nav-tabs.nav-justified > li > a {
 
  margin-right: 0;
 
  border-radius: 4px;
 
}
 
.nav-tabs.nav-justified > .active > a,
 
.nav-tabs.nav-justified > .active > a:hover,
 
.nav-tabs.nav-justified > .active > a:focus {
 
  border: 1px solid #ddd;
 
}
 
@media (min-width: 768px) {
 
  .nav-tabs.nav-justified > li > a {
 
    border-bottom: 1px solid #ddd;
 
    border-radius: 4px 4px 0 0;
 
  }
 
  .nav-tabs.nav-justified > .active > a,
 
  .nav-tabs.nav-justified > .active > a:hover,
 
  .nav-tabs.nav-justified > .active > a:focus {
 
    border-bottom-color: #fff;
 
  }
 
}
 
.nav-pills > li {
 
  float: left;
 
}
 
.nav-pills > li > a {
 
  border-radius: 4px;
 
}
 
.nav-pills > li + li {
 
  margin-left: 2px;
 
}
 
.nav-pills > li.active > a,
 
.nav-pills > li.active > a:hover,
 
.nav-pills > li.active > a:focus {
 
  color: #fff;
 
  background-color: #337ab7;
 
}
 
.nav-stacked > li {
 
  float: none;
 
}
 
.nav-stacked > li + li {
 
  margin-top: 2px;
 
  margin-left: 0;
 
}
 
.nav-justified {
 
  width: 100%;
 
}
 
.nav-justified > li {
 
  float: none;
 
}
 
.nav-justified > li > a {
 
  text-align: center;
 
  margin-bottom: 5px;
 
}
 
.nav-justified > .dropdown .dropdown-menu {
 
  top: auto;
 
  left: auto;
 
}
 
@media (min-width: 768px) {
 
  .nav-justified > li {
 
    display: table-cell;
 
    width: 1%;
 
  }
 
  .nav-justified > li > a {
 
    margin-bottom: 0;
 
  }
 
}
 
.nav-tabs-justified {
 
  border-bottom: 0;
 
}
 
.nav-tabs-justified > li > a {
 
  margin-right: 0;
 
  border-radius: 4px;
 
}
 
.nav-tabs-justified > .active > a,
 
.nav-tabs-justified > .active > a:hover,
 
.nav-tabs-justified > .active > a:focus {
 
  border: 1px solid #ddd;
 
}
 
@media (min-width: 768px) {
 
  .nav-tabs-justified > li > a {
 
    border-bottom: 1px solid #ddd;
 
    border-radius: 4px 4px 0 0;
 
  }
 
  .nav-tabs-justified > .active > a,
 
  .nav-tabs-justified > .active > a:hover,
 
  .nav-tabs-justified > .active > a:focus {
 
    border-bottom-color: #fff;
 
  }
 
}
 
.tab-content > .tab-pane {
 
  display: none;
 
}
 
.tab-content > .active {
 
  display: block;
 
}
 
.nav-tabs .dropdown-menu {
 
  margin-top: -1px;
 
  border-top-right-radius: 0;
 
  border-top-left-radius: 0;
 
}
 
.navbar {
 
  position: relative;
 
  min-height: 50px;
 
  margin-bottom: 20px;
 
  border: 1px solid transparent;
 
}
 
@media (min-width: 768px) {
 
  .navbar {
 
    border-radius: 4px;
 
  }
 
}
 
@media (min-width: 768px) {
 
  .navbar-header {
 
    float: left;
 
  }
 
}
 
.navbar-collapse {
 
  overflow-x: visible;
 
  padding-right: 15px;
 
  padding-left: 15px;
 
  border-top: 1px solid transparent;
 
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
 
  -webkit-overflow-scrolling: touch;
 
}
 
.navbar-collapse.in {
 
  overflow-y: auto;
 
}
 
@media (min-width: 768px) {
 
  .navbar-collapse {
 
    width: auto;
 
    border-top: 0;
 
    box-shadow: none;
 
  }
 
  .navbar-collapse.collapse {
 
    display: block !important;
 
    height: auto !important;
 
    padding-bottom: 0;
 
    overflow: visible !important;
 
  }
 
  .navbar-collapse.in {
 
    overflow-y: visible;
 
  }
 
  .navbar-fixed-top .navbar-collapse,
 
  .navbar-static-top .navbar-collapse,
 
  .navbar-fixed-bottom .navbar-collapse {
 
    padding-left: 0;
 
    padding-right: 0;
 
  }
 
}
 
.navbar-fixed-top .navbar-collapse,
 
.navbar-fixed-bottom .navbar-collapse {
 
  max-height: 340px;
 
}
 
@media (max-device-width: 480px) and (orientation: landscape) {
 
  .navbar-fixed-top .navbar-collapse,
 
  .navbar-fixed-bottom .navbar-collapse {
 
    max-height: 200px;
 
  }
 
}
 
.container > .navbar-header,
 
.container-fluid > .navbar-header,
 
.container > .navbar-collapse,
 
.container-fluid > .navbar-collapse {
 
  margin-right: -15px;
 
  margin-left: -15px;
 
}
 
@media (min-width: 768px) {
 
  .container > .navbar-header,
 
  .container-fluid > .navbar-header,
 
  .container > .navbar-collapse,
 
  .container-fluid > .navbar-collapse {
 
    margin-right: 0;
 
    margin-left: 0;
 
  }
 
}
 
.navbar-static-top {
 
  z-index: 1000;
 
  border-width: 0 0 1px;
 
}
 
@media (min-width: 768px) {
 
  .navbar-static-top {
 
    border-radius: 0;
 
  }
 
}
 
.navbar-fixed-top,
 
.navbar-fixed-bottom {
 
  position: fixed;
 
  right: 0;
 
  left: 0;
 
  z-index: 1030;
 
}
 
@media (min-width: 768px) {
 
  .navbar-fixed-top,
 
  .navbar-fixed-bottom {
 
    border-radius: 0;
 
  }
 
}
 
.navbar-fixed-top {
 
  top: 0;
 
  border-width: 0 0 1px;
 
}
 
.navbar-fixed-bottom {
 
  bottom: 0;
 
  margin-bottom: 0;
 
  border-width: 1px 0 0;
 
}
 
.navbar-brand {
 
  float: left;
 
  padding: 15px 15px;
 
  font-size: 18px;
 
  line-height: 20px;
 
  height: 50px;
 
}
 
.navbar-brand:hover,
 
.navbar-brand:focus {
 
  text-decoration: none;
 
}
 
.navbar-brand > img {
 
  display: block;
 
}
 
@media (min-width: 768px) {
 
  .navbar > .container .navbar-brand,
 
  .navbar > .container-fluid .navbar-brand {
 
    margin-left: -15px;
 
  }
 
}
 
.navbar-toggle {
 
  position: relative;
 
  float: right;
 
  margin-right: 15px;
 
  padding: 9px 10px;
 
  margin-top: 8px;
 
  margin-bottom: 8px;
 
  background-color: transparent;
 
  background-image: none;
 
  border: 1px solid transparent;
 
  border-radius: 4px;
 
}
 
.navbar-toggle:focus {
 
  outline: 0;
 
}
 
.navbar-toggle .icon-bar {
 
  display: block;
 
  width: 22px;
 
  height: 2px;
 
  border-radius: 1px;
 
}
 
.navbar-toggle .icon-bar + .icon-bar {
 
  margin-top: 4px;
 
}
 
@media (min-width: 768px) {
 
  .navbar-toggle {
 
    display: none;
 
  }
 
}
 
.navbar-nav {
 
  margin: 7.5px -15px;
 
}
 
.navbar-nav > li > a {
 
  padding-top: 10px;
 
  padding-bottom: 10px;
 
  line-height: 20px;
 
}
 
@media (max-width: 767px) {
 
  .navbar-nav .open .dropdown-menu {
 
    position: static;
 
    float: none;
 
    width: auto;
 
    margin-top: 0;
 
    background-color: transparent;
 
    border: 0;
 
    box-shadow: none;
 
  }
 
  .navbar-nav .open .dropdown-menu > li > a,
 
  .navbar-nav .open .dropdown-menu .dropdown-header {
 
    padding: 5px 15px 5px 25px;
 
  }
 
  .navbar-nav .open .dropdown-menu > li > a {
 
    line-height: 20px;
 
  }
 
  .navbar-nav .open .dropdown-menu > li > a:hover,
 
  .navbar-nav .open .dropdown-menu > li > a:focus {
 
    background-image: none;
 
  }
 
}
 
@media (min-width: 768px) {
 
  .navbar-nav {
 
    float: left;
 
    margin: 0;
 
  }
 
  .navbar-nav > li {
 
    float: left;
 
  }
 
  .navbar-nav > li > a {
 
    padding-top: 15px;
 
    padding-bottom: 15px;
 
  }
 
}
 
.navbar-form {
 
  margin-left: -15px;
 
  margin-right: -15px;
 
  padding: 10px 15px;
 
  border-top: 1px solid transparent;
 
  border-bottom: 1px solid transparent;
 
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
 
  margin-top: 8px;
 
  margin-bottom: 8px;
 
}
 
@media (min-width: 768px) {
 
  .navbar-form .form-group {
 
    display: inline-block;
 
    margin-bottom: 0;
 
    vertical-align: middle;
 
  }
 
  .navbar-form .form-control {
 
    display: inline-block;
 
    width: auto;
 
    vertical-align: middle;
 
  }
 
  .navbar-form .form-control-static {
 
    display: inline-block;
 
  }
 
  .navbar-form .input-group {
 
    display: inline-table;
 
    vertical-align: middle;
 
  }
 
  .navbar-form .input-group .input-group-addon,
 
  .navbar-form .input-group .input-group-btn,
 
  .navbar-form .input-group .form-control {
 
    width: auto;
 
  }
 
  .navbar-form .input-group > .form-control {
 
    width: 100%;
 
  }
 
  .navbar-form .control-label {
 
    margin-bottom: 0;
 
    vertical-align: middle;
 
  }
 
  .navbar-form .radio,
 
  .navbar-form .checkbox {
 
    display: inline-block;
 
    margin-top: 0;
 
    margin-bottom: 0;
 
    vertical-align: middle;
 
  }
 
  .navbar-form .radio label,
 
  .navbar-form .checkbox label {
 
    padding-left: 0;
 
  }
 
  .navbar-form .radio input[type="radio"],
 
  .navbar-form .checkbox input[type="checkbox"] {
 
    position: relative;
 
    margin-left: 0;
 
  }
 
  .navbar-form .has-feedback .form-control-feedback {
 
    top: 0;
 
  }
 
}
 
@media (max-width: 767px) {
 
  .navbar-form .form-group {
 
    margin-bottom: 5px;
 
  }
 
  .navbar-form .form-group:last-child {
 
    margin-bottom: 0;
 
  }
 
}
 
@media (min-width: 768px) {
 
  .navbar-form {
 
    width: auto;
 
    border: 0;
 
    margin-left: 0;
 
    margin-right: 0;
 
    padding-top: 0;
 
    padding-bottom: 0;
 
    box-shadow: none;
 
  }
 
}
 
.navbar-nav > li > .dropdown-menu {
 
  margin-top: 0;
 
  border-top-right-radius: 0;
 
  border-top-left-radius: 0;
 
}
 
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
 
  margin-bottom: 0;
 
  border-top-right-radius: 4px;
 
  border-top-left-radius: 4px;
 
  border-bottom-right-radius: 0;
 
  border-bottom-left-radius: 0;
 
}
 
.navbar-btn {
 
  margin-top: 8px;
 
  margin-bottom: 8px;
 
}
 
.navbar-btn.btn-sm {
 
  margin-top: 10px;
 
  margin-bottom: 10px;
 
}
 
.navbar-btn.btn-xs {
 
  margin-top: 14px;
 
  margin-bottom: 14px;
 
}
 
.navbar-text {
 
  margin-top: 15px;
 
  margin-bottom: 15px;
 
}
 
@media (min-width: 768px) {
 
  .navbar-text {
 
    float: left;
 
    margin-left: 15px;
 
    margin-right: 15px;
 
  }
 
}
 
@media (min-width: 768px) {
 
  .navbar-left {
 
    float: left !important;
 
    float: left;
 
  }
 
  .navbar-right {
 
    float: right !important;
 
    float: right;
 
    margin-right: -15px;
 
  }
 
  .navbar-right ~ .navbar-right {
 
    margin-right: 0;
 
  }
 
}
 
.navbar-default {
 
  background-color: #f8f8f8;
 
  border-color: #e7e7e7;
 
}
 
.navbar-default .navbar-brand {
 
  color: #777;
 
}
 
.navbar-default .navbar-brand:hover,
 
.navbar-default .navbar-brand:focus {
 
  color: #5e5e5e;
 
  background-color: transparent;
 
}
 
.navbar-default .navbar-text {
 
  color: #777;
 
}
 
.navbar-default .navbar-nav > li > a {
 
  color: #777;
 
}
 
.navbar-default .navbar-nav > li > a:hover,
 
.navbar-default .navbar-nav > li > a:focus {
 
  color: #333;
 
  background-color: transparent;
 
}
 
.navbar-default .navbar-nav > .active > a,
 
.navbar-default .navbar-nav > .active > a:hover,
 
.navbar-default .navbar-nav > .active > a:focus {
 
  color: #555;
 
  background-color: #e7e7e7;
 
}
 
.navbar-default .navbar-nav > .disabled > a,
 
.navbar-default .navbar-nav > .disabled > a:hover,
 
.navbar-default .navbar-nav > .disabled > a:focus {
 
  color: #ccc;
 
  background-color: transparent;
 
}
 
.navbar-default .navbar-toggle {
 
  border-color: #ddd;
 
}
 
.navbar-default .navbar-toggle:hover,
 
.navbar-default .navbar-toggle:focus {
 
  background-color: #ddd;
 
}
 
.navbar-default .navbar-toggle .icon-bar {
 
  background-color: #888;
 
}
 
.navbar-default .navbar-collapse,
 
.navbar-default .navbar-form {
 
  border-color: #e7e7e7;
 
}
 
.navbar-default .navbar-nav > .open > a,
 
.navbar-default .navbar-nav > .open > a:hover,
 
.navbar-default .navbar-nav > .open > a:focus {
 
  background-color: #e7e7e7;
 
  color: #555;
 
}
 
@media (max-width: 767px) {
 
  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
 
    color: #777;
 
  }
 
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
 
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
 
    color: #333;
 
    background-color: transparent;
 
  }
 
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
 
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
 
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
 
    color: #555;
 
    background-color: #e7e7e7;
 
  }
 
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
 
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
 
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
 
    color: #ccc;
 
    background-color: transparent;
 
  }
 
}
 
.navbar-default .navbar-link {
 
  color: #777;
 
}
 
.navbar-default .navbar-link:hover {
 
  color: #333;
 
}
 
.navbar-default .btn-link {
 
  color: #777;
 
}
 
.navbar-default .btn-link:hover,
 
.navbar-default .btn-link:focus {
 
  color: #333;
 
}
 
.navbar-default .btn-link[disabled]:hover,
 
fieldset[disabled] .navbar-default .btn-link:hover,
 
.navbar-default .btn-link[disabled]:focus,
 
fieldset[disabled] .navbar-default .btn-link:focus {
 
  color: #ccc;
 
}
 
.navbar-inverse {
 
  background-color: #222;
 
  border-color: #080808;
 
}
 
.navbar-inverse .navbar-brand {
 
  color: #9d9d9d;
 
}
 
.navbar-inverse .navbar-brand:hover,
 
.navbar-inverse .navbar-brand:focus {
 
  color: #fff;
 
  background-color: transparent;
 
}
 
.navbar-inverse .navbar-text {
 
  color: #9d9d9d;
 
}
 
.navbar-inverse .navbar-nav > li > a {
 
  color: #9d9d9d;
 
}
 
.navbar-inverse .navbar-nav > li > a:hover,
 
.navbar-inverse .navbar-nav > li > a:focus {
 
  color: #fff;
 
  background-color: transparent;
 
}
 
.navbar-inverse .navbar-nav > .active > a,
 
.navbar-inverse .navbar-nav > .active > a:hover,
 
.navbar-inverse .navbar-nav > .active > a:focus {
 
  color: #fff;
 
  background-color: #080808;
 
}
 
.navbar-inverse .navbar-nav > .disabled > a,
 
.navbar-inverse .navbar-nav > .disabled > a:hover,
 
.navbar-inverse .navbar-nav > .disabled > a:focus {
 
  color: #444;
 
  background-color: transparent;
 
}
 
.navbar-inverse .navbar-toggle {
 
  border-color: #333;
 
}
 
.navbar-inverse .navbar-toggle:hover,
 
.navbar-inverse .navbar-toggle:focus {
 
  background-color: #333;
 
}
 
.navbar-inverse .navbar-toggle .icon-bar {
 
  background-color: #fff;
 
}
 
.navbar-inverse .navbar-collapse,
 
.navbar-inverse .navbar-form {
 
  border-color: #101010;
 
}
 
.navbar-inverse .navbar-nav > .open > a,
 
.navbar-inverse .navbar-nav > .open > a:hover,
 
.navbar-inverse .navbar-nav > .open > a:focus {
 
  background-color: #080808;
 
  color: #fff;
 
}
 
@media (max-width: 767px) {
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
 
    border-color: #080808;
 
  }
 
  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
 
    background-color: #080808;
 
  }
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
 
    color: #9d9d9d;
 
  }
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
 
    color: #fff;
 
    background-color: transparent;
 
  }
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
 
    color: #fff;
 
    background-color: #080808;
 
  }
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
 
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
 
    color: #444;
 
    background-color: transparent;
 
  }
 
}
 
.navbar-inverse .navbar-link {
 
  color: #9d9d9d;
 
}
 
.navbar-inverse .navbar-link:hover {
 
  color: #fff;
 
}
 
.navbar-inverse .btn-link {
 
  color: #9d9d9d;
 
}
 
.navbar-inverse .btn-link:hover,
 
.navbar-inverse .btn-link:focus {
 
  color: #fff;
 
}
 
.navbar-inverse .btn-link[disabled]:hover,
 
fieldset[disabled] .navbar-inverse .btn-link:hover,
 
.navbar-inverse .btn-link[disabled]:focus,
 
fieldset[disabled] .navbar-inverse .btn-link:focus {
 
  color: #444;
 
}
 
.breadcrumb {
 
  padding: 8px 15px;
 
  margin-bottom: 20px;
 
  list-style: none;
 
  background-color: #f5f5f5;
 
  border-radius: 4px;
 
}
 
.breadcrumb > li {
 
  display: inline-block;
 
}
 
.breadcrumb > li + li:before {
 
  content: "/\00a0";
 
  padding: 0 5px;
 
  color: #ccc;
 
}
 
.breadcrumb > .active {
 
  color: #777777;
 
}
 
.pagination {
 
  display: inline-block;
 
  padding-left: 0;
 
  margin: 20px 0;
 
  border-radius: 4px;
 
}
 
.pagination > li {
 
  display: inline;
 
}
 
.pagination > li > a,
 
.pagination > li > span {
 
  position: relative;
 
  float: left;
 
  padding: 6px 12px;
 
  line-height: 1.42857143;
 
  text-decoration: none;
 
  color: #337ab7;
 
  background-color: #fff;
 
  border: 1px solid #ddd;
 
  margin-left: -1px;
 
}
 
.pagination > li:first-child > a,
 
.pagination > li:first-child > span {
 
  margin-left: 0;
 
  border-bottom-left-radius: 4px;
 
  border-top-left-radius: 4px;
 
}
 
.pagination > li:last-child > a,
 
.pagination > li:last-child > span {
 
  border-bottom-right-radius: 4px;
 
  border-top-right-radius: 4px;
 
}
 
.pagination > li > a:hover,
 
.pagination > li > span:hover,
 
.pagination > li > a:focus,
 
.pagination > li > span:focus {
 
  z-index: 2;
 
  color: #23527c;
 
  background-color: #eeeeee;
 
  border-color: #ddd;
 
}
 
.pagination > .active > a,
 
.pagination > .active > span,
 
.pagination > .active > a:hover,
 
.pagination > .active > span:hover,
 
.pagination > .active > a:focus,
 
.pagination > .active > span:focus {
 
  z-index: 3;
 
  color: #fff;
 
  background-color: #337ab7;
 
  border-color: #337ab7;
 
  cursor: default;
 
}
 
.pagination > .disabled > span,
 
.pagination > .disabled > span:hover,
 
.pagination > .disabled > span:focus,
 
.pagination > .disabled > a,
 
.pagination > .disabled > a:hover,
 
.pagination > .disabled > a:focus {
 
  color: #777777;
 
  background-color: #fff;
 
  border-color: #ddd;
 
  cursor: not-allowed;
 
}
 
.pagination-lg > li > a,
 
.pagination-lg > li > span {
 
  padding: 10px 16px;
 
  font-size: 18px;
 
  line-height: 1.3333333;
 
}
 
.pagination-lg > li:first-child > a,
 
.pagination-lg > li:first-child > span {
 
  border-bottom-left-radius: 6px;
 
  border-top-left-radius: 6px;
 
}
 
.pagination-lg > li:last-child > a,
 
.pagination-lg > li:last-child > span {
 
  border-bottom-right-radius: 6px;
 
  border-top-right-radius: 6px;
 
}
 
.pagination-sm > li > a,
 
.pagination-sm > li > span {
 
  padding: 5px 10px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
}
 
.pagination-sm > li:first-child > a,
 
.pagination-sm > li:first-child > span {
 
  border-bottom-left-radius: 3px;
 
  border-top-left-radius: 3px;
 
}
 
.pagination-sm > li:last-child > a,
 
.pagination-sm > li:last-child > span {
 
  border-bottom-right-radius: 3px;
 
  border-top-right-radius: 3px;
 
}
 
.pager {
 
  padding-left: 0;
 
  margin: 20px 0;
 
  list-style: none;
 
  text-align: center;
 
}
 
.pager li {
 
  display: inline;
 
}
 
.pager li > a,
 
.pager li > span {
 
  display: inline-block;
 
  padding: 5px 14px;
 
  background-color: #fff;
 
  border: 1px solid #ddd;
 
  border-radius: 15px;
 
}
 
.pager li > a:hover,
 
.pager li > a:focus {
 
  text-decoration: none;
 
  background-color: #eeeeee;
 
}
 
.pager .next > a,
 
.pager .next > span {
 
  float: right;
 
}
 
.pager .previous > a,
 
.pager .previous > span {
 
  float: left;
 
}
 
.pager .disabled > a,
 
.pager .disabled > a:hover,
 
.pager .disabled > a:focus,
 
.pager .disabled > span {
 
  color: #777777;
 
  background-color: #fff;
 
  cursor: not-allowed;
 
}
 
.label {
 
  display: inline;
 
  padding: .2em .6em .3em;
 
  font-size: 75%;
 
  font-weight: bold;
 
  line-height: 1;
 
  color: #fff;
 
  text-align: center;
 
  white-space: nowrap;
 
  vertical-align: baseline;
 
  border-radius: .25em;
 
}
 
a.label:hover,
 
a.label:focus {
 
  color: #fff;
 
  text-decoration: none;
 
  cursor: pointer;
 
}
 
.label:empty {
 
  display: none;
 
}
 
.btn .label {
 
  position: relative;
 
  top: -1px;
 
}
 
.label-default {
 
  background-color: #777777;
 
}
 
.label-default[href]:hover,
 
.label-default[href]:focus {
 
  background-color: #5e5e5e;
 
}
 
.label-primary {
 
  background-color: #337ab7;
 
}
 
.label-primary[href]:hover,
 
.label-primary[href]:focus {
 
  background-color: #286090;
 
}
 
.label-success {
 
  background-color: #5cb85c;
 
}
 
.label-success[href]:hover,
 
.label-success[href]:focus {
 
  background-color: #449d44;
 
}
 
.label-info {
 
  background-color: #5bc0de;
 
}
 
.label-info[href]:hover,
 
.label-info[href]:focus {
 
  background-color: #31b0d5;
 
}
 
.label-warning {
 
  background-color: #f0ad4e;
 
}
 
.label-warning[href]:hover,
 
.label-warning[href]:focus {
 
  background-color: #ec971f;
 
}
 
.label-danger {
 
  background-color: #d9534f;
 
}
 
.label-danger[href]:hover,
 
.label-danger[href]:focus {
 
  background-color: #c9302c;
 
}
 
.badge {
 
  display: inline-block;
 
  min-width: 10px;
 
  padding: 3px 7px;
 
  font-size: 12px;
 
  font-weight: bold;
 
  color: #fff;
 
  line-height: 1;
 
  vertical-align: middle;
 
  white-space: nowrap;
 
  text-align: center;
 
  background-color: #777777;
 
  border-radius: 10px;
 
}
 
.badge:empty {
 
  display: none;
 
}
 
.btn .badge {
 
  position: relative;
 
  top: -1px;
 
}
 
.btn-xs .badge,
 
.btn-group-xs > .btn .badge {
 
  top: 0;
 
  padding: 1px 5px;
 
}
 
a.badge:hover,
 
a.badge:focus {
 
  color: #fff;
 
  text-decoration: none;
 
  cursor: pointer;
 
}
 
.list-group-item.active > .badge,
 
.nav-pills > .active > a > .badge {
 
  color: #337ab7;
 
  background-color: #fff;
 
}
 
.list-group-item > .badge {
 
  float: right;
 
}
 
.list-group-item > .badge + .badge {
 
  margin-right: 5px;
 
}
 
.nav-pills > li > a > .badge {
 
  margin-left: 3px;
 
}
 
.jumbotron {
 
  padding-top: 30px;
 
  padding-bottom: 30px;
 
  margin-bottom: 30px;
 
  color: inherit;
 
  background-color: #eeeeee;
 
}
 
.jumbotron h1,
 
.jumbotron .h1 {
 
  color: inherit;
 
}
 
.jumbotron p {
 
  margin-bottom: 15px;
 
  font-size: 21px;
 
  font-weight: 200;
 
}
 
.jumbotron > hr {
 
  border-top-color: #d5d5d5;
 
}
 
.container .jumbotron,
 
.container-fluid .jumbotron {
 
  border-radius: 6px;
 
  padding-left: 15px;
 
  padding-right: 15px;
 
}
 
.jumbotron .container {
 
  max-width: 100%;
 
}
 
@media screen and (min-width: 768px) {
 
  .jumbotron {
 
    padding-top: 48px;
 
    padding-bottom: 48px;
 
  }
 
  .container .jumbotron,
 
  .container-fluid .jumbotron {
 
    padding-left: 60px;
 
    padding-right: 60px;
 
  }
 
  .jumbotron h1,
 
  .jumbotron .h1 {
 
    font-size: 63px;
 
  }
 
}
 
.thumbnail {
 
  display: block;
 
  padding: 4px;
 
  margin-bottom: 20px;
 
  line-height: 1.42857143;
 
  background-color: #fff;
 
  border: 1px solid #ddd;
 
  border-radius: 4px;
 
  -webkit-transition: border 0.2s ease-in-out;
 
  transition: border 0.2s ease-in-out;
 
}
 
.thumbnail > img,
 
.thumbnail a > img {
 
  margin-left: auto;
 
  margin-right: auto;
 
}
 
a.thumbnail:hover,
 
a.thumbnail:focus,
 
a.thumbnail.active {
 
  border-color: #337ab7;
 
}
 
.thumbnail .caption {
 
  padding: 9px;
 
  color: #333333;
 
}
 
.alert {
 
  padding: 15px;
 
  margin-bottom: 20px;
 
  border: 1px solid transparent;
 
  border-radius: 4px;
 
}
 
.alert h4 {
 
  margin-top: 0;
 
  color: inherit;
 
}
 
.alert .alert-link {
 
  font-weight: bold;
 
}
 
.alert > p,
 
.alert > ul {
 
  margin-bottom: 0;
 
}
 
.alert > p + p {
 
  margin-top: 5px;
 
}
 
.alert-dismissable,
 
.alert-dismissible {
 
  padding-right: 35px;
 
}
 
.alert-dismissable .close,
 
.alert-dismissible .close {
 
  position: relative;
 
  top: -2px;
 
  right: -21px;
 
  color: inherit;
 
}
 
.alert-success {
 
  background-color: #dff0d8;
 
  border-color: #d6e9c6;
 
  color: #3c763d;
 
}
 
.alert-success hr {
 
  border-top-color: #c9e2b3;
 
}
 
.alert-success .alert-link {
 
  color: #2b542c;
 
}
 
.alert-info {
 
  background-color: #d9edf7;
 
  border-color: #bce8f1;
 
  color: #31708f;
 
}
 
.alert-info hr {
 
  border-top-color: #a6e1ec;
 
}
 
.alert-info .alert-link {
 
  color: #245269;
 
}
 
.alert-warning {
 
  background-color: #fcf8e3;
 
  border-color: #faebcc;
 
  color: #8a6d3b;
 
}
 
.alert-warning hr {
 
  border-top-color: #f7e1b5;
 
}
 
.alert-warning .alert-link {
 
  color: #66512c;
 
}
 
.alert-danger {
 
  background-color: #f2dede;
 
  border-color: #ebccd1;
 
  color: #a94442;
 
}
 
.alert-danger hr {
 
  border-top-color: #e4b9c0;
 
}
 
.alert-danger .alert-link {
 
  color: #843534;
 
}
 
@-webkit-keyframes progress-bar-stripes {
 
  from {
 
    background-position: 40px 0;
 
  }
 
  to {
 
    background-position: 0 0;
 
  }
 
}
 
@keyframes progress-bar-stripes {
 
  from {
 
    background-position: 40px 0;
 
  }
 
  to {
 
    background-position: 0 0;
 
  }
 
}
 
.progress {
 
  overflow: hidden;
 
  height: 20px;
 
  margin-bottom: 20px;
 
  background-color: #f5f5f5;
 
  border-radius: 4px;
 
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
 
}
 
.progress-bar {
 
  float: left;
 
  width: 0%;
 
  height: 100%;
 
  font-size: 12px;
 
  line-height: 20px;
 
  color: #fff;
 
  text-align: center;
 
  background-color: #337ab7;
 
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
 
  -webkit-transition: width 0.6s ease;
 
  transition: width 0.6s ease;
 
}
 
.progress-striped .progress-bar,
 
.progress-bar-striped {
 
  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);
 
  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);
 
  background-size: 40px 40px;
 
}
 
.progress.active .progress-bar,
 
.progress-bar.active {
 
  -webkit-animation: progress-bar-stripes 2s linear infinite;
 
  animation: progress-bar-stripes 2s linear infinite;
 
}
 
.progress-bar-success {
 
  background-color: #5cb85c;
 
}
 
.progress-striped .progress-bar-success {
 
  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);
 
  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);
 
}
 
.progress-bar-info {
 
  background-color: #5bc0de;
 
}
 
.progress-striped .progress-bar-info {
 
  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);
 
  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);
 
}
 
.progress-bar-warning {
 
  background-color: #f0ad4e;
 
}
 
.progress-striped .progress-bar-warning {
 
  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);
 
  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);
 
}
 
.progress-bar-danger {
 
  background-color: #d9534f;
 
}
 
.progress-striped .progress-bar-danger {
 
  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);
 
  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);
 
}
 
.media {
 
  margin-top: 15px;
 
}
 
.media:first-child {
 
  margin-top: 0;
 
}
 
.media,
 
.media-body {
 
  zoom: 1;
 
  overflow: hidden;
 
}
 
.media-body {
 
  width: 10000px;
 
}
 
.media-object {
 
  display: block;
 
}
 
.media-object.img-thumbnail {
 
  max-width: none;
 
}
 
.media-right,
 
.media > .pull-right {
 
  padding-left: 10px;
 
}
 
.media-left,
 
.media > .pull-left {
 
  padding-right: 10px;
 
}
 
.media-left,
 
.media-right,
 
.media-body {
 
  display: table-cell;
 
  vertical-align: top;
 
}
 
.media-middle {
 
  vertical-align: middle;
 
}
 
.media-bottom {
 
  vertical-align: bottom;
 
}
 
.media-heading {
 
  margin-top: 0;
 
  margin-bottom: 5px;
 
}
 
.media-list {
 
  padding-left: 0;
 
  list-style: none;
 
}
 
.list-group {
 
  margin-bottom: 20px;
 
  padding-left: 0;
 
}
 
.list-group-item {
 
  position: relative;
 
  display: block;
 
  padding: 10px 15px;
 
  margin-bottom: -1px;
 
  background-color: #fff;
 
  border: 1px solid #ddd;
 
}
 
.list-group-item:first-child {
 
  border-top-right-radius: 4px;
 
  border-top-left-radius: 4px;
 
}
 
.list-group-item:last-child {
 
  margin-bottom: 0;
 
  border-bottom-right-radius: 4px;
 
  border-bottom-left-radius: 4px;
 
}
 
a.list-group-item,
 
button.list-group-item {
 
  color: #555;
 
}
 
a.list-group-item .list-group-item-heading,
 
button.list-group-item .list-group-item-heading {
 
  color: #333;
 
}
 
a.list-group-item:hover,
 
button.list-group-item:hover,
 
a.list-group-item:focus,
 
button.list-group-item:focus {
 
  text-decoration: none;
 
  color: #555;
 
  background-color: #f5f5f5;
 
}
 
button.list-group-item {
 
  width: 100%;
 
  text-align: left;
 
}
 
.list-group-item.disabled,
 
.list-group-item.disabled:hover,
 
.list-group-item.disabled:focus {
 
  background-color: #eeeeee;
 
  color: #777777;
 
  cursor: not-allowed;
 
}
 
.list-group-item.disabled .list-group-item-heading,
 
.list-group-item.disabled:hover .list-group-item-heading,
 
.list-group-item.disabled:focus .list-group-item-heading {
 
  color: inherit;
 
}
 
.list-group-item.disabled .list-group-item-text,
 
.list-group-item.disabled:hover .list-group-item-text,
 
.list-group-item.disabled:focus .list-group-item-text {
 
  color: #777777;
 
}
 
.list-group-item.active,
 
.list-group-item.active:hover,
 
.list-group-item.active:focus {
 
  z-index: 2;
 
  color: #fff;
 
  background-color: #337ab7;
 
  border-color: #337ab7;
 
}
 
.list-group-item.active .list-group-item-heading,
 
.list-group-item.active:hover .list-group-item-heading,
 
.list-group-item.active:focus .list-group-item-heading,
 
.list-group-item.active .list-group-item-heading > small,
 
.list-group-item.active:hover .list-group-item-heading > small,
 
.list-group-item.active:focus .list-group-item-heading > small,
 
.list-group-item.active .list-group-item-heading > .small,
 
.list-group-item.active:hover .list-group-item-heading > .small,
 
.list-group-item.active:focus .list-group-item-heading > .small {
 
  color: inherit;
 
}
 
.list-group-item.active .list-group-item-text,
 
.list-group-item.active:hover .list-group-item-text,
 
.list-group-item.active:focus .list-group-item-text {
 
  color: #c7ddef;
 
}
 
.list-group-item-success {
 
  color: #3c763d;
 
  background-color: #dff0d8;
 
}
 
a.list-group-item-success,
 
button.list-group-item-success {
 
  color: #3c763d;
 
}
 
a.list-group-item-success .list-group-item-heading,
 
button.list-group-item-success .list-group-item-heading {
 
  color: inherit;
 
}
 
a.list-group-item-success:hover,
 
button.list-group-item-success:hover,
 
a.list-group-item-success:focus,
 
button.list-group-item-success:focus {
 
  color: #3c763d;
 
  background-color: #d0e9c6;
 
}
 
a.list-group-item-success.active,
 
button.list-group-item-success.active,
 
a.list-group-item-success.active:hover,
 
button.list-group-item-success.active:hover,
 
a.list-group-item-success.active:focus,
 
button.list-group-item-success.active:focus {
 
  color: #fff;
 
  background-color: #3c763d;
 
  border-color: #3c763d;
 
}
 
.list-group-item-info {
 
  color: #31708f;
 
  background-color: #d9edf7;
 
}
 
a.list-group-item-info,
 
button.list-group-item-info {
 
  color: #31708f;
 
}
 
a.list-group-item-info .list-group-item-heading,
 
button.list-group-item-info .list-group-item-heading {
 
  color: inherit;
 
}
 
a.list-group-item-info:hover,
 
button.list-group-item-info:hover,
 
a.list-group-item-info:focus,
 
button.list-group-item-info:focus {
 
  color: #31708f;
 
  background-color: #c4e3f3;
 
}
 
a.list-group-item-info.active,
 
button.list-group-item-info.active,
 
a.list-group-item-info.active:hover,
 
button.list-group-item-info.active:hover,
 
a.list-group-item-info.active:focus,
 
button.list-group-item-info.active:focus {
 
  color: #fff;
 
  background-color: #31708f;
 
  border-color: #31708f;
 
}
 
.list-group-item-warning {
 
  color: #8a6d3b;
 
  background-color: #fcf8e3;
 
}
 
a.list-group-item-warning,
 
button.list-group-item-warning {
 
  color: #8a6d3b;
 
}
 
a.list-group-item-warning .list-group-item-heading,
 
button.list-group-item-warning .list-group-item-heading {
 
  color: inherit;
 
}
 
a.list-group-item-warning:hover,
 
button.list-group-item-warning:hover,
 
a.list-group-item-warning:focus,
 
button.list-group-item-warning:focus {
 
  color: #8a6d3b;
 
  background-color: #faf2cc;
 
}
 
a.list-group-item-warning.active,
 
button.list-group-item-warning.active,
 
a.list-group-item-warning.active:hover,
 
button.list-group-item-warning.active:hover,
 
a.list-group-item-warning.active:focus,
 
button.list-group-item-warning.active:focus {
 
  color: #fff;
 
  background-color: #8a6d3b;
 
  border-color: #8a6d3b;
 
}
 
.list-group-item-danger {
 
  color: #a94442;
 
  background-color: #f2dede;
 
}
 
a.list-group-item-danger,
 
button.list-group-item-danger {
 
  color: #a94442;
 
}
 
a.list-group-item-danger .list-group-item-heading,
 
button.list-group-item-danger .list-group-item-heading {
 
  color: inherit;
 
}
 
a.list-group-item-danger:hover,
 
button.list-group-item-danger:hover,
 
a.list-group-item-danger:focus,
 
button.list-group-item-danger:focus {
 
  color: #a94442;
 
  background-color: #ebcccc;
 
}
 
a.list-group-item-danger.active,
 
button.list-group-item-danger.active,
 
a.list-group-item-danger.active:hover,
 
button.list-group-item-danger.active:hover,
 
a.list-group-item-danger.active:focus,
 
button.list-group-item-danger.active:focus {
 
  color: #fff;
 
  background-color: #a94442;
 
  border-color: #a94442;
 
}
 
.list-group-item-heading {
 
  margin-top: 0;
 
  margin-bottom: 5px;
 
}
 
.list-group-item-text {
 
  margin-bottom: 0;
 
  line-height: 1.3;
 
}
 
.panel {
 
  margin-bottom: 20px;
 
  background-color: #fff;
 
  border: 1px solid transparent;
 
  border-radius: 4px;
 
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
 
}
 
.panel-body {
 
  padding: 15px;
 
}
 
.panel-heading {
 
  padding: 10px 15px;
 
  border-bottom: 1px solid transparent;
 
  border-top-right-radius: 3px;
 
  border-top-left-radius: 3px;
 
}
 
.panel-heading > .dropdown .dropdown-toggle {
 
  color: inherit;
 
}
 
.panel-title {
 
  margin-top: 0;
 
  margin-bottom: 0;
 
  font-size: 16px;
 
  color: inherit;
 
}
 
.panel-title > a,
 
.panel-title > small,
 
.panel-title > .small,
 
.panel-title > small > a,
 
.panel-title > .small > a {
 
  color: inherit;
 
}
 
.panel-footer {
 
  padding: 10px 15px;
 
  background-color: #f5f5f5;
 
  border-top: 1px solid #ddd;
 
  border-bottom-right-radius: 3px;
 
  border-bottom-left-radius: 3px;
 
}
 
.panel > .list-group,
 
.panel > .panel-collapse > .list-group {
 
  margin-bottom: 0;
 
}
 
.panel > .list-group .list-group-item,
 
.panel > .panel-collapse > .list-group .list-group-item {
 
  border-width: 1px 0;
 
  border-radius: 0;
 
}
 
.panel > .list-group:first-child .list-group-item:first-child,
 
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
 
  border-top: 0;
 
  border-top-right-radius: 3px;
 
  border-top-left-radius: 3px;
 
}
 
.panel > .list-group:last-child .list-group-item:last-child,
 
.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
 
  border-bottom: 0;
 
  border-bottom-right-radius: 3px;
 
  border-bottom-left-radius: 3px;
 
}
 
.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
 
  border-top-right-radius: 0;
 
  border-top-left-radius: 0;
 
}
 
.panel-heading + .list-group .list-group-item:first-child {
 
  border-top-width: 0;
 
}
 
.list-group + .panel-footer {
 
  border-top-width: 0;
 
}
 
.panel > .table,
 
.panel > .table-responsive > .table,
 
.panel > .panel-collapse > .table {
 
  margin-bottom: 0;
 
}
 
.panel > .table caption,
 
.panel > .table-responsive > .table caption,
 
.panel > .panel-collapse > .table caption {
 
  padding-left: 15px;
 
  padding-right: 15px;
 
}
 
.panel > .table:first-child,
 
.panel > .table-responsive:first-child > .table:first-child {
 
  border-top-right-radius: 3px;
 
  border-top-left-radius: 3px;
 
}
 
.panel > .table:first-child > thead:first-child > tr:first-child,
 
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
 
.panel > .table:first-child > tbody:first-child > tr:first-child,
 
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
 
  border-top-left-radius: 3px;
 
  border-top-right-radius: 3px;
 
}
 
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
 
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
 
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
 
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
 
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
 
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
 
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
 
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
 
  border-top-left-radius: 3px;
 
}
 
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
 
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
 
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
 
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
 
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
 
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
 
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
 
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
 
  border-top-right-radius: 3px;
 
}
 
.panel > .table:last-child,
 
.panel > .table-responsive:last-child > .table:last-child {
 
  border-bottom-right-radius: 3px;
 
  border-bottom-left-radius: 3px;
 
}
 
.panel > .table:last-child > tbody:last-child > tr:last-child,
 
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
 
.panel > .table:last-child > tfoot:last-child > tr:last-child,
 
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
 
  border-bottom-left-radius: 3px;
 
  border-bottom-right-radius: 3px;
 
}
 
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
 
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
 
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
 
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
 
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
 
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
 
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
 
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
 
  border-bottom-left-radius: 3px;
 
}
 
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
 
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
 
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
 
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
 
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
 
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
 
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
 
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
 
  border-bottom-right-radius: 3px;
 
}
 
.panel > .panel-body + .table,
 
.panel > .panel-body + .table-responsive,
 
.panel > .table + .panel-body,
 
.panel > .table-responsive + .panel-body {
 
  border-top: 1px solid #ddd;
 
}
 
.panel > .table > tbody:first-child > tr:first-child th,
 
.panel > .table > tbody:first-child > tr:first-child td {
 
  border-top: 0;
 
}
 
.panel > .table-bordered,
 
.panel > .table-responsive > .table-bordered {
 
  border: 0;
 
}
 
.panel > .table-bordered > thead > tr > th:first-child,
 
.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
 
.panel > .table-bordered > tbody > tr > th:first-child,
 
.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
 
.panel > .table-bordered > tfoot > tr > th:first-child,
 
.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
 
.panel > .table-bordered > thead > tr > td:first-child,
 
.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
 
.panel > .table-bordered > tbody > tr > td:first-child,
 
.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
 
.panel > .table-bordered > tfoot > tr > td:first-child,
 
.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
 
  border-left: 0;
 
}
 
.panel > .table-bordered > thead > tr > th:last-child,
 
.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
 
.panel > .table-bordered > tbody > tr > th:last-child,
 
.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
 
.panel > .table-bordered > tfoot > tr > th:last-child,
 
.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
 
.panel > .table-bordered > thead > tr > td:last-child,
 
.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
 
.panel > .table-bordered > tbody > tr > td:last-child,
 
.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
 
.panel > .table-bordered > tfoot > tr > td:last-child,
 
.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
 
  border-right: 0;
 
}
 
.panel > .table-bordered > thead > tr:first-child > td,
 
.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
 
.panel > .table-bordered > tbody > tr:first-child > td,
 
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
 
.panel > .table-bordered > thead > tr:first-child > th,
 
.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
 
.panel > .table-bordered > tbody > tr:first-child > th,
 
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
 
  border-bottom: 0;
 
}
 
.panel > .table-bordered > tbody > tr:last-child > td,
 
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
 
.panel > .table-bordered > tfoot > tr:last-child > td,
 
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
 
.panel > .table-bordered > tbody > tr:last-child > th,
 
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
 
.panel > .table-bordered > tfoot > tr:last-child > th,
 
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
 
  border-bottom: 0;
 
}
 
.panel > .table-responsive {
 
  border: 0;
 
  margin-bottom: 0;
 
}
 
.panel-group {
 
  margin-bottom: 20px;
 
}
 
.panel-group .panel {
 
  margin-bottom: 0;
 
  border-radius: 4px;
 
}
 
.panel-group .panel + .panel {
 
  margin-top: 5px;
 
}
 
.panel-group .panel-heading {
 
  border-bottom: 0;
 
}
 
.panel-group .panel-heading + .panel-collapse > .panel-body,
 
.panel-group .panel-heading + .panel-collapse > .list-group {
 
  border-top: 1px solid #ddd;
 
}
 
.panel-group .panel-footer {
 
  border-top: 0;
 
}
 
.panel-group .panel-footer + .panel-collapse .panel-body {
 
  border-bottom: 1px solid #ddd;
 
}
 
.panel-default {
 
  border-color: #ddd;
 
}
 
.panel-default > .panel-heading {
 
  color: #333333;
 
  background-color: #f5f5f5;
 
  border-color: #ddd;
 
}
 
.panel-default > .panel-heading + .panel-collapse > .panel-body {
 
  border-top-color: #ddd;
 
}
 
.panel-default > .panel-heading .badge {
 
  color: #f5f5f5;
 
  background-color: #333333;
 
}
 
.panel-default > .panel-footer + .panel-collapse > .panel-body {
 
  border-bottom-color: #ddd;
 
}
 
.panel-primary {
 
  border-color: #337ab7;
 
}
 
.panel-primary > .panel-heading {
 
  color: #fff;
 
  background-color: #337ab7;
 
  border-color: #337ab7;
 
}
 
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
 
  border-top-color: #337ab7;
 
}
 
.panel-primary > .panel-heading .badge {
 
  color: #337ab7;
 
  background-color: #fff;
 
}
 
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
 
  border-bottom-color: #337ab7;
 
}
 
.panel-success {
 
  border-color: #d6e9c6;
 
}
 
.panel-success > .panel-heading {
 
  color: #3c763d;
 
  background-color: #dff0d8;
 
  border-color: #d6e9c6;
 
}
 
.panel-success > .panel-heading + .panel-collapse > .panel-body {
 
  border-top-color: #d6e9c6;
 
}
 
.panel-success > .panel-heading .badge {
 
  color: #dff0d8;
 
  background-color: #3c763d;
 
}
 
.panel-success > .panel-footer + .panel-collapse > .panel-body {
 
  border-bottom-color: #d6e9c6;
 
}
 
.panel-info {
 
  border-color: #bce8f1;
 
}
 
.panel-info > .panel-heading {
 
  color: #31708f;
 
  background-color: #d9edf7;
 
  border-color: #bce8f1;
 
}
 
.panel-info > .panel-heading + .panel-collapse > .panel-body {
 
  border-top-color: #bce8f1;
 
}
 
.panel-info > .panel-heading .badge {
 
  color: #d9edf7;
 
  background-color: #31708f;
 
}
 
.panel-info > .panel-footer + .panel-collapse > .panel-body {
 
  border-bottom-color: #bce8f1;
 
}
 
.panel-warning {
 
  border-color: #faebcc;
 
}
 
.panel-warning > .panel-heading {
 
  color: #8a6d3b;
 
  background-color: #fcf8e3;
 
  border-color: #faebcc;
 
}
 
.panel-warning > .panel-heading + .panel-collapse > .panel-body {
 
  border-top-color: #faebcc;
 
}
 
.panel-warning > .panel-heading .badge {
 
  color: #fcf8e3;
 
  background-color: #8a6d3b;
 
}
 
.panel-warning > .panel-footer + .panel-collapse > .panel-body {
 
  border-bottom-color: #faebcc;
 
}
 
.panel-danger {
 
  border-color: #ebccd1;
 
}
 
.panel-danger > .panel-heading {
 
  color: #a94442;
 
  background-color: #f2dede;
 
  border-color: #ebccd1;
 
}
 
.panel-danger > .panel-heading + .panel-collapse > .panel-body {
 
  border-top-color: #ebccd1;
 
}
 
.panel-danger > .panel-heading .badge {
 
  color: #f2dede;
 
  background-color: #a94442;
 
}
 
.panel-danger > .panel-footer + .panel-collapse > .panel-body {
 
  border-bottom-color: #ebccd1;
 
}
 
.embed-responsive {
 
  position: relative;
 
  display: block;
 
  height: 0;
 
  padding: 0;
 
  overflow: hidden;
 
}
 
.embed-responsive .embed-responsive-item,
 
.embed-responsive iframe,
 
.embed-responsive embed,
 
.embed-responsive object,
 
.embed-responsive video {
 
  position: absolute;
 
  top: 0;
 
  left: 0;
 
  bottom: 0;
 
  height: 100%;
 
  width: 100%;
 
  border: 0;
 
}
 
.embed-responsive-16by9 {
 
  padding-bottom: 56.25%;
 
}
 
.embed-responsive-4by3 {
 
  padding-bottom: 75%;
 
}
 
.well {
 
  min-height: 20px;
 
  padding: 19px;
 
  margin-bottom: 20px;
 
  background-color: #f5f5f5;
 
  border: 1px solid #e3e3e3;
 
  border-radius: 4px;
 
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
 
}
 
.well blockquote {
 
  border-color: #ddd;
 
  border-color: rgba(0, 0, 0, 0.15);
 
}
 
.well-lg {
 
  padding: 24px;
 
  border-radius: 6px;
 
}
 
.well-sm {
 
  padding: 9px;
 
  border-radius: 3px;
 
}
 
.close {
 
  float: right;
 
  font-size: 21px;
 
  font-weight: bold;
 
  line-height: 1;
 
  color: #000;
 
  text-shadow: 0 1px 0 #fff;
 
  opacity: 0.2;
 
  filter: alpha(opacity=20);
 
}
 
.close:hover,
 
.close:focus {
 
  color: #000;
 
  text-decoration: none;
 
  cursor: pointer;
 
  opacity: 0.5;
 
  filter: alpha(opacity=50);
 
}
 
button.close {
 
  padding: 0;
 
  cursor: pointer;
 
  background: transparent;
 
  border: 0;
 
  -webkit-appearance: none;
 
}
 
.modal-open {
 
  overflow: hidden;
 
}
 
.modal {
 
  display: none;
 
  overflow: hidden;
 
  position: fixed;
 
  top: 0;
 
  right: 0;
 
  bottom: 0;
 
  left: 0;
 
  z-index: 1050;
 
  -webkit-overflow-scrolling: touch;
 
  outline: 0;
 
}
 
.modal.fade .modal-dialog {
 
  -webkit-transform: translate(0, -25%);
 
  transform: translate(0, -25%);
 
  -webkit-transition: -webkit-transform 0.3s ease-out;
 
  transition: -webkit-transform 0.3s ease-out;
 
  transition: transform 0.3s ease-out;
 
  transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
 
}
 
.modal.in .modal-dialog {
 
  -webkit-transform: translate(0, 0);
 
  transform: translate(0, 0);
 
}
 
.modal-open .modal {
 
  overflow-x: hidden;
 
  overflow-y: auto;
 
}
 
.modal-dialog {
 
  position: relative;
 
  width: auto;
 
  margin: 10px;
 
}
 
.modal-content {
 
  position: relative;
 
  background-color: #fff;
 
  border: 1px solid #999;
 
  border: 1px solid rgba(0, 0, 0, 0.2);
 
  border-radius: 6px;
 
  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
 
  background-clip: padding-box;
 
  outline: 0;
 
}
 
.modal-backdrop {
 
  position: fixed;
 
  top: 0;
 
  right: 0;
 
  bottom: 0;
 
  left: 0;
 
  z-index: 1040;
 
  background-color: #000;
 
}
 
.modal-backdrop.fade {
 
  opacity: 0;
 
  filter: alpha(opacity=0);
 
}
 
.modal-backdrop.in {
 
  opacity: 0.5;
 
  filter: alpha(opacity=50);
 
}
 
.modal-header {
 
  padding: 15px;
 
  border-bottom: 1px solid #e5e5e5;
 
}
 
.modal-header .close {
 
  margin-top: -2px;
 
}
 
.modal-title {
 
  margin: 0;
 
  line-height: 1.42857143;
 
}
 
.modal-body {
 
  position: relative;
 
  padding: 15px;
 
}
 
.modal-footer {
 
  padding: 15px;
 
  text-align: right;
 
  border-top: 1px solid #e5e5e5;
 
}
 
.modal-footer .btn + .btn {
 
  margin-left: 5px;
 
  margin-bottom: 0;
 
}
 
.modal-footer .btn-group .btn + .btn {
 
  margin-left: -1px;
 
}
 
.modal-footer .btn-block + .btn-block {
 
  margin-left: 0;
 
}
 
.modal-scrollbar-measure {
 
  position: absolute;
 
  top: -9999px;
 
  width: 50px;
 
  height: 50px;
 
  overflow: scroll;
 
}
 
@media (min-width: 768px) {
 
  .modal-dialog {
 
    width: 600px;
 
    margin: 30px auto;
 
  }
 
  .modal-content {
 
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
 
  }
 
  .modal-sm {
 
    width: 300px;
 
  }
 
}
 
@media (min-width: 992px) {
 
  .modal-lg {
 
    width: 900px;
 
  }
 
}
 
.tooltip {
 
  position: absolute;
 
  z-index: 1070;
 
  display: block;
 
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
 
  font-style: normal;
 
  font-weight: normal;
 
  letter-spacing: normal;
 
  line-break: auto;
 
  line-height: 1.42857143;
 
  text-align: left;
 
  text-align: start;
 
  text-decoration: none;
 
  text-shadow: none;
 
  text-transform: none;
 
  white-space: normal;
 
  word-break: normal;
 
  word-spacing: normal;
 
  word-wrap: normal;
 
  font-size: 12px;
 
  opacity: 0;
 
  filter: alpha(opacity=0);
 
}
 
.tooltip.in {
 
  opacity: 0.9;
 
  filter: alpha(opacity=90);
 
}
 
.tooltip.top {
 
  margin-top: -3px;
 
  padding: 5px 0;
 
}
 
.tooltip.right {
 
  margin-left: 3px;
 
  padding: 0 5px;
 
}
 
.tooltip.bottom {
 
  margin-top: 3px;
 
  padding: 5px 0;
 
}
 
.tooltip.left {
 
  margin-left: -3px;
 
  padding: 0 5px;
 
}
 
.tooltip-inner {
 
  max-width: 200px;
 
  padding: 3px 8px;
 
  color: #fff;
 
  text-align: center;
 
  background-color: #000;
 
  border-radius: 4px;
 
}
 
.tooltip-arrow {
 
  position: absolute;
 
  width: 0;
 
  height: 0;
 
  border-color: transparent;
 
  border-style: solid;
 
}
 
.tooltip.top .tooltip-arrow {
 
  bottom: 0;
 
  left: 50%;
 
  margin-left: -5px;
 
  border-width: 5px 5px 0;
 
  border-top-color: #000;
 
}
 
.tooltip.top-left .tooltip-arrow {
 
  bottom: 0;
 
  right: 5px;
 
  margin-bottom: -5px;
 
  border-width: 5px 5px 0;
 
  border-top-color: #000;
 
}
 
.tooltip.top-right .tooltip-arrow {
 
  bottom: 0;
 
  left: 5px;
 
  margin-bottom: -5px;
 
  border-width: 5px 5px 0;
 
  border-top-color: #000;
 
}
 
.tooltip.right .tooltip-arrow {
 
  top: 50%;
 
  left: 0;
 
  margin-top: -5px;
 
  border-width: 5px 5px 5px 0;
 
  border-right-color: #000;
 
}
 
.tooltip.left .tooltip-arrow {
 
  top: 50%;
 
  right: 0;
 
  margin-top: -5px;
 
  border-width: 5px 0 5px 5px;
 
  border-left-color: #000;
 
}
 
.tooltip.bottom .tooltip-arrow {
 
  top: 0;
 
  left: 50%;
 
  margin-left: -5px;
 
  border-width: 0 5px 5px;
 
  border-bottom-color: #000;
 
}
 
.tooltip.bottom-left .tooltip-arrow {
 
  top: 0;
 
  right: 5px;
 
  margin-top: -5px;
 
  border-width: 0 5px 5px;
 
  border-bottom-color: #000;
 
}
 
.tooltip.bottom-right .tooltip-arrow {
 
  top: 0;
 
  left: 5px;
 
  margin-top: -5px;
 
  border-width: 0 5px 5px;
 
  border-bottom-color: #000;
 
}
 
.popover {
 
  position: absolute;
 
  top: 0;
 
  left: 0;
 
  z-index: 1060;
 
  display: none;
 
  max-width: 276px;
 
  padding: 1px;
 
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
 
  font-style: normal;
 
  font-weight: normal;
 
  letter-spacing: normal;
 
  line-break: auto;
 
  line-height: 1.42857143;
 
  text-align: left;
 
  text-align: start;
 
  text-decoration: none;
 
  text-shadow: none;
 
  text-transform: none;
 
  white-space: normal;
 
  word-break: normal;
 
  word-spacing: normal;
 
  word-wrap: normal;
 
  font-size: 14px;
 
  background-color: #fff;
 
  background-clip: padding-box;
 
  border: 1px solid #ccc;
 
  border: 1px solid rgba(0, 0, 0, 0.2);
 
  border-radius: 6px;
 
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
 
}
 
.popover.top {
 
  margin-top: -10px;
 
}
 
.popover.right {
 
  margin-left: 10px;
 
}
 
.popover.bottom {
 
  margin-top: 10px;
 
}
 
.popover.left {
 
  margin-left: -10px;
 
}
 
.popover-title {
 
  margin: 0;
 
  padding: 8px 14px;
 
  font-size: 14px;
 
  background-color: #f7f7f7;
 
  border-bottom: 1px solid #ebebeb;
 
  border-radius: 5px 5px 0 0;
 
}
 
.popover-content {
 
  padding: 9px 14px;
 
}
 
.popover > .arrow,
 
.popover > .arrow:after {
 
  position: absolute;
 
  display: block;
 
  width: 0;
 
  height: 0;
 
  border-color: transparent;
 
  border-style: solid;
 
}
 
.popover > .arrow {
 
  border-width: 11px;
 
}
 
.popover > .arrow:after {
 
  border-width: 10px;
 
  content: "";
 
}
 
.popover.top > .arrow {
 
  left: 50%;
 
  margin-left: -11px;
 
  border-bottom-width: 0;
 
  border-top-color: #999999;
 
  border-top-color: rgba(0, 0, 0, 0.25);
 
  bottom: -11px;
 
}
 
.popover.top > .arrow:after {
 
  content: " ";
 
  bottom: 1px;
 
  margin-left: -10px;
 
  border-bottom-width: 0;
 
  border-top-color: #fff;
 
}
 
.popover.right > .arrow {
 
  top: 50%;
 
  left: -11px;
 
  margin-top: -11px;
 
  border-left-width: 0;
 
  border-right-color: #999999;
 
  border-right-color: rgba(0, 0, 0, 0.25);
 
}
 
.popover.right > .arrow:after {
 
  content: " ";
 
  left: 1px;
 
  bottom: -10px;
 
  border-left-width: 0;
 
  border-right-color: #fff;
 
}
 
.popover.bottom > .arrow {
 
  left: 50%;
 
  margin-left: -11px;
 
  border-top-width: 0;
 
  border-bottom-color: #999999;
 
  border-bottom-color: rgba(0, 0, 0, 0.25);
 
  top: -11px;
 
}
 
.popover.bottom > .arrow:after {
 
  content: " ";
 
  top: 1px;
 
  margin-left: -10px;
 
  border-top-width: 0;
 
  border-bottom-color: #fff;
 
}
 
.popover.left > .arrow {
 
  top: 50%;
 
  right: -11px;
 
  margin-top: -11px;
 
  border-right-width: 0;
 
  border-left-color: #999999;
 
  border-left-color: rgba(0, 0, 0, 0.25);
 
}
 
.popover.left > .arrow:after {
 
  content: " ";
 
  right: 1px;
 
  border-right-width: 0;
 
  border-left-color: #fff;
 
  bottom: -10px;
 
}
 
.carousel {
 
  position: relative;
 
}
 
.carousel-inner {
 
  position: relative;
 
  overflow: hidden;
 
  width: 100%;
 
}
 
.carousel-inner > .item {
 
  display: none;
 
  position: relative;
 
  -webkit-transition: 0.6s ease-in-out left;
 
  transition: 0.6s ease-in-out left;
 
}
 
.carousel-inner > .item > img,
 
.carousel-inner > .item > a > img {
 
  line-height: 1;
 
}
 
@media all and (transform-3d), (-webkit-transform-3d) {
 
  .carousel-inner > .item {
 
    -webkit-transition: -webkit-transform 0.6s ease-in-out;
 
    transition: -webkit-transform 0.6s ease-in-out;
 
    transition: transform 0.6s ease-in-out;
 
    transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out;
 
    -webkit-backface-visibility: hidden;
 
    backface-visibility: hidden;
 
    -webkit-perspective: 1000px;
 
    perspective: 1000px;
 
  }
 
  .carousel-inner > .item.next,
 
  .carousel-inner > .item.active.right {
 
    -webkit-transform: translate3d(100%, 0, 0);
 
    transform: translate3d(100%, 0, 0);
 
    left: 0;
 
  }
 
  .carousel-inner > .item.prev,
 
  .carousel-inner > .item.active.left {
 
    -webkit-transform: translate3d(-100%, 0, 0);
 
    transform: translate3d(-100%, 0, 0);
 
    left: 0;
 
  }
 
  .carousel-inner > .item.next.left,
 
  .carousel-inner > .item.prev.right,
 
  .carousel-inner > .item.active {
 
    -webkit-transform: translate3d(0, 0, 0);
 
    transform: translate3d(0, 0, 0);
 
    left: 0;
 
  }
 
}
 
.carousel-inner > .active,
 
.carousel-inner > .next,
 
.carousel-inner > .prev {
 
  display: block;
 
}
 
.carousel-inner > .active {
 
  left: 0;
 
}
 
.carousel-inner > .next,
 
.carousel-inner > .prev {
 
  position: absolute;
 
  top: 0;
 
  width: 100%;
 
}
 
.carousel-inner > .next {
 
  left: 100%;
 
}
 
.carousel-inner > .prev {
 
  left: -100%;
 
}
 
.carousel-inner > .next.left,
 
.carousel-inner > .prev.right {
 
  left: 0;
 
}
 
.carousel-inner > .active.left {
 
  left: -100%;
 
}
 
.carousel-inner > .active.right {
 
  left: 100%;
 
}
 
.carousel-control {
 
  position: absolute;
 
  top: 0;
 
  left: 0;
 
  bottom: 0;
 
  width: 15%;
 
  opacity: 0.5;
 
  filter: alpha(opacity=50);
 
  font-size: 20px;
 
  color: #fff;
 
  text-align: center;
 
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
 
  background-color: rgba(0, 0, 0, 0);
 
}
 
.carousel-control.left {
 
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
 
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
 
  background-repeat: repeat-x;
 
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
 
}
 
.carousel-control.right {
 
  left: auto;
 
  right: 0;
 
  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
 
  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
 
  background-repeat: repeat-x;
 
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
 
}
 
.carousel-control:hover,
 
.carousel-control:focus {
 
  outline: 0;
 
  color: #fff;
 
  text-decoration: none;
 
  opacity: 0.9;
 
  filter: alpha(opacity=90);
 
}
 
.carousel-control .icon-prev,
 
.carousel-control .icon-next,
 
.carousel-control .glyphicon-chevron-left,
 
.carousel-control .glyphicon-chevron-right {
 
  position: absolute;
 
  top: 50%;
 
  margin-top: -10px;
 
  z-index: 5;
 
  display: inline-block;
 
}
 
.carousel-control .icon-prev,
 
.carousel-control .glyphicon-chevron-left {
 
  left: 50%;
 
  margin-left: -10px;
 
}
 
.carousel-control .icon-next,
 
.carousel-control .glyphicon-chevron-right {
 
  right: 50%;
 
  margin-right: -10px;
 
}
 
.carousel-control .icon-prev,
 
.carousel-control .icon-next {
 
  width: 20px;
 
  height: 20px;
 
  line-height: 1;
 
  font-family: serif;
 
}
 
.carousel-control .icon-prev:before {
 
  content: '\2039';
 
}
 
.carousel-control .icon-next:before {
 
  content: '\203a';
 
}
 
.carousel-indicators {
 
  position: absolute;
 
  bottom: 10px;
 
  left: 50%;
 
  z-index: 15;
 
  width: 60%;
 
  margin-left: -30%;
 
  padding-left: 0;
 
  list-style: none;
 
  text-align: center;
 
}
 
.carousel-indicators li {
 
  display: inline-block;
 
  width: 10px;
 
  height: 10px;
 
  margin: 1px;
 
  text-indent: -999px;
 
  border: 1px solid #fff;
 
  border-radius: 10px;
 
  cursor: pointer;
 
  background-color: #000 \9;
 
  background-color: rgba(0, 0, 0, 0);
 
}
 
.carousel-indicators .active {
 
  margin: 0;
 
  width: 12px;
 
  height: 12px;
 
  background-color: #fff;
 
}
 
.carousel-caption {
 
  position: absolute;
 
  left: 15%;
 
  right: 15%;
 
  bottom: 20px;
 
  z-index: 10;
 
  padding-top: 20px;
 
  padding-bottom: 20px;
 
  color: #fff;
 
  text-align: center;
 
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
 
}
 
.carousel-caption .btn {
 
  text-shadow: none;
 
}
 
@media screen and (min-width: 768px) {
 
  .carousel-control .glyphicon-chevron-left,
 
  .carousel-control .glyphicon-chevron-right,
 
  .carousel-control .icon-prev,
 
  .carousel-control .icon-next {
 
    width: 30px;
 
    height: 30px;
 
    margin-top: -10px;
 
    font-size: 30px;
 
  }
 
  .carousel-control .glyphicon-chevron-left,
 
  .carousel-control .icon-prev {
 
    margin-left: -10px;
 
  }
 
  .carousel-control .glyphicon-chevron-right,
 
  .carousel-control .icon-next {
 
    margin-right: -10px;
 
  }
 
  .carousel-caption {
 
    left: 20%;
 
    right: 20%;
 
    padding-bottom: 30px;
 
  }
 
  .carousel-indicators {
 
    bottom: 20px;
 
  }
 
}
 
.clearfix:before,
 
.clearfix:after,
 
.dl-horizontal dd:before,
 
.dl-horizontal dd:after,
 
.container:before,
 
.container:after,
 
.container-fluid:before,
 
.container-fluid:after,
 
.row:before,
 
.row:after,
 
.form-horizontal .form-group:before,
 
.form-horizontal .form-group:after,
 
.btn-toolbar:before,
 
.btn-toolbar:after,
 
.btn-group-vertical > .btn-group:before,
 
.btn-group-vertical > .btn-group:after,
 
.nav:before,
 
.nav:after,
 
.navbar:before,
 
.navbar:after,
 
.navbar-header:before,
 
.navbar-header:after,
 
.navbar-collapse:before,
 
.navbar-collapse:after,
 
.pager:before,
 
.pager:after,
 
.panel-body:before,
 
.panel-body:after,
 
.modal-header:before,
 
.modal-header:after,
 
.modal-footer:before,
 
.modal-footer:after,
 
.feature-columns:before,
 
.feature-columns:after {
 
  content: " ";
 
  display: table;
 
}
 
.clearfix:after,
 
.dl-horizontal dd:after,
 
.container:after,
 
.container-fluid:after,
 
.row:after,
 
.form-horizontal .form-group:after,
 
.btn-toolbar:after,
 
.btn-group-vertical > .btn-group:after,
 
.nav:after,
 
.navbar:after,
 
.navbar-header:after,
 
.navbar-collapse:after,
 
.pager:after,
 
.panel-body:after,
 
.modal-header:after,
 
.modal-footer:after,
 
.feature-columns:after {
 
  clear: both;
 
}
 
.center-block {
 
  display: block;
 
  margin-left: auto;
 
  margin-right: auto;
 
}
 
.pull-right {
 
  float: right !important;
 
}
 
.pull-left {
 
  float: left !important;
 
}
 
.hide {
 
  display: none !important;
 
}
 
.show {
 
  display: block !important;
 
}
 
.invisible {
 
  visibility: hidden;
 
}
 
.text-hide {
 
  font: 0/0 a;
 
  color: transparent;
 
  text-shadow: none;
 
  background-color: transparent;
 
  border: 0;
 
}
 
.hidden {
 
  display: none !important;
 
}
 
.affix {
 
  position: fixed;
 
}
 
@-ms-viewport {
 
  width: device-width;
 
}
 
.visible-xs,
 
.visible-sm,
 
.visible-md,
 
.visible-lg {
 
  display: none !important;
 
}
 
.visible-xs-block,
 
.visible-xs-inline,
 
.visible-xs-inline-block,
 
.visible-sm-block,
 
.visible-sm-inline,
 
.visible-sm-inline-block,
 
.visible-md-block,
 
.visible-md-inline,
 
.visible-md-inline-block,
 
.visible-lg-block,
 
.visible-lg-inline,
 
.visible-lg-inline-block {
 
  display: none !important;
 
}
 
@media (max-width: 767px) {
 
  .visible-xs {
 
    display: block !important;
 
  }
 
  table.visible-xs {
 
    display: table !important;
 
  }
 
  tr.visible-xs {
 
    display: table-row !important;
 
  }
 
  th.visible-xs,
 
  td.visible-xs {
 
    display: table-cell !important;
 
  }
 
}
 
@media (max-width: 767px) {
 
  .visible-xs-block {
 
    display: block !important;
 
  }
 
}
 
@media (max-width: 767px) {
 
  .visible-xs-inline {
 
    display: inline !important;
 
  }
 
}
 
@media (max-width: 767px) {
 
  .visible-xs-inline-block {
 
    display: inline-block !important;
 
  }
 
}
 
@media (min-width: 768px) and (max-width: 991px) {
 
  .visible-sm {
 
    display: block !important;
 
  }
 
  table.visible-sm {
 
    display: table !important;
 
  }
 
  tr.visible-sm {
 
    display: table-row !important;
 
  }
 
  th.visible-sm,
 
  td.visible-sm {
 
    display: table-cell !important;
 
  }
 
}
 
@media (min-width: 768px) and (max-width: 991px) {
 
  .visible-sm-block {
 
    display: block !important;
 
  }
 
}
 
@media (min-width: 768px) and (max-width: 991px) {
 
  .visible-sm-inline {
 
    display: inline !important;
 
  }
 
}
 
@media (min-width: 768px) and (max-width: 991px) {
 
  .visible-sm-inline-block {
 
    display: inline-block !important;
 
  }
 
}
 
@media (min-width: 992px) and (max-width: 1199px) {
 
  .visible-md {
 
    display: block !important;
 
  }
 
  table.visible-md {
 
    display: table !important;
 
  }
 
  tr.visible-md {
 
    display: table-row !important;
 
  }
 
  th.visible-md,
 
  td.visible-md {
 
    display: table-cell !important;
 
  }
 
}
 
@media (min-width: 992px) and (max-width: 1199px) {
 
  .visible-md-block {
 
    display: block !important;
 
  }
 
}
 
@media (min-width: 992px) and (max-width: 1199px) {
 
  .visible-md-inline {
 
    display: inline !important;
 
  }
 
}
 
@media (min-width: 992px) and (max-width: 1199px) {
 
  .visible-md-inline-block {
 
    display: inline-block !important;
 
  }
 
}
 
@media (min-width: 1200px) {
 
  .visible-lg {
 
    display: block !important;
 
  }
 
  table.visible-lg {
 
    display: table !important;
 
  }
 
  tr.visible-lg {
 
    display: table-row !important;
 
  }
 
  th.visible-lg,
 
  td.visible-lg {
 
    display: table-cell !important;
 
  }
 
}
 
@media (min-width: 1200px) {
 
  .visible-lg-block {
 
    display: block !important;
 
  }
 
}
 
@media (min-width: 1200px) {
 
  .visible-lg-inline {
 
    display: inline !important;
 
  }
 
}
 
@media (min-width: 1200px) {
 
  .visible-lg-inline-block {
 
    display: inline-block !important;
 
  }
 
}
 
@media (max-width: 767px) {
 
  .hidden-xs {
 
    display: none !important;
 
  }
 
}
 
@media (min-width: 768px) and (max-width: 991px) {
 
  .hidden-sm {
 
    display: none !important;
 
  }
 
}
 
@media (min-width: 992px) and (max-width: 1199px) {
 
  .hidden-md {
 
    display: none !important;
 
  }
 
}
 
@media (min-width: 1200px) {
 
  .hidden-lg {
 
    display: none !important;
 
  }
 
}
 
.visible-print {
 
  display: none !important;
 
}
 
@media print {
 
  .visible-print {
 
    display: block !important;
 
  }
 
  table.visible-print {
 
    display: table !important;
 
  }
 
  tr.visible-print {
 
    display: table-row !important;
 
  }
 
  th.visible-print,
 
  td.visible-print {
 
    display: table-cell !important;
 
  }
 
}
 
.visible-print-block {
 
  display: none !important;
 
}
 
@media print {
 
  .visible-print-block {
 
    display: block !important;
 
  }
 
}
 
.visible-print-inline {
 
  display: none !important;
 
}
 
@media print {
 
  .visible-print-inline {
 
    display: inline !important;
 
  }
 
}
 
.visible-print-inline-block {
 
  display: none !important;
 
}
 
@media print {
 
  .visible-print-inline-block {
 
    display: inline-block !important;
 
  }
 
}
 
@media print {
 
  .hidden-print {
 
    display: none !important;
 
  }
 
}
 
/*!
 
 *  Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome
 
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 
 */
 
/* FONT PATH
 
 * -------------------------- */
 
@font-face {
 
  font-family: 'FontAwesome';
 
  src: url('../fonts/fontawesome-webfont.eot?v=4.5.0');
 
  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.5.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.5.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.5.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.5.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular') format('svg');
 
  font-weight: normal;
 
  font-style: normal;
 
}
 
.fa {
 
  display: inline-block;
 
  font: normal normal normal 14px/1 FontAwesome;
 
  font-size: inherit;
 
  text-rendering: auto;
 
  -webkit-font-smoothing: antialiased;
 
  -moz-osx-font-smoothing: grayscale;
 
}
 
/* makes the font 33% larger relative to the icon container */
 
.fa-lg {
 
  font-size: 1.33333333em;
 
  line-height: 0.75em;
 
  vertical-align: -15%;
 
}
 
.fa-2x {
 
  font-size: 2em;
 
}
 
.fa-3x {
 
  font-size: 3em;
 
}
 
.fa-4x {
 
  font-size: 4em;
 
}
 
.fa-5x {
 
  font-size: 5em;
 
}
 
.fa-fw {
 
  width: 1.28571429em;
 
  text-align: center;
 
}
 
.fa-ul {
 
  padding-left: 0;
 
  margin-left: 2.14285714em;
 
  list-style-type: none;
 
}
 
.fa-ul > li {
 
  position: relative;
 
}
 
.fa-li {
 
  position: absolute;
 
  left: -2.14285714em;
 
  width: 2.14285714em;
 
  top: 0.14285714em;
 
  text-align: center;
 
}
 
.fa-li.fa-lg {
 
  left: -1.85714286em;
 
}
 
.fa-border {
 
  padding: .2em .25em .15em;
 
  border: solid 0.08em #eee;
 
  border-radius: .1em;
 
}
 
.fa-pull-left {
 
  float: left;
 
}
 
.fa-pull-right {
 
  float: right;
 
}
 
.fa.fa-pull-left {
 
  margin-right: .3em;
 
}
 
.fa.fa-pull-right {
 
  margin-left: .3em;
 
}
 
/* Deprecated as of 4.4.0 */
 
.pull-right {
 
  float: right;
 
}
 
.pull-left {
 
  float: left;
 
}
 
.fa.pull-left {
 
  margin-right: .3em;
 
}
 
.fa.pull-right {
 
  margin-left: .3em;
 
}
 
.fa-spin {
 
  -webkit-animation: fa-spin 2s infinite linear;
 
  animation: fa-spin 2s infinite linear;
 
}
 
.fa-pulse {
 
  -webkit-animation: fa-spin 1s infinite steps(8);
 
  animation: fa-spin 1s infinite steps(8);
 
}
 
@-webkit-keyframes fa-spin {
 
  0% {
 
    -webkit-transform: rotate(0deg);
 
    transform: rotate(0deg);
 
  }
 
  100% {
 
    -webkit-transform: rotate(359deg);
 
    transform: rotate(359deg);
 
  }
 
}
 
@keyframes fa-spin {
 
  0% {
 
    -webkit-transform: rotate(0deg);
 
    transform: rotate(0deg);
 
  }
 
  100% {
 
    -webkit-transform: rotate(359deg);
 
    transform: rotate(359deg);
 
  }
 
}
 
.fa-rotate-90 {
 
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
 
  -webkit-transform: rotate(90deg);
 
  transform: rotate(90deg);
 
}
 
.fa-rotate-180 {
 
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
 
  -webkit-transform: rotate(180deg);
 
  transform: rotate(180deg);
 
}
 
.fa-rotate-270 {
 
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
 
  -webkit-transform: rotate(270deg);
 
  transform: rotate(270deg);
 
}
 
.fa-flip-horizontal {
 
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
 
  -webkit-transform: scale(-1, 1);
 
  transform: scale(-1, 1);
 
}
 
.fa-flip-vertical {
 
  filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
 
  -webkit-transform: scale(1, -1);
 
  transform: scale(1, -1);
 
}
 
:root .fa-rotate-90,
 
:root .fa-rotate-180,
 
:root .fa-rotate-270,
 
:root .fa-flip-horizontal,
 
:root .fa-flip-vertical {
 
  -webkit-filter: none;
 
          filter: none;
 
}
 
.fa-stack {
 
  position: relative;
 
  display: inline-block;
 
  width: 2em;
 
  height: 2em;
 
  line-height: 2em;
 
  vertical-align: middle;
 
}
 
.fa-stack-1x,
 
.fa-stack-2x {
 
  position: absolute;
 
  left: 0;
 
  width: 100%;
 
  text-align: center;
 
}
 
.fa-stack-1x {
 
  line-height: inherit;
 
}
 
.fa-stack-2x {
 
  font-size: 2em;
 
}
 
.fa-inverse {
 
  color: #fff;
 
}
 
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
 
   readers do not read off random characters that represent icons */
 
.fa-glass:before {
 
  content: "\f000";
 
}
 
.fa-music:before {
 
  content: "\f001";
 
}
 
.fa-search:before {
 
  content: "\f002";
 
}
 
.fa-envelope-o:before {
 
  content: "\f003";
 
}
 
.fa-heart:before {
 
  content: "\f004";
 
}
 
.fa-star:before {
 
  content: "\f005";
 
}
 
.fa-star-o:before {
 
  content: "\f006";
 
}
 
.fa-user:before {
 
  content: "\f007";
 
}
 
.fa-film:before {
 
  content: "\f008";
 
}
 
.fa-th-large:before {
 
  content: "\f009";
 
}
 
.fa-th:before {
 
  content: "\f00a";
 
}
 
.fa-th-list:before {
 
  content: "\f00b";
 
}
 
.fa-check:before {
 
  content: "\f00c";
 
}
 
.fa-remove:before,
 
.fa-close:before,
 
.fa-times:before {
 
  content: "\f00d";
 
}
 
.fa-search-plus:before {
 
  content: "\f00e";
 
}
 
.fa-search-minus:before {
 
  content: "\f010";
 
}
 
.fa-power-off:before {
 
  content: "\f011";
 
}
 
.fa-signal:before {
 
  content: "\f012";
 
}
 
.fa-gear:before,
 
.fa-cog:before {
 
  content: "\f013";
 
}
 
.fa-trash-o:before {
 
  content: "\f014";
 
}
 
.fa-home:before {
 
  content: "\f015";
 
}
 
.fa-file-o:before {
 
  content: "\f016";
 
}
 
.fa-clock-o:before {
 
  content: "\f017";
 
}
 
.fa-road:before {
 
  content: "\f018";
 
}
 
.fa-download:before {
 
  content: "\f019";
 
}
 
.fa-arrow-circle-o-down:before {
 
  content: "\f01a";
 
}
 
.fa-arrow-circle-o-up:before {
 
  content: "\f01b";
 
}
 
.fa-inbox:before {
 
  content: "\f01c";
 
}
 
.fa-play-circle-o:before {
 
  content: "\f01d";
 
}
 
.fa-rotate-right:before,
 
.fa-repeat:before {
 
  content: "\f01e";
 
}
 
.fa-refresh:before {
 
  content: "\f021";
 
}
 
.fa-list-alt:before {
 
  content: "\f022";
 
}
 
.fa-lock:before {
 
  content: "\f023";
 
}
 
.fa-flag:before {
 
  content: "\f024";
 
}
 
.fa-headphones:before {
 
  content: "\f025";
 
}
 
.fa-volume-off:before {
 
  content: "\f026";
 
}
 
.fa-volume-down:before {
 
  content: "\f027";
 
}
 
.fa-volume-up:before {
 
  content: "\f028";
 
}
 
.fa-qrcode:before {
 
  content: "\f029";
 
}
 
.fa-barcode:before {
 
  content: "\f02a";
 
}
 
.fa-tag:before {
 
  content: "\f02b";
 
}
 
.fa-tags:before {
 
  content: "\f02c";
 
}
 
.fa-book:before {
 
  content: "\f02d";
 
}
 
.fa-bookmark:before {
 
  content: "\f02e";
 
}
 
.fa-print:before {
 
  content: "\f02f";
 
}
 
.fa-camera:before {
 
  content: "\f030";
 
}
 
.fa-font:before {
 
  content: "\f031";
 
}
 
.fa-bold:before {
 
  content: "\f032";
 
}
 
.fa-italic:before {
 
  content: "\f033";
 
}
 
.fa-text-height:before {
 
  content: "\f034";
 
}
 
.fa-text-width:before {
 
  content: "\f035";
 
}
 
.fa-align-left:before {
 
  content: "\f036";
 
}
 
.fa-align-center:before {
 
  content: "\f037";
 
}
 
.fa-align-right:before {
 
  content: "\f038";
 
}
 
.fa-align-justify:before {
 
  content: "\f039";
 
}
 
.fa-list:before {
 
  content: "\f03a";
 
}
 
.fa-dedent:before,
 
.fa-outdent:before {
 
  content: "\f03b";
 
}
 
.fa-indent:before {
 
  content: "\f03c";
 
}
 
.fa-video-camera:before {
 
  content: "\f03d";
 
}
 
.fa-photo:before,
 
.fa-image:before,
 
.fa-picture-o:before {
 
  content: "\f03e";
 
}
 
.fa-pencil:before {
 
  content: "\f040";
 
}
 
.fa-map-marker:before {
 
  content: "\f041";
 
}
 
.fa-adjust:before {
 
  content: "\f042";
 
}
 
.fa-tint:before {
 
  content: "\f043";
 
}
 
.fa-edit:before,
 
.fa-pencil-square-o:before {
 
  content: "\f044";
 
}
 
.fa-share-square-o:before {
 
  content: "\f045";
 
}
 
.fa-check-square-o:before {
 
  content: "\f046";
 
}
 
.fa-arrows:before {
 
  content: "\f047";
 
}
 
.fa-step-backward:before {
 
  content: "\f048";
 
}
 
.fa-fast-backward:before {
 
  content: "\f049";
 
}
 
.fa-backward:before {
 
  content: "\f04a";
 
}
 
.fa-play:before {
 
  content: "\f04b";
 
}
 
.fa-pause:before {
 
  content: "\f04c";
 
}
 
.fa-stop:before {
 
  content: "\f04d";
 
}
 
.fa-forward:before {
 
  content: "\f04e";
 
}
 
.fa-fast-forward:before {
 
  content: "\f050";
 
}
 
.fa-step-forward:before {
 
  content: "\f051";
 
}
 
.fa-eject:before {
 
  content: "\f052";
 
}
 
.fa-chevron-left:before {
 
  content: "\f053";
 
}
 
.fa-chevron-right:before {
 
  content: "\f054";
 
}
 
.fa-plus-circle:before {
 
  content: "\f055";
 
}
 
.fa-minus-circle:before {
 
  content: "\f056";
 
}
 
.fa-times-circle:before {
 
  content: "\f057";
 
}
 
.fa-check-circle:before {
 
  content: "\f058";
 
}
 
.fa-question-circle:before {
 
  content: "\f059";
 
}
 
.fa-info-circle:before {
 
  content: "\f05a";
 
}
 
.fa-crosshairs:before {
 
  content: "\f05b";
 
}
 
.fa-times-circle-o:before {
 
  content: "\f05c";
 
}
 
.fa-check-circle-o:before {
 
  content: "\f05d";
 
}
 
.fa-ban:before {
 
  content: "\f05e";
 
}
 
.fa-arrow-left:before {
 
  content: "\f060";
 
}
 
.fa-arrow-right:before {
 
  content: "\f061";
 
}
 
.fa-arrow-up:before {
 
  content: "\f062";
 
}
 
.fa-arrow-down:before {
 
  content: "\f063";
 
}
 
.fa-mail-forward:before,
 
.fa-share:before {
 
  content: "\f064";
 
}
 
.fa-expand:before {
 
  content: "\f065";
 
}
 
.fa-compress:before {
 
  content: "\f066";
 
}
 
.fa-plus:before {
 
  content: "\f067";
 
}
 
.fa-minus:before {
 
  content: "\f068";
 
}
 
.fa-asterisk:before {
 
  content: "\f069";
 
}
 
.fa-exclamation-circle:before {
 
  content: "\f06a";
 
}
 
.fa-gift:before {
 
  content: "\f06b";
 
}
 
.fa-leaf:before {
 
  content: "\f06c";
 
}
 
.fa-fire:before {
 
  content: "\f06d";
 
}
 
.fa-eye:before {
 
  content: "\f06e";
 
}
 
.fa-eye-slash:before {
 
  content: "\f070";
 
}
 
.fa-warning:before,
 
.fa-exclamation-triangle:before {
 
  content: "\f071";
 
}
 
.fa-plane:before {
 
  content: "\f072";
 
}
 
.fa-calendar:before {
 
  content: "\f073";
 
}
 
.fa-random:before {
 
  content: "\f074";
 
}
 
.fa-comment:before {
 
  content: "\f075";
 
}
 
.fa-magnet:before {
 
  content: "\f076";
 
}
 
.fa-chevron-up:before {
 
  content: "\f077";
 
}
 
.fa-chevron-down:before {
 
  content: "\f078";
 
}
 
.fa-retweet:before {
 
  content: "\f079";
 
}
 
.fa-shopping-cart:before {
 
  content: "\f07a";
 
}
 
.fa-folder:before {
 
  content: "\f07b";
 
}
 
.fa-folder-open:before {
 
  content: "\f07c";
 
}
 
.fa-arrows-v:before {
 
  content: "\f07d";
 
}
 
.fa-arrows-h:before {
 
  content: "\f07e";
 
}
 
.fa-bar-chart-o:before,
 
.fa-bar-chart:before {
 
  content: "\f080";
 
}
 
.fa-twitter-square:before {
 
  content: "\f081";
 
}
 
.fa-facebook-square:before {
 
  content: "\f082";
 
}
 
.fa-camera-retro:before {
 
  content: "\f083";
 
}
 
.fa-key:before {
 
  content: "\f084";
 
}
 
.fa-gears:before,
 
.fa-cogs:before {
 
  content: "\f085";
 
}
 
.fa-comments:before {
 
  content: "\f086";
 
}
 
.fa-thumbs-o-up:before {
 
  content: "\f087";
 
}
 
.fa-thumbs-o-down:before {
 
  content: "\f088";
 
}
 
.fa-star-half:before {
 
  content: "\f089";
 
}
 
.fa-heart-o:before {
 
  content: "\f08a";
 
}
 
.fa-sign-out:before {
 
  content: "\f08b";
 
}
 
.fa-linkedin-square:before {
 
  content: "\f08c";
 
}
 
.fa-thumb-tack:before {
 
  content: "\f08d";
 
}
 
.fa-external-link:before {
 
  content: "\f08e";
 
}
 
.fa-sign-in:before {
 
  content: "\f090";
 
}
 
.fa-trophy:before {
 
  content: "\f091";
 
}
 
.fa-github-square:before {
 
  content: "\f092";
 
}
 
.fa-upload:before {
 
  content: "\f093";
 
}
 
.fa-lemon-o:before {
 
  content: "\f094";
 
}
 
.fa-phone:before {
 
  content: "\f095";
 
}
 
.fa-square-o:before {
 
  content: "\f096";
 
}
 
.fa-bookmark-o:before {
 
  content: "\f097";
 
}
 
.fa-phone-square:before {
 
  content: "\f098";
 
}
 
.fa-twitter:before {
 
  content: "\f099";
 
}
 
.fa-facebook-f:before,
 
.fa-facebook:before {
 
  content: "\f09a";
 
}
 
.fa-github:before {
 
  content: "\f09b";
 
}
 
.fa-unlock:before {
 
  content: "\f09c";
 
}
 
.fa-credit-card:before {
 
  content: "\f09d";
 
}
 
.fa-feed:before,
 
.fa-rss:before {
 
  content: "\f09e";
 
}
 
.fa-hdd-o:before {
 
  content: "\f0a0";
 
}
 
.fa-bullhorn:before {
 
  content: "\f0a1";
 
}
 
.fa-bell:before {
 
  content: "\f0f3";
 
}
 
.fa-certificate:before {
 
  content: "\f0a3";
 
}
 
.fa-hand-o-right:before {
 
  content: "\f0a4";
 
}
 
.fa-hand-o-left:before {
 
  content: "\f0a5";
 
}
 
.fa-hand-o-up:before {
 
  content: "\f0a6";
 
}
 
.fa-hand-o-down:before {
 
  content: "\f0a7";
 
}
 
.fa-arrow-circle-left:before {
 
  content: "\f0a8";
 
}
 
.fa-arrow-circle-right:before {
 
  content: "\f0a9";
 
}
 
.fa-arrow-circle-up:before {
 
  content: "\f0aa";
 
}
 
.fa-arrow-circle-down:before {
 
  content: "\f0ab";
 
}
 
.fa-globe:before {
 
  content: "\f0ac";
 
}
 
.fa-wrench:before {
 
  content: "\f0ad";
 
}
 
.fa-tasks:before {
 
  content: "\f0ae";
 
}
 
.fa-filter:before {
 
  content: "\f0b0";
 
}
 
.fa-briefcase:before {
 
  content: "\f0b1";
 
}
 
.fa-arrows-alt:before {
 
  content: "\f0b2";
 
}
 
.fa-group:before,
 
.fa-users:before {
 
  content: "\f0c0";
 
}
 
.fa-chain:before,
 
.fa-link:before {
 
  content: "\f0c1";
 
}
 
.fa-cloud:before {
 
  content: "\f0c2";
 
}
 
.fa-flask:before {
 
  content: "\f0c3";
 
}
 
.fa-cut:before,
 
.fa-scissors:before {
 
  content: "\f0c4";
 
}
 
.fa-copy:before,
 
.fa-files-o:before {
 
  content: "\f0c5";
 
}
 
.fa-paperclip:before {
 
  content: "\f0c6";
 
}
 
.fa-save:before,
 
.fa-floppy-o:before {
 
  content: "\f0c7";
 
}
 
.fa-square:before {
 
  content: "\f0c8";
 
}
 
.fa-navicon:before,
 
.fa-reorder:before,
 
.fa-bars:before {
 
  content: "\f0c9";
 
}
 
.fa-list-ul:before {
 
  content: "\f0ca";
 
}
 
.fa-list-ol:before {
 
  content: "\f0cb";
 
}
 
.fa-strikethrough:before {
 
  content: "\f0cc";
 
}
 
.fa-underline:before {
 
  content: "\f0cd";
 
}
 
.fa-table:before {
 
  content: "\f0ce";
 
}
 
.fa-magic:before {
 
  content: "\f0d0";
 
}
 
.fa-truck:before {
 
  content: "\f0d1";
 
}
 
.fa-pinterest:before {
 
  content: "\f0d2";
 
}
 
.fa-pinterest-square:before {
 
  content: "\f0d3";
 
}
 
.fa-google-plus-square:before {
 
  content: "\f0d4";
 
}
 
.fa-google-plus:before {
 
  content: "\f0d5";
 
}
 
.fa-money:before {
 
  content: "\f0d6";
 
}
 
.fa-caret-down:before {
 
  content: "\f0d7";
 
}
 
.fa-caret-up:before {
 
  content: "\f0d8";
 
}
 
.fa-caret-left:before {
 
  content: "\f0d9";
 
}
 
.fa-caret-right:before {
 
  content: "\f0da";
 
}
 
.fa-columns:before {
 
  content: "\f0db";
 
}
 
.fa-unsorted:before,
 
.fa-sort:before {
 
  content: "\f0dc";
 
}
 
.fa-sort-down:before,
 
.fa-sort-desc:before {
 
  content: "\f0dd";
 
}
 
.fa-sort-up:before,
 
.fa-sort-asc:before {
 
  content: "\f0de";
 
}
 
.fa-envelope:before {
 
  content: "\f0e0";
 
}
 
.fa-linkedin:before {
 
  content: "\f0e1";
 
}
 
.fa-rotate-left:before,
 
.fa-undo:before {
 
  content: "\f0e2";
 
}
 
.fa-legal:before,
 
.fa-gavel:before {
 
  content: "\f0e3";
 
}
 
.fa-dashboard:before,
 
.fa-tachometer:before {
 
  content: "\f0e4";
 
}
 
.fa-comment-o:before {
 
  content: "\f0e5";
 
}
 
.fa-comments-o:before {
 
  content: "\f0e6";
 
}
 
.fa-flash:before,
 
.fa-bolt:before {
 
  content: "\f0e7";
 
}
 
.fa-sitemap:before {
 
  content: "\f0e8";
 
}
 
.fa-umbrella:before {
 
  content: "\f0e9";
 
}
 
.fa-paste:before,
 
.fa-clipboard:before {
 
  content: "\f0ea";
 
}
 
.fa-lightbulb-o:before {
 
  content: "\f0eb";
 
}
 
.fa-exchange:before {
 
  content: "\f0ec";
 
}
 
.fa-cloud-download:before {
 
  content: "\f0ed";
 
}
 
.fa-cloud-upload:before {
 
  content: "\f0ee";
 
}
 
.fa-user-md:before {
 
  content: "\f0f0";
 
}
 
.fa-stethoscope:before {
 
  content: "\f0f1";
 
}
 
.fa-suitcase:before {
 
  content: "\f0f2";
 
}
 
.fa-bell-o:before {
 
  content: "\f0a2";
 
}
 
.fa-coffee:before {
 
  content: "\f0f4";
 
}
 
.fa-cutlery:before {
 
  content: "\f0f5";
 
}
 
.fa-file-text-o:before {
 
  content: "\f0f6";
 
}
 
.fa-building-o:before {
 
  content: "\f0f7";
 
}
 
.fa-hospital-o:before {
 
  content: "\f0f8";
 
}
 
.fa-ambulance:before {
 
  content: "\f0f9";
 
}
 
.fa-medkit:before {
 
  content: "\f0fa";
 
}
 
.fa-fighter-jet:before {
 
  content: "\f0fb";
 
}
 
.fa-beer:before {
 
  content: "\f0fc";
 
}
 
.fa-h-square:before {
 
  content: "\f0fd";
 
}
 
.fa-plus-square:before {
 
  content: "\f0fe";
 
}
 
.fa-angle-double-left:before {
 
  content: "\f100";
 
}
 
.fa-angle-double-right:before {
 
  content: "\f101";
 
}
 
.fa-angle-double-up:before {
 
  content: "\f102";
 
}
 
.fa-angle-double-down:before {
 
  content: "\f103";
 
}
 
.fa-angle-left:before {
 
  content: "\f104";
 
}
 
.fa-angle-right:before {
 
  content: "\f105";
 
}
 
.fa-angle-up:before {
 
  content: "\f106";
 
}
 
.fa-angle-down:before {
 
  content: "\f107";
 
}
 
.fa-desktop:before {
 
  content: "\f108";
 
}
 
.fa-laptop:before {
 
  content: "\f109";
 
}
 
.fa-tablet:before {
 
  content: "\f10a";
 
}
 
.fa-mobile-phone:before,
 
.fa-mobile:before {
 
  content: "\f10b";
 
}
 
.fa-circle-o:before {
 
  content: "\f10c";
 
}
 
.fa-quote-left:before {
 
  content: "\f10d";
 
}
 
.fa-quote-right:before {
 
  content: "\f10e";
 
}
 
.fa-spinner:before {
 
  content: "\f110";
 
}
 
.fa-circle:before {
 
  content: "\f111";
 
}
 
.fa-mail-reply:before,
 
.fa-reply:before {
 
  content: "\f112";
 
}
 
.fa-github-alt:before {
 
  content: "\f113";
 
}
 
.fa-folder-o:before {
 
  content: "\f114";
 
}
 
.fa-folder-open-o:before {
 
  content: "\f115";
 
}
 
.fa-smile-o:before {
 
  content: "\f118";
 
}
 
.fa-frown-o:before {
 
  content: "\f119";
 
}
 
.fa-meh-o:before {
 
  content: "\f11a";
 
}
 
.fa-gamepad:before {
 
  content: "\f11b";
 
}
 
.fa-keyboard-o:before {
 
  content: "\f11c";
 
}
 
.fa-flag-o:before {
 
  content: "\f11d";
 
}
 
.fa-flag-checkered:before {
 
  content: "\f11e";
 
}
 
.fa-terminal:before {
 
  content: "\f120";
 
}
 
.fa-code:before {
 
  content: "\f121";
 
}
 
.fa-mail-reply-all:before,
 
.fa-reply-all:before {
 
  content: "\f122";
 
}
 
.fa-star-half-empty:before,
 
.fa-star-half-full:before,
 
.fa-star-half-o:before {
 
  content: "\f123";
 
}
 
.fa-location-arrow:before {
 
  content: "\f124";
 
}
 
.fa-crop:before {
 
  content: "\f125";
 
}
 
.fa-code-fork:before {
 
  content: "\f126";
 
}
 
.fa-unlink:before,
 
.fa-chain-broken:before {
 
  content: "\f127";
 
}
 
.fa-question:before {
 
  content: "\f128";
 
}
 
.fa-info:before {
 
  content: "\f129";
 
}
 
.fa-exclamation:before {
 
  content: "\f12a";
 
}
 
.fa-superscript:before {
 
  content: "\f12b";
 
}
 
.fa-subscript:before {
 
  content: "\f12c";
 
}
 
.fa-eraser:before {
 
  content: "\f12d";
 
}
 
.fa-puzzle-piece:before {
 
  content: "\f12e";
 
}
 
.fa-microphone:before {
 
  content: "\f130";
 
}
 
.fa-microphone-slash:before {
 
  content: "\f131";
 
}
 
.fa-shield:before {
 
  content: "\f132";
 
}
 
.fa-calendar-o:before {
 
  content: "\f133";
 
}
 
.fa-fire-extinguisher:before {
 
  content: "\f134";
 
}
 
.fa-rocket:before {
 
  content: "\f135";
 
}
 
.fa-maxcdn:before {
 
  content: "\f136";
 
}
 
.fa-chevron-circle-left:before {
 
  content: "\f137";
 
}
 
.fa-chevron-circle-right:before {
 
  content: "\f138";
 
}
 
.fa-chevron-circle-up:before {
 
  content: "\f139";
 
}
 
.fa-chevron-circle-down:before {
 
  content: "\f13a";
 
}
 
.fa-html5:before {
 
  content: "\f13b";
 
}
 
.fa-css3:before {
 
  content: "\f13c";
 
}
 
.fa-anchor:before {
 
  content: "\f13d";
 
}
 
.fa-unlock-alt:before {
 
  content: "\f13e";
 
}
 
.fa-bullseye:before {
 
  content: "\f140";
 
}
 
.fa-ellipsis-h:before {
 
  content: "\f141";
 
}
 
.fa-ellipsis-v:before {
 
  content: "\f142";
 
}
 
.fa-rss-square:before {
 
  content: "\f143";
 
}
 
.fa-play-circle:before {
 
  content: "\f144";
 
}
 
.fa-ticket:before {
 
  content: "\f145";
 
}
 
.fa-minus-square:before {
 
  content: "\f146";
 
}
 
.fa-minus-square-o:before {
 
  content: "\f147";
 
}
 
.fa-level-up:before {
 
  content: "\f148";
 
}
 
.fa-level-down:before {
 
  content: "\f149";
 
}
 
.fa-check-square:before {
 
  content: "\f14a";
 
}
 
.fa-pencil-square:before {
 
  content: "\f14b";
 
}
 
.fa-external-link-square:before {
 
  content: "\f14c";
 
}
 
.fa-share-square:before {
 
  content: "\f14d";
 
}
 
.fa-compass:before {
 
  content: "\f14e";
 
}
 
.fa-toggle-down:before,
 
.fa-caret-square-o-down:before {
 
  content: "\f150";
 
}
 
.fa-toggle-up:before,
 
.fa-caret-square-o-up:before {
 
  content: "\f151";
 
}
 
.fa-toggle-right:before,
 
.fa-caret-square-o-right:before {
 
  content: "\f152";
 
}
 
.fa-euro:before,
 
.fa-eur:before {
 
  content: "\f153";
 
}
 
.fa-gbp:before {
 
  content: "\f154";
 
}
 
.fa-dollar:before,
 
.fa-usd:before {
 
  content: "\f155";
 
}
 
.fa-rupee:before,
 
.fa-inr:before {
 
  content: "\f156";
 
}
 
.fa-cny:before,
 
.fa-rmb:before,
 
.fa-yen:before,
 
.fa-jpy:before {
 
  content: "\f157";
 
}
 
.fa-ruble:before,
 
.fa-rouble:before,
 
.fa-rub:before {
 
  content: "\f158";
 
}
 
.fa-won:before,
 
.fa-krw:before {
 
  content: "\f159";
 
}
 
.fa-bitcoin:before,
 
.fa-btc:before {
 
  content: "\f15a";
 
}
 
.fa-file:before {
 
  content: "\f15b";
 
}
 
.fa-file-text:before {
 
  content: "\f15c";
 
}
 
.fa-sort-alpha-asc:before {
 
  content: "\f15d";
 
}
 
.fa-sort-alpha-desc:before {
 
  content: "\f15e";
 
}
 
.fa-sort-amount-asc:before {
 
  content: "\f160";
 
}
 
.fa-sort-amount-desc:before {
 
  content: "\f161";
 
}
 
.fa-sort-numeric-asc:before {
 
  content: "\f162";
 
}
 
.fa-sort-numeric-desc:before {
 
  content: "\f163";
 
}
 
.fa-thumbs-up:before {
 
  content: "\f164";
 
}
 
.fa-thumbs-down:before {
 
  content: "\f165";
 
}
 
.fa-youtube-square:before {
 
  content: "\f166";
 
}
 
.fa-youtube:before {
 
  content: "\f167";
 
}
 
.fa-xing:before {
 
  content: "\f168";
 
}
 
.fa-xing-square:before {
 
  content: "\f169";
 
}
 
.fa-youtube-play:before {
 
  content: "\f16a";
 
}
 
.fa-dropbox:before {
 
  content: "\f16b";
 
}
 
.fa-stack-overflow:before {
 
  content: "\f16c";
 
}
 
.fa-instagram:before {
 
  content: "\f16d";
 
}
 
.fa-flickr:before {
 
  content: "\f16e";
 
}
 
.fa-adn:before {
 
  content: "\f170";
 
}
 
.fa-bitbucket:before {
 
  content: "\f171";
 
}
 
.fa-bitbucket-square:before {
 
  content: "\f172";
 
}
 
.fa-tumblr:before {
 
  content: "\f173";
 
}
 
.fa-tumblr-square:before {
 
  content: "\f174";
 
}
 
.fa-long-arrow-down:before {
 
  content: "\f175";
 
}
 
.fa-long-arrow-up:before {
 
  content: "\f176";
 
}
 
.fa-long-arrow-left:before {
 
  content: "\f177";
 
}
 
.fa-long-arrow-right:before {
 
  content: "\f178";
 
}
 
.fa-apple:before {
 
  content: "\f179";
 
}
 
.fa-windows:before {
 
  content: "\f17a";
 
}
 
.fa-android:before {
 
  content: "\f17b";
 
}
 
.fa-linux:before {
 
  content: "\f17c";
 
}
 
.fa-dribbble:before {
 
  content: "\f17d";
 
}
 
.fa-skype:before {
 
  content: "\f17e";
 
}
 
.fa-foursquare:before {
 
  content: "\f180";
 
}
 
.fa-trello:before {
 
  content: "\f181";
 
}
 
.fa-female:before {
 
  content: "\f182";
 
}
 
.fa-male:before {
 
  content: "\f183";
 
}
 
.fa-gittip:before,
 
.fa-gratipay:before {
 
  content: "\f184";
 
}
 
.fa-sun-o:before {
 
  content: "\f185";
 
}
 
.fa-moon-o:before {
 
  content: "\f186";
 
}
 
.fa-archive:before {
 
  content: "\f187";
 
}
 
.fa-bug:before {
 
  content: "\f188";
 
}
 
.fa-vk:before {
 
  content: "\f189";
 
}
 
.fa-weibo:before {
 
  content: "\f18a";
 
}
 
.fa-renren:before {
 
  content: "\f18b";
 
}
 
.fa-pagelines:before {
 
  content: "\f18c";
 
}
 
.fa-stack-exchange:before {
 
  content: "\f18d";
 
}
 
.fa-arrow-circle-o-right:before {
 
  content: "\f18e";
 
}
 
.fa-arrow-circle-o-left:before {
 
  content: "\f190";
 
}
 
.fa-toggle-left:before,
 
.fa-caret-square-o-left:before {
 
  content: "\f191";
 
}
 
.fa-dot-circle-o:before {
 
  content: "\f192";
 
}
 
.fa-wheelchair:before {
 
  content: "\f193";
 
}
 
.fa-vimeo-square:before {
 
  content: "\f194";
 
}
 
.fa-turkish-lira:before,
 
.fa-try:before {
 
  content: "\f195";
 
}
 
.fa-plus-square-o:before {
 
  content: "\f196";
 
}
 
.fa-space-shuttle:before {
 
  content: "\f197";
 
}
 
.fa-slack:before {
 
  content: "\f198";
 
}
 
.fa-envelope-square:before {
 
  content: "\f199";
 
}
 
.fa-wordpress:before {
 
  content: "\f19a";
 
}
 
.fa-openid:before {
 
  content: "\f19b";
 
}
 
.fa-institution:before,
 
.fa-bank:before,
 
.fa-university:before {
 
  content: "\f19c";
 
}
 
.fa-mortar-board:before,
 
.fa-graduation-cap:before {
 
  content: "\f19d";
 
}
 
.fa-yahoo:before {
 
  content: "\f19e";
 
}
 
.fa-google:before {
 
  content: "\f1a0";
 
}
 
.fa-reddit:before {
 
  content: "\f1a1";
 
}
 
.fa-reddit-square:before {
 
  content: "\f1a2";
 
}
 
.fa-stumbleupon-circle:before {
 
  content: "\f1a3";
 
}
 
.fa-stumbleupon:before {
 
  content: "\f1a4";
 
}
 
.fa-delicious:before {
 
  content: "\f1a5";
 
}
 
.fa-digg:before {
 
  content: "\f1a6";
 
}
 
.fa-pied-piper:before {
 
  content: "\f1a7";
 
}
 
.fa-pied-piper-alt:before {
 
  content: "\f1a8";
 
}
 
.fa-drupal:before {
 
  content: "\f1a9";
 
}
 
.fa-joomla:before {
 
  content: "\f1aa";
 
}
 
.fa-language:before {
 
  content: "\f1ab";
 
}
 
.fa-fax:before {
 
  content: "\f1ac";
 
}
 
.fa-building:before {
 
  content: "\f1ad";
 
}
 
.fa-child:before {
 
  content: "\f1ae";
 
}
 
.fa-paw:before {
 
  content: "\f1b0";
 
}
 
.fa-spoon:before {
 
  content: "\f1b1";
 
}
 
.fa-cube:before {
 
  content: "\f1b2";
 
}
 
.fa-cubes:before {
 
  content: "\f1b3";
 
}
 
.fa-behance:before {
 
  content: "\f1b4";
 
}
 
.fa-behance-square:before {
 
  content: "\f1b5";
 
}
 
.fa-steam:before {
 
  content: "\f1b6";
 
}
 
.fa-steam-square:before {
 
  content: "\f1b7";
 
}
 
.fa-recycle:before {
 
  content: "\f1b8";
 
}
 
.fa-automobile:before,
 
.fa-car:before {
 
  content: "\f1b9";
 
}
 
.fa-cab:before,
 
.fa-taxi:before {
 
  content: "\f1ba";
 
}
 
.fa-tree:before {
 
  content: "\f1bb";
 
}
 
.fa-spotify:before {
 
  content: "\f1bc";
 
}
 
.fa-deviantart:before {
 
  content: "\f1bd";
 
}
 
.fa-soundcloud:before {
 
  content: "\f1be";
 
}
 
.fa-database:before {
 
  content: "\f1c0";
 
}
 
.fa-file-pdf-o:before {
 
  content: "\f1c1";
 
}
 
.fa-file-word-o:before {
 
  content: "\f1c2";
 
}
 
.fa-file-excel-o:before {
 
  content: "\f1c3";
 
}
 
.fa-file-powerpoint-o:before {
 
  content: "\f1c4";
 
}
 
.fa-file-photo-o:before,
 
.fa-file-picture-o:before,
 
.fa-file-image-o:before {
 
  content: "\f1c5";
 
}
 
.fa-file-zip-o:before,
 
.fa-file-archive-o:before {
 
  content: "\f1c6";
 
}
 
.fa-file-sound-o:before,
 
.fa-file-audio-o:before {
 
  content: "\f1c7";
 
}
 
.fa-file-movie-o:before,
 
.fa-file-video-o:before {
 
  content: "\f1c8";
 
}
 
.fa-file-code-o:before {
 
  content: "\f1c9";
 
}
 
.fa-vine:before {
 
  content: "\f1ca";
 
}
 
.fa-codepen:before {
 
  content: "\f1cb";
 
}
 
.fa-jsfiddle:before {
 
  content: "\f1cc";
 
}
 
.fa-life-bouy:before,
 
.fa-life-buoy:before,
 
.fa-life-saver:before,
 
.fa-support:before,
 
.fa-life-ring:before {
 
  content: "\f1cd";
 
}
 
.fa-circle-o-notch:before {
 
  content: "\f1ce";
 
}
 
.fa-ra:before,
 
.fa-rebel:before {
 
  content: "\f1d0";
 
}
 
.fa-ge:before,
 
.fa-empire:before {
 
  content: "\f1d1";
 
}
 
.fa-git-square:before {
 
  content: "\f1d2";
 
}
 
.fa-git:before {
 
  content: "\f1d3";
 
}
 
.fa-y-combinator-square:before,
 
.fa-yc-square:before,
 
.fa-hacker-news:before {
 
  content: "\f1d4";
 
}
 
.fa-tencent-weibo:before {
 
  content: "\f1d5";
 
}
 
.fa-qq:before {
 
  content: "\f1d6";
 
}
 
.fa-wechat:before,
 
.fa-weixin:before {
 
  content: "\f1d7";
 
}
 
.fa-send:before,
 
.fa-paper-plane:before {
 
  content: "\f1d8";
 
}
 
.fa-send-o:before,
 
.fa-paper-plane-o:before {
 
  content: "\f1d9";
 
}
 
.fa-history:before {
 
  content: "\f1da";
 
}
 
.fa-circle-thin:before {
 
  content: "\f1db";
 
}
 
.fa-header:before {
 
  content: "\f1dc";
 
}
 
.fa-paragraph:before {
 
  content: "\f1dd";
 
}
 
.fa-sliders:before {
 
  content: "\f1de";
 
}
 
.fa-share-alt:before {
 
  content: "\f1e0";
 
}
 
.fa-share-alt-square:before {
 
  content: "\f1e1";
 
}
 
.fa-bomb:before {
 
  content: "\f1e2";
 
}
 
.fa-soccer-ball-o:before,
 
.fa-futbol-o:before {
 
  content: "\f1e3";
 
}
 
.fa-tty:before {
 
  content: "\f1e4";
 
}
 
.fa-binoculars:before {
 
  content: "\f1e5";
 
}
 
.fa-plug:before {
 
  content: "\f1e6";
 
}
 
.fa-slideshare:before {
 
  content: "\f1e7";
 
}
 
.fa-twitch:before {
 
  content: "\f1e8";
 
}
 
.fa-yelp:before {
 
  content: "\f1e9";
 
}
 
.fa-newspaper-o:before {
 
  content: "\f1ea";
 
}
 
.fa-wifi:before {
 
  content: "\f1eb";
 
}
 
.fa-calculator:before {
 
  content: "\f1ec";
 
}
 
.fa-paypal:before {
 
  content: "\f1ed";
 
}
 
.fa-google-wallet:before {
 
  content: "\f1ee";
 
}
 
.fa-cc-visa:before {
 
  content: "\f1f0";
 
}
 
.fa-cc-mastercard:before {
 
  content: "\f1f1";
 
}
 
.fa-cc-discover:before {
 
  content: "\f1f2";
 
}
 
.fa-cc-amex:before {
 
  content: "\f1f3";
 
}
 
.fa-cc-paypal:before {
 
  content: "\f1f4";
 
}
 
.fa-cc-stripe:before {
 
  content: "\f1f5";
 
}
 
.fa-bell-slash:before {
 
  content: "\f1f6";
 
}
 
.fa-bell-slash-o:before {
 
  content: "\f1f7";
 
}
 
.fa-trash:before {
 
  content: "\f1f8";
 
}
 
.fa-copyright:before {
 
  content: "\f1f9";
 
}
 
.fa-at:before {
 
  content: "\f1fa";
 
}
 
.fa-eyedropper:before {
 
  content: "\f1fb";
 
}
 
.fa-paint-brush:before {
 
  content: "\f1fc";
 
}
 
.fa-birthday-cake:before {
 
  content: "\f1fd";
 
}
 
.fa-area-chart:before {
 
  content: "\f1fe";
 
}
 
.fa-pie-chart:before {
 
  content: "\f200";
 
}
 
.fa-line-chart:before {
 
  content: "\f201";
 
}
 
.fa-lastfm:before {
 
  content: "\f202";
 
}
 
.fa-lastfm-square:before {
 
  content: "\f203";
 
}
 
.fa-toggle-off:before {
 
  content: "\f204";
 
}
 
.fa-toggle-on:before {
 
  content: "\f205";
 
}
 
.fa-bicycle:before {
 
  content: "\f206";
 
}
 
.fa-bus:before {
 
  content: "\f207";
 
}
 
.fa-ioxhost:before {
 
  content: "\f208";
 
}
 
.fa-angellist:before {
 
  content: "\f209";
 
}
 
.fa-cc:before {
 
  content: "\f20a";
 
}
 
.fa-shekel:before,
 
.fa-sheqel:before,
 
.fa-ils:before {
 
  content: "\f20b";
 
}
 
.fa-meanpath:before {
 
  content: "\f20c";
 
}
 
.fa-buysellads:before {
 
  content: "\f20d";
 
}
 
.fa-connectdevelop:before {
 
  content: "\f20e";
 
}
 
.fa-dashcube:before {
 
  content: "\f210";
 
}
 
.fa-forumbee:before {
 
  content: "\f211";
 
}
 
.fa-leanpub:before {
 
  content: "\f212";
 
}
 
.fa-sellsy:before {
 
  content: "\f213";
 
}
 
.fa-shirtsinbulk:before {
 
  content: "\f214";
 
}
 
.fa-simplybuilt:before {
 
  content: "\f215";
 
}
 
.fa-skyatlas:before {
 
  content: "\f216";
 
}
 
.fa-cart-plus:before {
 
  content: "\f217";
 
}
 
.fa-cart-arrow-down:before {
 
  content: "\f218";
 
}
 
.fa-diamond:before {
 
  content: "\f219";
 
}
 
.fa-ship:before {
 
  content: "\f21a";
 
}
 
.fa-user-secret:before {
 
  content: "\f21b";
 
}
 
.fa-motorcycle:before {
 
  content: "\f21c";
 
}
 
.fa-street-view:before {
 
  content: "\f21d";
 
}
 
.fa-heartbeat:before {
 
  content: "\f21e";
 
}
 
.fa-venus:before {
 
  content: "\f221";
 
}
 
.fa-mars:before {
 
  content: "\f222";
 
}
 
.fa-mercury:before {
 
  content: "\f223";
 
}
 
.fa-intersex:before,
 
.fa-transgender:before {
 
  content: "\f224";
 
}
 
.fa-transgender-alt:before {
 
  content: "\f225";
 
}
 
.fa-venus-double:before {
 
  content: "\f226";
 
}
 
.fa-mars-double:before {
 
  content: "\f227";
 
}
 
.fa-venus-mars:before {
 
  content: "\f228";
 
}
 
.fa-mars-stroke:before {
 
  content: "\f229";
 
}
 
.fa-mars-stroke-v:before {
 
  content: "\f22a";
 
}
 
.fa-mars-stroke-h:before {
 
  content: "\f22b";
 
}
 
.fa-neuter:before {
 
  content: "\f22c";
 
}
 
.fa-genderless:before {
 
  content: "\f22d";
 
}
 
.fa-facebook-official:before {
 
  content: "\f230";
 
}
 
.fa-pinterest-p:before {
 
  content: "\f231";
 
}
 
.fa-whatsapp:before {
 
  content: "\f232";
 
}
 
.fa-server:before {
 
  content: "\f233";
 
}
 
.fa-user-plus:before {
 
  content: "\f234";
 
}
 
.fa-user-times:before {
 
  content: "\f235";
 
}
 
.fa-hotel:before,
 
.fa-bed:before {
 
  content: "\f236";
 
}
 
.fa-viacoin:before {
 
  content: "\f237";
 
}
 
.fa-train:before {
 
  content: "\f238";
 
}
 
.fa-subway:before {
 
  content: "\f239";
 
}
 
.fa-medium:before {
 
  content: "\f23a";
 
}
 
.fa-yc:before,
 
.fa-y-combinator:before {
 
  content: "\f23b";
 
}
 
.fa-optin-monster:before {
 
  content: "\f23c";
 
}
 
.fa-opencart:before {
 
  content: "\f23d";
 
}
 
.fa-expeditedssl:before {
 
  content: "\f23e";
 
}
 
.fa-battery-4:before,
 
.fa-battery-full:before {
 
  content: "\f240";
 
}
 
.fa-battery-3:before,
 
.fa-battery-three-quarters:before {
 
  content: "\f241";
 
}
 
.fa-battery-2:before,
 
.fa-battery-half:before {
 
  content: "\f242";
 
}
 
.fa-battery-1:before,
 
.fa-battery-quarter:before {
 
  content: "\f243";
 
}
 
.fa-battery-0:before,
 
.fa-battery-empty:before {
 
  content: "\f244";
 
}
 
.fa-mouse-pointer:before {
 
  content: "\f245";
 
}
 
.fa-i-cursor:before {
 
  content: "\f246";
 
}
 
.fa-object-group:before {
 
  content: "\f247";
 
}
 
.fa-object-ungroup:before {
 
  content: "\f248";
 
}
 
.fa-sticky-note:before {
 
  content: "\f249";
 
}
 
.fa-sticky-note-o:before {
 
  content: "\f24a";
 
}
 
.fa-cc-jcb:before {
 
  content: "\f24b";
 
}
 
.fa-cc-diners-club:before {
 
  content: "\f24c";
 
}
 
.fa-clone:before {
 
  content: "\f24d";
 
}
 
.fa-balance-scale:before {
 
  content: "\f24e";
 
}
 
.fa-hourglass-o:before {
 
  content: "\f250";
 
}
 
.fa-hourglass-1:before,
 
.fa-hourglass-start:before {
 
  content: "\f251";
 
}
 
.fa-hourglass-2:before,
 
.fa-hourglass-half:before {
 
  content: "\f252";
 
}
 
.fa-hourglass-3:before,
 
.fa-hourglass-end:before {
 
  content: "\f253";
 
}
 
.fa-hourglass:before {
 
  content: "\f254";
 
}
 
.fa-hand-grab-o:before,
 
.fa-hand-rock-o:before {
 
  content: "\f255";
 
}
 
.fa-hand-stop-o:before,
 
.fa-hand-paper-o:before {
 
  content: "\f256";
 
}
 
.fa-hand-scissors-o:before {
 
  content: "\f257";
 
}
 
.fa-hand-lizard-o:before {
 
  content: "\f258";
 
}
 
.fa-hand-spock-o:before {
 
  content: "\f259";
 
}
 
.fa-hand-pointer-o:before {
 
  content: "\f25a";
 
}
 
.fa-hand-peace-o:before {
 
  content: "\f25b";
 
}
 
.fa-trademark:before {
 
  content: "\f25c";
 
}
 
.fa-registered:before {
 
  content: "\f25d";
 
}
 
.fa-creative-commons:before {
 
  content: "\f25e";
 
}
 
.fa-gg:before {
 
  content: "\f260";
 
}
 
.fa-gg-circle:before {
 
  content: "\f261";
 
}
 
.fa-tripadvisor:before {
 
  content: "\f262";
 
}
 
.fa-odnoklassniki:before {
 
  content: "\f263";
 
}
 
.fa-odnoklassniki-square:before {
 
  content: "\f264";
 
}
 
.fa-get-pocket:before {
 
  content: "\f265";
 
}
 
.fa-wikipedia-w:before {
 
  content: "\f266";
 
}
 
.fa-safari:before {
 
  content: "\f267";
 
}
 
.fa-chrome:before {
 
  content: "\f268";
 
}
 
.fa-firefox:before {
 
  content: "\f269";
 
}
 
.fa-opera:before {
 
  content: "\f26a";
 
}
 
.fa-internet-explorer:before {
 
  content: "\f26b";
 
}
 
.fa-tv:before,
 
.fa-television:before {
 
  content: "\f26c";
 
}
 
.fa-contao:before {
 
  content: "\f26d";
 
}
 
.fa-500px:before {
 
  content: "\f26e";
 
}
 
.fa-amazon:before {
 
  content: "\f270";
 
}
 
.fa-calendar-plus-o:before {
 
  content: "\f271";
 
}
 
.fa-calendar-minus-o:before {
 
  content: "\f272";
 
}
 
.fa-calendar-times-o:before {
 
  content: "\f273";
 
}
 
.fa-calendar-check-o:before {
 
  content: "\f274";
 
}
 
.fa-industry:before {
 
  content: "\f275";
 
}
 
.fa-map-pin:before {
 
  content: "\f276";
 
}
 
.fa-map-signs:before {
 
  content: "\f277";
 
}
 
.fa-map-o:before {
 
  content: "\f278";
 
}
 
.fa-map:before {
 
  content: "\f279";
 
}
 
.fa-commenting:before {
 
  content: "\f27a";
 
}
 
.fa-commenting-o:before {
 
  content: "\f27b";
 
}
 
.fa-houzz:before {
 
  content: "\f27c";
 
}
 
.fa-vimeo:before {
 
  content: "\f27d";
 
}
 
.fa-black-tie:before {
 
  content: "\f27e";
 
}
 
.fa-fonticons:before {
 
  content: "\f280";
 
}
 
.fa-reddit-alien:before {
 
  content: "\f281";
 
}
 
.fa-edge:before {
 
  content: "\f282";
 
}
 
.fa-credit-card-alt:before {
 
  content: "\f283";
 
}
 
.fa-codiepie:before {
 
  content: "\f284";
 
}
 
.fa-modx:before {
 
  content: "\f285";
 
}
 
.fa-fort-awesome:before {
 
  content: "\f286";
 
}
 
.fa-usb:before {
 
  content: "\f287";
 
}
 
.fa-product-hunt:before {
 
  content: "\f288";
 
}
 
.fa-mixcloud:before {
 
  content: "\f289";
 
}
 
.fa-scribd:before {
 
  content: "\f28a";
 
}
 
.fa-pause-circle:before {
 
  content: "\f28b";
 
}
 
.fa-pause-circle-o:before {
 
  content: "\f28c";
 
}
 
.fa-stop-circle:before {
 
  content: "\f28d";
 
}
 
.fa-stop-circle-o:before {
 
  content: "\f28e";
 
}
 
.fa-shopping-bag:before {
 
  content: "\f290";
 
}
 
.fa-shopping-basket:before {
 
  content: "\f291";
 
}
 
.fa-hashtag:before {
 
  content: "\f292";
 
}
 
.fa-bluetooth:before {
 
  content: "\f293";
 
}
 
.fa-bluetooth-b:before {
 
  content: "\f294";
 
}
 
.fa-percent:before {
 
  content: "\f295";
 
}
 
body.account-settings .account-settings,
 
body.account-password .account-password,
 
body.account-delete .account-delete {
 
  z-index: 2;
 
  color: #fff;
 
  background-color: #337ab7;
 
  border-color: #337ab7;
 
}
 
form #id_body,
 
form #id_comment,
 
form #id_message,
 
form #id_text,
 
form #id_abstract,
 
form #id_additional_notes,
 
form #id_content_override,
 
form #id_description,
 
form #id_biography,
 
form .modal-body textarea {
 
  display: none;
 
}
 
form .ace_editor {
 
  min-height: 200px;
 
  width: 100%;
 
  border: 1px dotted #CCC;
 
}
 
form .ace_content {
 
  padding: 5px;
 
}
 
body {
 
  padding-top: 60px;
 
}
 
label:not(.checkbox):not(.radio) {
 
  font-weight: bold;
 
}
 
header {
 
  position: relative;
 
  margin-bottom: 24px;
 
}
 
header h1 {
 
  margin-bottom: 9px;
 
  font-size: 48px;
 
  letter-spacing: -1px;
 
  line-height: 1;
 
  -webkit-margin-before: 0;
 
  -webkit-margin-after: 0;
 
}
 
header p {
 
  font-size: 30px;
 
  line-height: 36px;
 
}
 
header a,
 
header a:hover,
 
header a:visited {
 
  color: #333333;
 
  text-decoration: none;
 
}
 
.content-box.editable {
 
  border: 1px dashed #ccc;
 
  padding: 1px;
 
  min-height: 30px;
 
}
 
.edit-toggle {
 
  position: relative;
 
  float: right;
 
}
 
div.box-content .markItUpEditor {
 
  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
 
  padding: 5px;
 
  width: 600px;
 
  height: 320px;
 
  clear: both;
 
  display: block;
 
  overflow: auto;
 
}
 
.modal div.markItUp {
 
  width: 500px;
 
}
 
.modal textarea.markItUpEditor {
 
  width: 500px;
 
  height: 250px;
 
}
 
.titled-form {
 
  position: relative;
 
  clear: both;
 
  width: auto;
 
  margin-bottom: 2em;
 
  overflow: hidden;
 
}
 
.titled-form .titled-form-header {
 
  position: relative;
 
  height: 40px;
 
  line-height: 40px;
 
  background-color: #f8f8f8;
 
  border: 1px solid #D5D5D5;
 
  border-radius: 4px 4px 0 0;
 
  -webkit-background-clip: padding-box;
 
}
 
.titled-form .titled-form-header h3 {
 
  position: relative;
 
  top: 2px;
 
  left: 10px;
 
  display: inline-block;
 
  margin-right: 3em;
 
  font-size: 14px;
 
  font-weight: 600;
 
  color: #333333;
 
  line-height: 18px;
 
  text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.5);
 
}
 
.titled-form .titled-form-content {
 
  border: 1px solid #D5D5D5;
 
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
 
  background-color: #fff;
 
  border-top: none;
 
  padding-top: 20px;
 
}
 
.titled-form .form-actions {
 
  margin-top: 0px;
 
  border-radius: 0 0 4px 4px;
 
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
 
  border: 1px solid #D5D5D5;
 
  border-top: none;
 
}
 
.footer {
 
  margin-top: 45px;
 
  padding: 25px 0 26px;
 
  border-top: 1px solid #e5e5e5;
 
}
 
.footer p {
 
  margin-bottom: 0;
 
  color: #555;
 
}
 
table.calendar {
 
  background-color: #fffff;
 
  table-layout: fixed;
 
  font-size: 12px;
 
}
 
table.calendar tr {
 
  min-height: 36px;
 
}
 
table.calendar th {
 
  text-align: center;
 
}
 
table.calendar th.time {
 
  width: 40px;
 
}
 
table.calendar td {
 
  text-align: center;
 
  vertical-align: middle;
 
}
 
table.calendar td.time {
 
  vertical-align: top;
 
  padding-top: 0;
 
  margin-top: 0;
 
  color: #444;
 
  font-size: 11px;
 
}
 
table.calendar td.slot {
 
  font-weight: bold;
 
  text-shadow: #fff 0px 1px 0px;
 
}
 
table.calendar td.slot.slot-break {
 
  background-color: #ECFFFF;
 
}
 
table.calendar td.slot.slot-plenary {
 
  background-color: #ebebff;
 
}
 
table.calendar td.slot p {
 
  padding: 0;
 
  margin: 0;
 
}
 
table.calendar td span.title {
 
  font-weight: bold;
 
  display: block;
 
}
 
table.calendar td span.speaker {
 
  font-weight: normal;
 
  display: block;
 
}
 
body {
 
  padding-top: 50px;
 
  position: relative;
 
}
 
section {
 
  padding: 20px 0px;
 
}
 
.modal form {
 
  margin-bottom: 0px;
 
}
 
footer {
 
  padding-bottom: 20px;
 
}
 
p.login-signup {
 
  margin-top: 20px;
 
}
 
.feature-columns {
 
  margin-left: -15px;
 
  margin-right: -15px;
 
}
 
.feature-columns > div {
 
  position: relative;
 
  min-height: 1px;
 
  padding-left: 15px;
 
  padding-right: 15px;
 
  text-align: center;
 
  margin: 2em 0;
 
}
 
.feature-columns > div i.fa {
 
  margin-bottom: 0.2em;
 
}
 
@media (min-width: 768px) {
 
  .feature-columns > div {
 
    float: left;
 
    width: 33.33333333%;
 
  }
 
}
static/_build/js/site.js
Show inline comments
 
new file 100644
 
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
 
// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
 
require('../../js/transition.js')
 
require('../../js/alert.js')
 
require('../../js/button.js')
 
require('../../js/carousel.js')
 
require('../../js/collapse.js')
 
require('../../js/dropdown.js')
 
require('../../js/modal.js')
 
require('../../js/tooltip.js')
 
require('../../js/popover.js')
 
require('../../js/scrollspy.js')
 
require('../../js/tab.js')
 
require('../../js/affix.js')
 
},{"../../js/affix.js":2,"../../js/alert.js":3,"../../js/button.js":4,"../../js/carousel.js":5,"../../js/collapse.js":6,"../../js/dropdown.js":7,"../../js/modal.js":8,"../../js/popover.js":9,"../../js/scrollspy.js":10,"../../js/tab.js":11,"../../js/tooltip.js":12,"../../js/transition.js":13}],2:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: affix.js v3.3.6
 
 * http://getbootstrap.com/javascript/#affix
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // AFFIX CLASS DEFINITION
 
  // ======================
 

	
 
  var Affix = function (element, options) {
 
    this.options = $.extend({}, Affix.DEFAULTS, options)
 

	
 
    this.$target = $(this.options.target)
 
      .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
 
      .on('click.bs.affix.data-api',  $.proxy(this.checkPositionWithEventLoop, this))
 

	
 
    this.$element     = $(element)
 
    this.affixed      = null
 
    this.unpin        = null
 
    this.pinnedOffset = null
 

	
 
    this.checkPosition()
 
  }
 

	
 
  Affix.VERSION  = '3.3.6'
 

	
 
  Affix.RESET    = 'affix affix-top affix-bottom'
 

	
 
  Affix.DEFAULTS = {
 
    offset: 0,
 
    target: window
 
  }
 

	
 
  Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
 
    var scrollTop    = this.$target.scrollTop()
 
    var position     = this.$element.offset()
 
    var targetHeight = this.$target.height()
 

	
 
    if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
 

	
 
    if (this.affixed == 'bottom') {
 
      if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
 
      return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
 
    }
 

	
 
    var initializing   = this.affixed == null
 
    var colliderTop    = initializing ? scrollTop : position.top
 
    var colliderHeight = initializing ? targetHeight : height
 

	
 
    if (offsetTop != null && scrollTop <= offsetTop) return 'top'
 
    if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
 

	
 
    return false
 
  }
 

	
 
  Affix.prototype.getPinnedOffset = function () {
 
    if (this.pinnedOffset) return this.pinnedOffset
 
    this.$element.removeClass(Affix.RESET).addClass('affix')
 
    var scrollTop = this.$target.scrollTop()
 
    var position  = this.$element.offset()
 
    return (this.pinnedOffset = position.top - scrollTop)
 
  }
 

	
 
  Affix.prototype.checkPositionWithEventLoop = function () {
 
    setTimeout($.proxy(this.checkPosition, this), 1)
 
  }
 

	
 
  Affix.prototype.checkPosition = function () {
 
    if (!this.$element.is(':visible')) return
 

	
 
    var height       = this.$element.height()
 
    var offset       = this.options.offset
 
    var offsetTop    = offset.top
 
    var offsetBottom = offset.bottom
 
    var scrollHeight = Math.max($(document).height(), $(document.body).height())
 

	
 
    if (typeof offset != 'object')         offsetBottom = offsetTop = offset
 
    if (typeof offsetTop == 'function')    offsetTop    = offset.top(this.$element)
 
    if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
 

	
 
    var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
 

	
 
    if (this.affixed != affix) {
 
      if (this.unpin != null) this.$element.css('top', '')
 

	
 
      var affixType = 'affix' + (affix ? '-' + affix : '')
 
      var e         = $.Event(affixType + '.bs.affix')
 

	
 
      this.$element.trigger(e)
 

	
 
      if (e.isDefaultPrevented()) return
 

	
 
      this.affixed = affix
 
      this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
 

	
 
      this.$element
 
        .removeClass(Affix.RESET)
 
        .addClass(affixType)
 
        .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
 
    }
 

	
 
    if (affix == 'bottom') {
 
      this.$element.offset({
 
        top: scrollHeight - height - offsetBottom
 
      })
 
    }
 
  }
 

	
 

	
 
  // AFFIX PLUGIN DEFINITION
 
  // =======================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.affix')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.affix
 

	
 
  $.fn.affix             = Plugin
 
  $.fn.affix.Constructor = Affix
 

	
 

	
 
  // AFFIX NO CONFLICT
 
  // =================
 

	
 
  $.fn.affix.noConflict = function () {
 
    $.fn.affix = old
 
    return this
 
  }
 

	
 

	
 
  // AFFIX DATA-API
 
  // ==============
 

	
 
  $(window).on('load', function () {
 
    $('[data-spy="affix"]').each(function () {
 
      var $spy = $(this)
 
      var data = $spy.data()
 

	
 
      data.offset = data.offset || {}
 

	
 
      if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
 
      if (data.offsetTop    != null) data.offset.top    = data.offsetTop
 

	
 
      Plugin.call($spy, data)
 
    })
 
  })
 

	
 
}(jQuery);
 

	
 
},{}],3:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: alert.js v3.3.6
 
 * http://getbootstrap.com/javascript/#alerts
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // ALERT CLASS DEFINITION
 
  // ======================
 

	
 
  var dismiss = '[data-dismiss="alert"]'
 
  var Alert   = function (el) {
 
    $(el).on('click', dismiss, this.close)
 
  }
 

	
 
  Alert.VERSION = '3.3.6'
 

	
 
  Alert.TRANSITION_DURATION = 150
 

	
 
  Alert.prototype.close = function (e) {
 
    var $this    = $(this)
 
    var selector = $this.attr('data-target')
 

	
 
    if (!selector) {
 
      selector = $this.attr('href')
 
      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
 
    }
 

	
 
    var $parent = $(selector)
 

	
 
    if (e) e.preventDefault()
 

	
 
    if (!$parent.length) {
 
      $parent = $this.closest('.alert')
 
    }
 

	
 
    $parent.trigger(e = $.Event('close.bs.alert'))
 

	
 
    if (e.isDefaultPrevented()) return
 

	
 
    $parent.removeClass('in')
 

	
 
    function removeElement() {
 
      // detach from parent, fire event then clean up data
 
      $parent.detach().trigger('closed.bs.alert').remove()
 
    }
 

	
 
    $.support.transition && $parent.hasClass('fade') ?
 
      $parent
 
        .one('bsTransitionEnd', removeElement)
 
        .emulateTransitionEnd(Alert.TRANSITION_DURATION) :
 
      removeElement()
 
  }
 

	
 

	
 
  // ALERT PLUGIN DEFINITION
 
  // =======================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this = $(this)
 
      var data  = $this.data('bs.alert')
 

	
 
      if (!data) $this.data('bs.alert', (data = new Alert(this)))
 
      if (typeof option == 'string') data[option].call($this)
 
    })
 
  }
 

	
 
  var old = $.fn.alert
 

	
 
  $.fn.alert             = Plugin
 
  $.fn.alert.Constructor = Alert
 

	
 

	
 
  // ALERT NO CONFLICT
 
  // =================
 

	
 
  $.fn.alert.noConflict = function () {
 
    $.fn.alert = old
 
    return this
 
  }
 

	
 

	
 
  // ALERT DATA-API
 
  // ==============
 

	
 
  $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
 

	
 
}(jQuery);
 

	
 
},{}],4:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: button.js v3.3.6
 
 * http://getbootstrap.com/javascript/#buttons
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // BUTTON PUBLIC CLASS DEFINITION
 
  // ==============================
 

	
 
  var Button = function (element, options) {
 
    this.$element  = $(element)
 
    this.options   = $.extend({}, Button.DEFAULTS, options)
 
    this.isLoading = false
 
  }
 

	
 
  Button.VERSION  = '3.3.6'
 

	
 
  Button.DEFAULTS = {
 
    loadingText: 'loading...'
 
  }
 

	
 
  Button.prototype.setState = function (state) {
 
    var d    = 'disabled'
 
    var $el  = this.$element
 
    var val  = $el.is('input') ? 'val' : 'html'
 
    var data = $el.data()
 

	
 
    state += 'Text'
 

	
 
    if (data.resetText == null) $el.data('resetText', $el[val]())
 

	
 
    // push to event loop to allow forms to submit
 
    setTimeout($.proxy(function () {
 
      $el[val](data[state] == null ? this.options[state] : data[state])
 

	
 
      if (state == 'loadingText') {
 
        this.isLoading = true
 
        $el.addClass(d).attr(d, d)
 
      } else if (this.isLoading) {
 
        this.isLoading = false
 
        $el.removeClass(d).removeAttr(d)
 
      }
 
    }, this), 0)
 
  }
 

	
 
  Button.prototype.toggle = function () {
 
    var changed = true
 
    var $parent = this.$element.closest('[data-toggle="buttons"]')
 

	
 
    if ($parent.length) {
 
      var $input = this.$element.find('input')
 
      if ($input.prop('type') == 'radio') {
 
        if ($input.prop('checked')) changed = false
 
        $parent.find('.active').removeClass('active')
 
        this.$element.addClass('active')
 
      } else if ($input.prop('type') == 'checkbox') {
 
        if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false
 
        this.$element.toggleClass('active')
 
      }
 
      $input.prop('checked', this.$element.hasClass('active'))
 
      if (changed) $input.trigger('change')
 
    } else {
 
      this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
 
      this.$element.toggleClass('active')
 
    }
 
  }
 

	
 

	
 
  // BUTTON PLUGIN DEFINITION
 
  // ========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.button')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data) $this.data('bs.button', (data = new Button(this, options)))
 

	
 
      if (option == 'toggle') data.toggle()
 
      else if (option) data.setState(option)
 
    })
 
  }
 

	
 
  var old = $.fn.button
 

	
 
  $.fn.button             = Plugin
 
  $.fn.button.Constructor = Button
 

	
 

	
 
  // BUTTON NO CONFLICT
 
  // ==================
 

	
 
  $.fn.button.noConflict = function () {
 
    $.fn.button = old
 
    return this
 
  }
 

	
 

	
 
  // BUTTON DATA-API
 
  // ===============
 

	
 
  $(document)
 
    .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
 
      var $btn = $(e.target)
 
      if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
 
      Plugin.call($btn, 'toggle')
 
      if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault()
 
    })
 
    .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
 
      $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
 
    })
 

	
 
}(jQuery);
 

	
 
},{}],5:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: carousel.js v3.3.6
 
 * http://getbootstrap.com/javascript/#carousel
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // CAROUSEL CLASS DEFINITION
 
  // =========================
 

	
 
  var Carousel = function (element, options) {
 
    this.$element    = $(element)
 
    this.$indicators = this.$element.find('.carousel-indicators')
 
    this.options     = options
 
    this.paused      = null
 
    this.sliding     = null
 
    this.interval    = null
 
    this.$active     = null
 
    this.$items      = null
 

	
 
    this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
 

	
 
    this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element
 
      .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
 
      .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
 
  }
 

	
 
  Carousel.VERSION  = '3.3.6'
 

	
 
  Carousel.TRANSITION_DURATION = 600
 

	
 
  Carousel.DEFAULTS = {
 
    interval: 5000,
 
    pause: 'hover',
 
    wrap: true,
 
    keyboard: true
 
  }
 

	
 
  Carousel.prototype.keydown = function (e) {
 
    if (/input|textarea/i.test(e.target.tagName)) return
 
    switch (e.which) {
 
      case 37: this.prev(); break
 
      case 39: this.next(); break
 
      default: return
 
    }
 

	
 
    e.preventDefault()
 
  }
 

	
 
  Carousel.prototype.cycle = function (e) {
 
    e || (this.paused = false)
 

	
 
    this.interval && clearInterval(this.interval)
 

	
 
    this.options.interval
 
      && !this.paused
 
      && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
 

	
 
    return this
 
  }
 

	
 
  Carousel.prototype.getItemIndex = function (item) {
 
    this.$items = item.parent().children('.item')
 
    return this.$items.index(item || this.$active)
 
  }
 

	
 
  Carousel.prototype.getItemForDirection = function (direction, active) {
 
    var activeIndex = this.getItemIndex(active)
 
    var willWrap = (direction == 'prev' && activeIndex === 0)
 
                || (direction == 'next' && activeIndex == (this.$items.length - 1))
 
    if (willWrap && !this.options.wrap) return active
 
    var delta = direction == 'prev' ? -1 : 1
 
    var itemIndex = (activeIndex + delta) % this.$items.length
 
    return this.$items.eq(itemIndex)
 
  }
 

	
 
  Carousel.prototype.to = function (pos) {
 
    var that        = this
 
    var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
 

	
 
    if (pos > (this.$items.length - 1) || pos < 0) return
 

	
 
    if (this.sliding)       return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
 
    if (activeIndex == pos) return this.pause().cycle()
 

	
 
    return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))
 
  }
 

	
 
  Carousel.prototype.pause = function (e) {
 
    e || (this.paused = true)
 

	
 
    if (this.$element.find('.next, .prev').length && $.support.transition) {
 
      this.$element.trigger($.support.transition.end)
 
      this.cycle(true)
 
    }
 

	
 
    this.interval = clearInterval(this.interval)
 

	
 
    return this
 
  }
 

	
 
  Carousel.prototype.next = function () {
 
    if (this.sliding) return
 
    return this.slide('next')
 
  }
 

	
 
  Carousel.prototype.prev = function () {
 
    if (this.sliding) return
 
    return this.slide('prev')
 
  }
 

	
 
  Carousel.prototype.slide = function (type, next) {
 
    var $active   = this.$element.find('.item.active')
 
    var $next     = next || this.getItemForDirection(type, $active)
 
    var isCycling = this.interval
 
    var direction = type == 'next' ? 'left' : 'right'
 
    var that      = this
 

	
 
    if ($next.hasClass('active')) return (this.sliding = false)
 

	
 
    var relatedTarget = $next[0]
 
    var slideEvent = $.Event('slide.bs.carousel', {
 
      relatedTarget: relatedTarget,
 
      direction: direction
 
    })
 
    this.$element.trigger(slideEvent)
 
    if (slideEvent.isDefaultPrevented()) return
 

	
 
    this.sliding = true
 

	
 
    isCycling && this.pause()
 

	
 
    if (this.$indicators.length) {
 
      this.$indicators.find('.active').removeClass('active')
 
      var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
 
      $nextIndicator && $nextIndicator.addClass('active')
 
    }
 

	
 
    var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
 
    if ($.support.transition && this.$element.hasClass('slide')) {
 
      $next.addClass(type)
 
      $next[0].offsetWidth // force reflow
 
      $active.addClass(direction)
 
      $next.addClass(direction)
 
      $active
 
        .one('bsTransitionEnd', function () {
 
          $next.removeClass([type, direction].join(' ')).addClass('active')
 
          $active.removeClass(['active', direction].join(' '))
 
          that.sliding = false
 
          setTimeout(function () {
 
            that.$element.trigger(slidEvent)
 
          }, 0)
 
        })
 
        .emulateTransitionEnd(Carousel.TRANSITION_DURATION)
 
    } else {
 
      $active.removeClass('active')
 
      $next.addClass('active')
 
      this.sliding = false
 
      this.$element.trigger(slidEvent)
 
    }
 

	
 
    isCycling && this.cycle()
 

	
 
    return this
 
  }
 

	
 

	
 
  // CAROUSEL PLUGIN DEFINITION
 
  // ==========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.carousel')
 
      var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
 
      var action  = typeof option == 'string' ? option : options.slide
 

	
 
      if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
 
      if (typeof option == 'number') data.to(option)
 
      else if (action) data[action]()
 
      else if (options.interval) data.pause().cycle()
 
    })
 
  }
 

	
 
  var old = $.fn.carousel
 

	
 
  $.fn.carousel             = Plugin
 
  $.fn.carousel.Constructor = Carousel
 

	
 

	
 
  // CAROUSEL NO CONFLICT
 
  // ====================
 

	
 
  $.fn.carousel.noConflict = function () {
 
    $.fn.carousel = old
 
    return this
 
  }
 

	
 

	
 
  // CAROUSEL DATA-API
 
  // =================
 

	
 
  var clickHandler = function (e) {
 
    var href
 
    var $this   = $(this)
 
    var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
 
    if (!$target.hasClass('carousel')) return
 
    var options = $.extend({}, $target.data(), $this.data())
 
    var slideIndex = $this.attr('data-slide-to')
 
    if (slideIndex) options.interval = false
 

	
 
    Plugin.call($target, options)
 

	
 
    if (slideIndex) {
 
      $target.data('bs.carousel').to(slideIndex)
 
    }
 

	
 
    e.preventDefault()
 
  }
 

	
 
  $(document)
 
    .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
 
    .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
 

	
 
  $(window).on('load', function () {
 
    $('[data-ride="carousel"]').each(function () {
 
      var $carousel = $(this)
 
      Plugin.call($carousel, $carousel.data())
 
    })
 
  })
 

	
 
}(jQuery);
 

	
 
},{}],6:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: collapse.js v3.3.6
 
 * http://getbootstrap.com/javascript/#collapse
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // COLLAPSE PUBLIC CLASS DEFINITION
 
  // ================================
 

	
 
  var Collapse = function (element, options) {
 
    this.$element      = $(element)
 
    this.options       = $.extend({}, Collapse.DEFAULTS, options)
 
    this.$trigger      = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
 
                           '[data-toggle="collapse"][data-target="#' + element.id + '"]')
 
    this.transitioning = null
 

	
 
    if (this.options.parent) {
 
      this.$parent = this.getParent()
 
    } else {
 
      this.addAriaAndCollapsedClass(this.$element, this.$trigger)
 
    }
 

	
 
    if (this.options.toggle) this.toggle()
 
  }
 

	
 
  Collapse.VERSION  = '3.3.6'
 

	
 
  Collapse.TRANSITION_DURATION = 350
 

	
 
  Collapse.DEFAULTS = {
 
    toggle: true
 
  }
 

	
 
  Collapse.prototype.dimension = function () {
 
    var hasWidth = this.$element.hasClass('width')
 
    return hasWidth ? 'width' : 'height'
 
  }
 

	
 
  Collapse.prototype.show = function () {
 
    if (this.transitioning || this.$element.hasClass('in')) return
 

	
 
    var activesData
 
    var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
 

	
 
    if (actives && actives.length) {
 
      activesData = actives.data('bs.collapse')
 
      if (activesData && activesData.transitioning) return
 
    }
 

	
 
    var startEvent = $.Event('show.bs.collapse')
 
    this.$element.trigger(startEvent)
 
    if (startEvent.isDefaultPrevented()) return
 

	
 
    if (actives && actives.length) {
 
      Plugin.call(actives, 'hide')
 
      activesData || actives.data('bs.collapse', null)
 
    }
 

	
 
    var dimension = this.dimension()
 

	
 
    this.$element
 
      .removeClass('collapse')
 
      .addClass('collapsing')[dimension](0)
 
      .attr('aria-expanded', true)
 

	
 
    this.$trigger
 
      .removeClass('collapsed')
 
      .attr('aria-expanded', true)
 

	
 
    this.transitioning = 1
 

	
 
    var complete = function () {
 
      this.$element
 
        .removeClass('collapsing')
 
        .addClass('collapse in')[dimension]('')
 
      this.transitioning = 0
 
      this.$element
 
        .trigger('shown.bs.collapse')
 
    }
 

	
 
    if (!$.support.transition) return complete.call(this)
 

	
 
    var scrollSize = $.camelCase(['scroll', dimension].join('-'))
 

	
 
    this.$element
 
      .one('bsTransitionEnd', $.proxy(complete, this))
 
      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
 
  }
 

	
 
  Collapse.prototype.hide = function () {
 
    if (this.transitioning || !this.$element.hasClass('in')) return
 

	
 
    var startEvent = $.Event('hide.bs.collapse')
 
    this.$element.trigger(startEvent)
 
    if (startEvent.isDefaultPrevented()) return
 

	
 
    var dimension = this.dimension()
 

	
 
    this.$element[dimension](this.$element[dimension]())[0].offsetHeight
 

	
 
    this.$element
 
      .addClass('collapsing')
 
      .removeClass('collapse in')
 
      .attr('aria-expanded', false)
 

	
 
    this.$trigger
 
      .addClass('collapsed')
 
      .attr('aria-expanded', false)
 

	
 
    this.transitioning = 1
 

	
 
    var complete = function () {
 
      this.transitioning = 0
 
      this.$element
 
        .removeClass('collapsing')
 
        .addClass('collapse')
 
        .trigger('hidden.bs.collapse')
 
    }
 

	
 
    if (!$.support.transition) return complete.call(this)
 

	
 
    this.$element
 
      [dimension](0)
 
      .one('bsTransitionEnd', $.proxy(complete, this))
 
      .emulateTransitionEnd(Collapse.TRANSITION_DURATION)
 
  }
 

	
 
  Collapse.prototype.toggle = function () {
 
    this[this.$element.hasClass('in') ? 'hide' : 'show']()
 
  }
 

	
 
  Collapse.prototype.getParent = function () {
 
    return $(this.options.parent)
 
      .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
 
      .each($.proxy(function (i, element) {
 
        var $element = $(element)
 
        this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
 
      }, this))
 
      .end()
 
  }
 

	
 
  Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
 
    var isOpen = $element.hasClass('in')
 

	
 
    $element.attr('aria-expanded', isOpen)
 
    $trigger
 
      .toggleClass('collapsed', !isOpen)
 
      .attr('aria-expanded', isOpen)
 
  }
 

	
 
  function getTargetFromTrigger($trigger) {
 
    var href
 
    var target = $trigger.attr('data-target')
 
      || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
 

	
 
    return $(target)
 
  }
 

	
 

	
 
  // COLLAPSE PLUGIN DEFINITION
 
  // ==========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.collapse')
 
      var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
 

	
 
      if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
 
      if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.collapse
 

	
 
  $.fn.collapse             = Plugin
 
  $.fn.collapse.Constructor = Collapse
 

	
 

	
 
  // COLLAPSE NO CONFLICT
 
  // ====================
 

	
 
  $.fn.collapse.noConflict = function () {
 
    $.fn.collapse = old
 
    return this
 
  }
 

	
 

	
 
  // COLLAPSE DATA-API
 
  // =================
 

	
 
  $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
 
    var $this   = $(this)
 

	
 
    if (!$this.attr('data-target')) e.preventDefault()
 

	
 
    var $target = getTargetFromTrigger($this)
 
    var data    = $target.data('bs.collapse')
 
    var option  = data ? 'toggle' : $this.data()
 

	
 
    Plugin.call($target, option)
 
  })
 

	
 
}(jQuery);
 

	
 
},{}],7:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: dropdown.js v3.3.6
 
 * http://getbootstrap.com/javascript/#dropdowns
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // DROPDOWN CLASS DEFINITION
 
  // =========================
 

	
 
  var backdrop = '.dropdown-backdrop'
 
  var toggle   = '[data-toggle="dropdown"]'
 
  var Dropdown = function (element) {
 
    $(element).on('click.bs.dropdown', this.toggle)
 
  }
 

	
 
  Dropdown.VERSION = '3.3.6'
 

	
 
  function getParent($this) {
 
    var selector = $this.attr('data-target')
 

	
 
    if (!selector) {
 
      selector = $this.attr('href')
 
      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
 
    }
 

	
 
    var $parent = selector && $(selector)
 

	
 
    return $parent && $parent.length ? $parent : $this.parent()
 
  }
 

	
 
  function clearMenus(e) {
 
    if (e && e.which === 3) return
 
    $(backdrop).remove()
 
    $(toggle).each(function () {
 
      var $this         = $(this)
 
      var $parent       = getParent($this)
 
      var relatedTarget = { relatedTarget: this }
 

	
 
      if (!$parent.hasClass('open')) return
 

	
 
      if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return
 

	
 
      $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
 

	
 
      if (e.isDefaultPrevented()) return
 

	
 
      $this.attr('aria-expanded', 'false')
 
      $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))
 
    })
 
  }
 

	
 
  Dropdown.prototype.toggle = function (e) {
 
    var $this = $(this)
 

	
 
    if ($this.is('.disabled, :disabled')) return
 

	
 
    var $parent  = getParent($this)
 
    var isActive = $parent.hasClass('open')
 

	
 
    clearMenus()
 

	
 
    if (!isActive) {
 
      if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
 
        // if mobile we use a backdrop because click events don't delegate
 
        $(document.createElement('div'))
 
          .addClass('dropdown-backdrop')
 
          .insertAfter($(this))
 
          .on('click', clearMenus)
 
      }
 

	
 
      var relatedTarget = { relatedTarget: this }
 
      $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
 

	
 
      if (e.isDefaultPrevented()) return
 

	
 
      $this
 
        .trigger('focus')
 
        .attr('aria-expanded', 'true')
 

	
 
      $parent
 
        .toggleClass('open')
 
        .trigger($.Event('shown.bs.dropdown', relatedTarget))
 
    }
 

	
 
    return false
 
  }
 

	
 
  Dropdown.prototype.keydown = function (e) {
 
    if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
 

	
 
    var $this = $(this)
 

	
 
    e.preventDefault()
 
    e.stopPropagation()
 

	
 
    if ($this.is('.disabled, :disabled')) return
 

	
 
    var $parent  = getParent($this)
 
    var isActive = $parent.hasClass('open')
 

	
 
    if (!isActive && e.which != 27 || isActive && e.which == 27) {
 
      if (e.which == 27) $parent.find(toggle).trigger('focus')
 
      return $this.trigger('click')
 
    }
 

	
 
    var desc = ' li:not(.disabled):visible a'
 
    var $items = $parent.find('.dropdown-menu' + desc)
 

	
 
    if (!$items.length) return
 

	
 
    var index = $items.index(e.target)
 

	
 
    if (e.which == 38 && index > 0)                 index--         // up
 
    if (e.which == 40 && index < $items.length - 1) index++         // down
 
    if (!~index)                                    index = 0
 

	
 
    $items.eq(index).trigger('focus')
 
  }
 

	
 

	
 
  // DROPDOWN PLUGIN DEFINITION
 
  // ==========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this = $(this)
 
      var data  = $this.data('bs.dropdown')
 

	
 
      if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
 
      if (typeof option == 'string') data[option].call($this)
 
    })
 
  }
 

	
 
  var old = $.fn.dropdown
 

	
 
  $.fn.dropdown             = Plugin
 
  $.fn.dropdown.Constructor = Dropdown
 

	
 

	
 
  // DROPDOWN NO CONFLICT
 
  // ====================
 

	
 
  $.fn.dropdown.noConflict = function () {
 
    $.fn.dropdown = old
 
    return this
 
  }
 

	
 

	
 
  // APPLY TO STANDARD DROPDOWN ELEMENTS
 
  // ===================================
 

	
 
  $(document)
 
    .on('click.bs.dropdown.data-api', clearMenus)
 
    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
 
    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
 
    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
 
    .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
 

	
 
}(jQuery);
 

	
 
},{}],8:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: modal.js v3.3.6
 
 * http://getbootstrap.com/javascript/#modals
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // MODAL CLASS DEFINITION
 
  // ======================
 

	
 
  var Modal = function (element, options) {
 
    this.options             = options
 
    this.$body               = $(document.body)
 
    this.$element            = $(element)
 
    this.$dialog             = this.$element.find('.modal-dialog')
 
    this.$backdrop           = null
 
    this.isShown             = null
 
    this.originalBodyPad     = null
 
    this.scrollbarWidth      = 0
 
    this.ignoreBackdropClick = false
 

	
 
    if (this.options.remote) {
 
      this.$element
 
        .find('.modal-content')
 
        .load(this.options.remote, $.proxy(function () {
 
          this.$element.trigger('loaded.bs.modal')
 
        }, this))
 
    }
 
  }
 

	
 
  Modal.VERSION  = '3.3.6'
 

	
 
  Modal.TRANSITION_DURATION = 300
 
  Modal.BACKDROP_TRANSITION_DURATION = 150
 

	
 
  Modal.DEFAULTS = {
 
    backdrop: true,
 
    keyboard: true,
 
    show: true
 
  }
 

	
 
  Modal.prototype.toggle = function (_relatedTarget) {
 
    return this.isShown ? this.hide() : this.show(_relatedTarget)
 
  }
 

	
 
  Modal.prototype.show = function (_relatedTarget) {
 
    var that = this
 
    var e    = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
 

	
 
    this.$element.trigger(e)
 

	
 
    if (this.isShown || e.isDefaultPrevented()) return
 

	
 
    this.isShown = true
 

	
 
    this.checkScrollbar()
 
    this.setScrollbar()
 
    this.$body.addClass('modal-open')
 

	
 
    this.escape()
 
    this.resize()
 

	
 
    this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
 

	
 
    this.$dialog.on('mousedown.dismiss.bs.modal', function () {
 
      that.$element.one('mouseup.dismiss.bs.modal', function (e) {
 
        if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true
 
      })
 
    })
 

	
 
    this.backdrop(function () {
 
      var transition = $.support.transition && that.$element.hasClass('fade')
 

	
 
      if (!that.$element.parent().length) {
 
        that.$element.appendTo(that.$body) // don't move modals dom position
 
      }
 

	
 
      that.$element
 
        .show()
 
        .scrollTop(0)
 

	
 
      that.adjustDialog()
 

	
 
      if (transition) {
 
        that.$element[0].offsetWidth // force reflow
 
      }
 

	
 
      that.$element.addClass('in')
 

	
 
      that.enforceFocus()
 

	
 
      var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
 

	
 
      transition ?
 
        that.$dialog // wait for modal to slide in
 
          .one('bsTransitionEnd', function () {
 
            that.$element.trigger('focus').trigger(e)
 
          })
 
          .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
 
        that.$element.trigger('focus').trigger(e)
 
    })
 
  }
 

	
 
  Modal.prototype.hide = function (e) {
 
    if (e) e.preventDefault()
 

	
 
    e = $.Event('hide.bs.modal')
 

	
 
    this.$element.trigger(e)
 

	
 
    if (!this.isShown || e.isDefaultPrevented()) return
 

	
 
    this.isShown = false
 

	
 
    this.escape()
 
    this.resize()
 

	
 
    $(document).off('focusin.bs.modal')
 

	
 
    this.$element
 
      .removeClass('in')
 
      .off('click.dismiss.bs.modal')
 
      .off('mouseup.dismiss.bs.modal')
 

	
 
    this.$dialog.off('mousedown.dismiss.bs.modal')
 

	
 
    $.support.transition && this.$element.hasClass('fade') ?
 
      this.$element
 
        .one('bsTransitionEnd', $.proxy(this.hideModal, this))
 
        .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
 
      this.hideModal()
 
  }
 

	
 
  Modal.prototype.enforceFocus = function () {
 
    $(document)
 
      .off('focusin.bs.modal') // guard against infinite focus loop
 
      .on('focusin.bs.modal', $.proxy(function (e) {
 
        if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
 
          this.$element.trigger('focus')
 
        }
 
      }, this))
 
  }
 

	
 
  Modal.prototype.escape = function () {
 
    if (this.isShown && this.options.keyboard) {
 
      this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
 
        e.which == 27 && this.hide()
 
      }, this))
 
    } else if (!this.isShown) {
 
      this.$element.off('keydown.dismiss.bs.modal')
 
    }
 
  }
 

	
 
  Modal.prototype.resize = function () {
 
    if (this.isShown) {
 
      $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))
 
    } else {
 
      $(window).off('resize.bs.modal')
 
    }
 
  }
 

	
 
  Modal.prototype.hideModal = function () {
 
    var that = this
 
    this.$element.hide()
 
    this.backdrop(function () {
 
      that.$body.removeClass('modal-open')
 
      that.resetAdjustments()
 
      that.resetScrollbar()
 
      that.$element.trigger('hidden.bs.modal')
 
    })
 
  }
 

	
 
  Modal.prototype.removeBackdrop = function () {
 
    this.$backdrop && this.$backdrop.remove()
 
    this.$backdrop = null
 
  }
 

	
 
  Modal.prototype.backdrop = function (callback) {
 
    var that = this
 
    var animate = this.$element.hasClass('fade') ? 'fade' : ''
 

	
 
    if (this.isShown && this.options.backdrop) {
 
      var doAnimate = $.support.transition && animate
 

	
 
      this.$backdrop = $(document.createElement('div'))
 
        .addClass('modal-backdrop ' + animate)
 
        .appendTo(this.$body)
 

	
 
      this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
 
        if (this.ignoreBackdropClick) {
 
          this.ignoreBackdropClick = false
 
          return
 
        }
 
        if (e.target !== e.currentTarget) return
 
        this.options.backdrop == 'static'
 
          ? this.$element[0].focus()
 
          : this.hide()
 
      }, this))
 

	
 
      if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
 

	
 
      this.$backdrop.addClass('in')
 

	
 
      if (!callback) return
 

	
 
      doAnimate ?
 
        this.$backdrop
 
          .one('bsTransitionEnd', callback)
 
          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
 
        callback()
 

	
 
    } else if (!this.isShown && this.$backdrop) {
 
      this.$backdrop.removeClass('in')
 

	
 
      var callbackRemove = function () {
 
        that.removeBackdrop()
 
        callback && callback()
 
      }
 
      $.support.transition && this.$element.hasClass('fade') ?
 
        this.$backdrop
 
          .one('bsTransitionEnd', callbackRemove)
 
          .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
 
        callbackRemove()
 

	
 
    } else if (callback) {
 
      callback()
 
    }
 
  }
 

	
 
  // these following methods are used to handle overflowing modals
 

	
 
  Modal.prototype.handleUpdate = function () {
 
    this.adjustDialog()
 
  }
 

	
 
  Modal.prototype.adjustDialog = function () {
 
    var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
 

	
 
    this.$element.css({
 
      paddingLeft:  !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
 
      paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
 
    })
 
  }
 

	
 
  Modal.prototype.resetAdjustments = function () {
 
    this.$element.css({
 
      paddingLeft: '',
 
      paddingRight: ''
 
    })
 
  }
 

	
 
  Modal.prototype.checkScrollbar = function () {
 
    var fullWindowWidth = window.innerWidth
 
    if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
 
      var documentElementRect = document.documentElement.getBoundingClientRect()
 
      fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)
 
    }
 
    this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth
 
    this.scrollbarWidth = this.measureScrollbar()
 
  }
 

	
 
  Modal.prototype.setScrollbar = function () {
 
    var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
 
    this.originalBodyPad = document.body.style.paddingRight || ''
 
    if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
 
  }
 

	
 
  Modal.prototype.resetScrollbar = function () {
 
    this.$body.css('padding-right', this.originalBodyPad)
 
  }
 

	
 
  Modal.prototype.measureScrollbar = function () { // thx walsh
 
    var scrollDiv = document.createElement('div')
 
    scrollDiv.className = 'modal-scrollbar-measure'
 
    this.$body.append(scrollDiv)
 
    var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
 
    this.$body[0].removeChild(scrollDiv)
 
    return scrollbarWidth
 
  }
 

	
 

	
 
  // MODAL PLUGIN DEFINITION
 
  // =======================
 

	
 
  function Plugin(option, _relatedTarget) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.modal')
 
      var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
 

	
 
      if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
 
      if (typeof option == 'string') data[option](_relatedTarget)
 
      else if (options.show) data.show(_relatedTarget)
 
    })
 
  }
 

	
 
  var old = $.fn.modal
 

	
 
  $.fn.modal             = Plugin
 
  $.fn.modal.Constructor = Modal
 

	
 

	
 
  // MODAL NO CONFLICT
 
  // =================
 

	
 
  $.fn.modal.noConflict = function () {
 
    $.fn.modal = old
 
    return this
 
  }
 

	
 

	
 
  // MODAL DATA-API
 
  // ==============
 

	
 
  $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
 
    var $this   = $(this)
 
    var href    = $this.attr('href')
 
    var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
 
    var option  = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
 

	
 
    if ($this.is('a')) e.preventDefault()
 

	
 
    $target.one('show.bs.modal', function (showEvent) {
 
      if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
 
      $target.one('hidden.bs.modal', function () {
 
        $this.is(':visible') && $this.trigger('focus')
 
      })
 
    })
 
    Plugin.call($target, option, this)
 
  })
 

	
 
}(jQuery);
 

	
 
},{}],9:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: popover.js v3.3.6
 
 * http://getbootstrap.com/javascript/#popovers
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // POPOVER PUBLIC CLASS DEFINITION
 
  // ===============================
 

	
 
  var Popover = function (element, options) {
 
    this.init('popover', element, options)
 
  }
 

	
 
  if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
 

	
 
  Popover.VERSION  = '3.3.6'
 

	
 
  Popover.DEFAULTS = $.extend({}, $.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>'
 
  })
 

	
 

	
 
  // NOTE: POPOVER EXTENDS tooltip.js
 
  // ================================
 

	
 
  Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
 

	
 
  Popover.prototype.constructor = Popover
 

	
 
  Popover.prototype.getDefaults = function () {
 
    return Popover.DEFAULTS
 
  }
 

	
 
  Popover.prototype.setContent = function () {
 
    var $tip    = this.tip()
 
    var title   = this.getTitle()
 
    var content = this.getContent()
 

	
 
    $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
 
    $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events
 
      this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
 
    ](content)
 

	
 
    $tip.removeClass('fade top bottom left right in')
 

	
 
    // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
 
    // this manually by checking the contents.
 
    if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
 
  }
 

	
 
  Popover.prototype.hasContent = function () {
 
    return this.getTitle() || this.getContent()
 
  }
 

	
 
  Popover.prototype.getContent = function () {
 
    var $e = this.$element
 
    var o  = this.options
 

	
 
    return $e.attr('data-content')
 
      || (typeof o.content == 'function' ?
 
            o.content.call($e[0]) :
 
            o.content)
 
  }
 

	
 
  Popover.prototype.arrow = function () {
 
    return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
 
  }
 

	
 

	
 
  // POPOVER PLUGIN DEFINITION
 
  // =========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.popover')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data && /destroy|hide/.test(option)) return
 
      if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.popover
 

	
 
  $.fn.popover             = Plugin
 
  $.fn.popover.Constructor = Popover
 

	
 

	
 
  // POPOVER NO CONFLICT
 
  // ===================
 

	
 
  $.fn.popover.noConflict = function () {
 
    $.fn.popover = old
 
    return this
 
  }
 

	
 
}(jQuery);
 

	
 
},{}],10:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: scrollspy.js v3.3.6
 
 * http://getbootstrap.com/javascript/#scrollspy
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // SCROLLSPY CLASS DEFINITION
 
  // ==========================
 

	
 
  function ScrollSpy(element, options) {
 
    this.$body          = $(document.body)
 
    this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
 
    this.options        = $.extend({}, ScrollSpy.DEFAULTS, options)
 
    this.selector       = (this.options.target || '') + ' .nav li > a'
 
    this.offsets        = []
 
    this.targets        = []
 
    this.activeTarget   = null
 
    this.scrollHeight   = 0
 

	
 
    this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
 
    this.refresh()
 
    this.process()
 
  }
 

	
 
  ScrollSpy.VERSION  = '3.3.6'
 

	
 
  ScrollSpy.DEFAULTS = {
 
    offset: 10
 
  }
 

	
 
  ScrollSpy.prototype.getScrollHeight = function () {
 
    return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
 
  }
 

	
 
  ScrollSpy.prototype.refresh = function () {
 
    var that          = this
 
    var offsetMethod  = 'offset'
 
    var offsetBase    = 0
 

	
 
    this.offsets      = []
 
    this.targets      = []
 
    this.scrollHeight = this.getScrollHeight()
 

	
 
    if (!$.isWindow(this.$scrollElement[0])) {
 
      offsetMethod = 'position'
 
      offsetBase   = this.$scrollElement.scrollTop()
 
    }
 

	
 
    this.$body
 
      .find(this.selector)
 
      .map(function () {
 
        var $el   = $(this)
 
        var href  = $el.data('target') || $el.attr('href')
 
        var $href = /^#./.test(href) && $(href)
 

	
 
        return ($href
 
          && $href.length
 
          && $href.is(':visible')
 
          && [[$href[offsetMethod]().top + offsetBase, href]]) || null
 
      })
 
      .sort(function (a, b) { return a[0] - b[0] })
 
      .each(function () {
 
        that.offsets.push(this[0])
 
        that.targets.push(this[1])
 
      })
 
  }
 

	
 
  ScrollSpy.prototype.process = function () {
 
    var scrollTop    = this.$scrollElement.scrollTop() + this.options.offset
 
    var scrollHeight = this.getScrollHeight()
 
    var maxScroll    = this.options.offset + scrollHeight - this.$scrollElement.height()
 
    var offsets      = this.offsets
 
    var targets      = this.targets
 
    var activeTarget = this.activeTarget
 
    var i
 

	
 
    if (this.scrollHeight != scrollHeight) {
 
      this.refresh()
 
    }
 

	
 
    if (scrollTop >= maxScroll) {
 
      return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
 
    }
 

	
 
    if (activeTarget && scrollTop < offsets[0]) {
 
      this.activeTarget = null
 
      return this.clear()
 
    }
 

	
 
    for (i = offsets.length; i--;) {
 
      activeTarget != targets[i]
 
        && scrollTop >= offsets[i]
 
        && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
 
        && this.activate(targets[i])
 
    }
 
  }
 

	
 
  ScrollSpy.prototype.activate = function (target) {
 
    this.activeTarget = target
 

	
 
    this.clear()
 

	
 
    var selector = this.selector +
 
      '[data-target="' + target + '"],' +
 
      this.selector + '[href="' + target + '"]'
 

	
 
    var active = $(selector)
 
      .parents('li')
 
      .addClass('active')
 

	
 
    if (active.parent('.dropdown-menu').length) {
 
      active = active
 
        .closest('li.dropdown')
 
        .addClass('active')
 
    }
 

	
 
    active.trigger('activate.bs.scrollspy')
 
  }
 

	
 
  ScrollSpy.prototype.clear = function () {
 
    $(this.selector)
 
      .parentsUntil(this.options.target, '.active')
 
      .removeClass('active')
 
  }
 

	
 

	
 
  // SCROLLSPY PLUGIN DEFINITION
 
  // ===========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.scrollspy')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.scrollspy
 

	
 
  $.fn.scrollspy             = Plugin
 
  $.fn.scrollspy.Constructor = ScrollSpy
 

	
 

	
 
  // SCROLLSPY NO CONFLICT
 
  // =====================
 

	
 
  $.fn.scrollspy.noConflict = function () {
 
    $.fn.scrollspy = old
 
    return this
 
  }
 

	
 

	
 
  // SCROLLSPY DATA-API
 
  // ==================
 

	
 
  $(window).on('load.bs.scrollspy.data-api', function () {
 
    $('[data-spy="scroll"]').each(function () {
 
      var $spy = $(this)
 
      Plugin.call($spy, $spy.data())
 
    })
 
  })
 

	
 
}(jQuery);
 

	
 
},{}],11:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: tab.js v3.3.6
 
 * http://getbootstrap.com/javascript/#tabs
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // TAB CLASS DEFINITION
 
  // ====================
 

	
 
  var Tab = function (element) {
 
    // jscs:disable requireDollarBeforejQueryAssignment
 
    this.element = $(element)
 
    // jscs:enable requireDollarBeforejQueryAssignment
 
  }
 

	
 
  Tab.VERSION = '3.3.6'
 

	
 
  Tab.TRANSITION_DURATION = 150
 

	
 
  Tab.prototype.show = function () {
 
    var $this    = this.element
 
    var $ul      = $this.closest('ul:not(.dropdown-menu)')
 
    var selector = $this.data('target')
 

	
 
    if (!selector) {
 
      selector = $this.attr('href')
 
      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
 
    }
 

	
 
    if ($this.parent('li').hasClass('active')) return
 

	
 
    var $previous = $ul.find('.active:last a')
 
    var hideEvent = $.Event('hide.bs.tab', {
 
      relatedTarget: $this[0]
 
    })
 
    var showEvent = $.Event('show.bs.tab', {
 
      relatedTarget: $previous[0]
 
    })
 

	
 
    $previous.trigger(hideEvent)
 
    $this.trigger(showEvent)
 

	
 
    if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
 

	
 
    var $target = $(selector)
 

	
 
    this.activate($this.closest('li'), $ul)
 
    this.activate($target, $target.parent(), function () {
 
      $previous.trigger({
 
        type: 'hidden.bs.tab',
 
        relatedTarget: $this[0]
 
      })
 
      $this.trigger({
 
        type: 'shown.bs.tab',
 
        relatedTarget: $previous[0]
 
      })
 
    })
 
  }
 

	
 
  Tab.prototype.activate = function (element, container, callback) {
 
    var $active    = container.find('> .active')
 
    var transition = callback
 
      && $.support.transition
 
      && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
 

	
 
    function next() {
 
      $active
 
        .removeClass('active')
 
        .find('> .dropdown-menu > .active')
 
          .removeClass('active')
 
        .end()
 
        .find('[data-toggle="tab"]')
 
          .attr('aria-expanded', false)
 

	
 
      element
 
        .addClass('active')
 
        .find('[data-toggle="tab"]')
 
          .attr('aria-expanded', true)
 

	
 
      if (transition) {
 
        element[0].offsetWidth // reflow for transition
 
        element.addClass('in')
 
      } else {
 
        element.removeClass('fade')
 
      }
 

	
 
      if (element.parent('.dropdown-menu').length) {
 
        element
 
          .closest('li.dropdown')
 
            .addClass('active')
 
          .end()
 
          .find('[data-toggle="tab"]')
 
            .attr('aria-expanded', true)
 
      }
 

	
 
      callback && callback()
 
    }
 

	
 
    $active.length && transition ?
 
      $active
 
        .one('bsTransitionEnd', next)
 
        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
 
      next()
 

	
 
    $active.removeClass('in')
 
  }
 

	
 

	
 
  // TAB PLUGIN DEFINITION
 
  // =====================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this = $(this)
 
      var data  = $this.data('bs.tab')
 

	
 
      if (!data) $this.data('bs.tab', (data = new Tab(this)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.tab
 

	
 
  $.fn.tab             = Plugin
 
  $.fn.tab.Constructor = Tab
 

	
 

	
 
  // TAB NO CONFLICT
 
  // ===============
 

	
 
  $.fn.tab.noConflict = function () {
 
    $.fn.tab = old
 
    return this
 
  }
 

	
 

	
 
  // TAB DATA-API
 
  // ============
 

	
 
  var clickHandler = function (e) {
 
    e.preventDefault()
 
    Plugin.call($(this), 'show')
 
  }
 

	
 
  $(document)
 
    .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
 
    .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
 

	
 
}(jQuery);
 

	
 
},{}],12:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: tooltip.js v3.3.6
 
 * http://getbootstrap.com/javascript/#tooltip
 
 * Inspired by the original jQuery.tipsy by Jason Frame
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // TOOLTIP PUBLIC CLASS DEFINITION
 
  // ===============================
 

	
 
  var Tooltip = function (element, options) {
 
    this.type       = null
 
    this.options    = null
 
    this.enabled    = null
 
    this.timeout    = null
 
    this.hoverState = null
 
    this.$element   = null
 
    this.inState    = null
 

	
 
    this.init('tooltip', element, options)
 
  }
 

	
 
  Tooltip.VERSION  = '3.3.6'
 

	
 
  Tooltip.TRANSITION_DURATION = 150
 

	
 
  Tooltip.DEFAULTS = {
 
    animation: true,
 
    placement: 'top',
 
    selector: false,
 
    template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
 
    trigger: 'hover focus',
 
    title: '',
 
    delay: 0,
 
    html: false,
 
    container: false,
 
    viewport: {
 
      selector: 'body',
 
      padding: 0
 
    }
 
  }
 

	
 
  Tooltip.prototype.init = function (type, element, options) {
 
    this.enabled   = true
 
    this.type      = type
 
    this.$element  = $(element)
 
    this.options   = this.getOptions(options)
 
    this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
 
    this.inState   = { click: false, hover: false, focus: false }
 

	
 
    if (this.$element[0] instanceof document.constructor && !this.options.selector) {
 
      throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
 
    }
 

	
 
    var triggers = this.options.trigger.split(' ')
 

	
 
    for (var i = triggers.length; i--;) {
 
      var trigger = triggers[i]
 

	
 
      if (trigger == 'click') {
 
        this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
 
      } else if (trigger != 'manual') {
 
        var eventIn  = trigger == 'hover' ? 'mouseenter' : 'focusin'
 
        var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
 

	
 
        this.$element.on(eventIn  + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
 
        this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
 
      }
 
    }
 

	
 
    this.options.selector ?
 
      (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
 
      this.fixTitle()
 
  }
 

	
 
  Tooltip.prototype.getDefaults = function () {
 
    return Tooltip.DEFAULTS
 
  }
 

	
 
  Tooltip.prototype.getOptions = function (options) {
 
    options = $.extend({}, this.getDefaults(), this.$element.data(), options)
 

	
 
    if (options.delay && typeof options.delay == 'number') {
 
      options.delay = {
 
        show: options.delay,
 
        hide: options.delay
 
      }
 
    }
 

	
 
    return options
 
  }
 

	
 
  Tooltip.prototype.getDelegateOptions = function () {
 
    var options  = {}
 
    var defaults = this.getDefaults()
 

	
 
    this._options && $.each(this._options, function (key, value) {
 
      if (defaults[key] != value) options[key] = value
 
    })
 

	
 
    return options
 
  }
 

	
 
  Tooltip.prototype.enter = function (obj) {
 
    var self = obj instanceof this.constructor ?
 
      obj : $(obj.currentTarget).data('bs.' + this.type)
 

	
 
    if (!self) {
 
      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
 
      $(obj.currentTarget).data('bs.' + this.type, self)
 
    }
 

	
 
    if (obj instanceof $.Event) {
 
      self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true
 
    }
 

	
 
    if (self.tip().hasClass('in') || self.hoverState == 'in') {
 
      self.hoverState = 'in'
 
      return
 
    }
 

	
 
    clearTimeout(self.timeout)
 

	
 
    self.hoverState = 'in'
 

	
 
    if (!self.options.delay || !self.options.delay.show) return self.show()
 

	
 
    self.timeout = setTimeout(function () {
 
      if (self.hoverState == 'in') self.show()
 
    }, self.options.delay.show)
 
  }
 

	
 
  Tooltip.prototype.isInStateTrue = function () {
 
    for (var key in this.inState) {
 
      if (this.inState[key]) return true
 
    }
 

	
 
    return false
 
  }
 

	
 
  Tooltip.prototype.leave = function (obj) {
 
    var self = obj instanceof this.constructor ?
 
      obj : $(obj.currentTarget).data('bs.' + this.type)
 

	
 
    if (!self) {
 
      self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
 
      $(obj.currentTarget).data('bs.' + this.type, self)
 
    }
 

	
 
    if (obj instanceof $.Event) {
 
      self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
 
    }
 

	
 
    if (self.isInStateTrue()) return
 

	
 
    clearTimeout(self.timeout)
 

	
 
    self.hoverState = 'out'
 

	
 
    if (!self.options.delay || !self.options.delay.hide) return self.hide()
 

	
 
    self.timeout = setTimeout(function () {
 
      if (self.hoverState == 'out') self.hide()
 
    }, self.options.delay.hide)
 
  }
 

	
 
  Tooltip.prototype.show = function () {
 
    var e = $.Event('show.bs.' + this.type)
 

	
 
    if (this.hasContent() && this.enabled) {
 
      this.$element.trigger(e)
 

	
 
      var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])
 
      if (e.isDefaultPrevented() || !inDom) return
 
      var that = this
 

	
 
      var $tip = this.tip()
 

	
 
      var tipId = this.getUID(this.type)
 

	
 
      this.setContent()
 
      $tip.attr('id', tipId)
 
      this.$element.attr('aria-describedby', tipId)
 

	
 
      if (this.options.animation) $tip.addClass('fade')
 

	
 
      var placement = typeof this.options.placement == 'function' ?
 
        this.options.placement.call(this, $tip[0], this.$element[0]) :
 
        this.options.placement
 

	
 
      var autoToken = /\s?auto?\s?/i
 
      var autoPlace = autoToken.test(placement)
 
      if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
 

	
 
      $tip
 
        .detach()
 
        .css({ top: 0, left: 0, display: 'block' })
 
        .addClass(placement)
 
        .data('bs.' + this.type, this)
 

	
 
      this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
 
      this.$element.trigger('inserted.bs.' + this.type)
 

	
 
      var pos          = this.getPosition()
 
      var actualWidth  = $tip[0].offsetWidth
 
      var actualHeight = $tip[0].offsetHeight
 

	
 
      if (autoPlace) {
 
        var orgPlacement = placement
 
        var viewportDim = this.getPosition(this.$viewport)
 

	
 
        placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top'    :
 
                    placement == 'top'    && pos.top    - actualHeight < viewportDim.top    ? 'bottom' :
 
                    placement == 'right'  && pos.right  + actualWidth  > viewportDim.width  ? 'left'   :
 
                    placement == 'left'   && pos.left   - actualWidth  < viewportDim.left   ? 'right'  :
 
                    placement
 

	
 
        $tip
 
          .removeClass(orgPlacement)
 
          .addClass(placement)
 
      }
 

	
 
      var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
 

	
 
      this.applyPlacement(calculatedOffset, placement)
 

	
 
      var complete = function () {
 
        var prevHoverState = that.hoverState
 
        that.$element.trigger('shown.bs.' + that.type)
 
        that.hoverState = null
 

	
 
        if (prevHoverState == 'out') that.leave(that)
 
      }
 

	
 
      $.support.transition && this.$tip.hasClass('fade') ?
 
        $tip
 
          .one('bsTransitionEnd', complete)
 
          .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
 
        complete()
 
    }
 
  }
 

	
 
  Tooltip.prototype.applyPlacement = function (offset, placement) {
 
    var $tip   = this.tip()
 
    var width  = $tip[0].offsetWidth
 
    var height = $tip[0].offsetHeight
 

	
 
    // manually read margins because getBoundingClientRect includes difference
 
    var marginTop = parseInt($tip.css('margin-top'), 10)
 
    var marginLeft = parseInt($tip.css('margin-left'), 10)
 

	
 
    // we must check for NaN for ie 8/9
 
    if (isNaN(marginTop))  marginTop  = 0
 
    if (isNaN(marginLeft)) marginLeft = 0
 

	
 
    offset.top  += marginTop
 
    offset.left += marginLeft
 

	
 
    // $.fn.offset doesn't round pixel values
 
    // so we use setOffset directly with our own function B-0
 
    $.offset.setOffset($tip[0], $.extend({
 
      using: function (props) {
 
        $tip.css({
 
          top: Math.round(props.top),
 
          left: Math.round(props.left)
 
        })
 
      }
 
    }, offset), 0)
 

	
 
    $tip.addClass('in')
 

	
 
    // check to see if placing tip in new offset caused the tip to resize itself
 
    var actualWidth  = $tip[0].offsetWidth
 
    var actualHeight = $tip[0].offsetHeight
 

	
 
    if (placement == 'top' && actualHeight != height) {
 
      offset.top = offset.top + height - actualHeight
 
    }
 

	
 
    var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
 

	
 
    if (delta.left) offset.left += delta.left
 
    else offset.top += delta.top
 

	
 
    var isVertical          = /top|bottom/.test(placement)
 
    var arrowDelta          = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
 
    var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'
 

	
 
    $tip.offset(offset)
 
    this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
 
  }
 

	
 
  Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
 
    this.arrow()
 
      .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
 
      .css(isVertical ? 'top' : 'left', '')
 
  }
 

	
 
  Tooltip.prototype.setContent = function () {
 
    var $tip  = this.tip()
 
    var title = this.getTitle()
 

	
 
    $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
 
    $tip.removeClass('fade in top bottom left right')
 
  }
 

	
 
  Tooltip.prototype.hide = function (callback) {
 
    var that = this
 
    var $tip = $(this.$tip)
 
    var e    = $.Event('hide.bs.' + this.type)
 

	
 
    function complete() {
 
      if (that.hoverState != 'in') $tip.detach()
 
      that.$element
 
        .removeAttr('aria-describedby')
 
        .trigger('hidden.bs.' + that.type)
 
      callback && callback()
 
    }
 

	
 
    this.$element.trigger(e)
 

	
 
    if (e.isDefaultPrevented()) return
 

	
 
    $tip.removeClass('in')
 

	
 
    $.support.transition && $tip.hasClass('fade') ?
 
      $tip
 
        .one('bsTransitionEnd', complete)
 
        .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
 
      complete()
 

	
 
    this.hoverState = null
 

	
 
    return this
 
  }
 

	
 
  Tooltip.prototype.fixTitle = function () {
 
    var $e = this.$element
 
    if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {
 
      $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
 
    }
 
  }
 

	
 
  Tooltip.prototype.hasContent = function () {
 
    return this.getTitle()
 
  }
 

	
 
  Tooltip.prototype.getPosition = function ($element) {
 
    $element   = $element || this.$element
 

	
 
    var el     = $element[0]
 
    var isBody = el.tagName == 'BODY'
 

	
 
    var elRect    = el.getBoundingClientRect()
 
    if (elRect.width == null) {
 
      // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
 
      elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
 
    }
 
    var elOffset  = isBody ? { top: 0, left: 0 } : $element.offset()
 
    var scroll    = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
 
    var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
 

	
 
    return $.extend({}, elRect, scroll, outerDims, elOffset)
 
  }
 

	
 
  Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
 
    return placement == 'bottom' ? { top: pos.top + pos.height,   left: pos.left + pos.width / 2 - actualWidth / 2 } :
 
           placement == 'top'    ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
 
           placement == 'left'   ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
 
        /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
 

	
 
  }
 

	
 
  Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
 
    var delta = { top: 0, left: 0 }
 
    if (!this.$viewport) return delta
 

	
 
    var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
 
    var viewportDimensions = this.getPosition(this.$viewport)
 

	
 
    if (/right|left/.test(placement)) {
 
      var topEdgeOffset    = pos.top - viewportPadding - viewportDimensions.scroll
 
      var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
 
      if (topEdgeOffset < viewportDimensions.top) { // top overflow
 
        delta.top = viewportDimensions.top - topEdgeOffset
 
      } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
 
        delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
 
      }
 
    } else {
 
      var leftEdgeOffset  = pos.left - viewportPadding
 
      var rightEdgeOffset = pos.left + viewportPadding + actualWidth
 
      if (leftEdgeOffset < viewportDimensions.left) { // left overflow
 
        delta.left = viewportDimensions.left - leftEdgeOffset
 
      } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow
 
        delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
 
      }
 
    }
 

	
 
    return delta
 
  }
 

	
 
  Tooltip.prototype.getTitle = function () {
 
    var title
 
    var $e = this.$element
 
    var o  = this.options
 

	
 
    title = $e.attr('data-original-title')
 
      || (typeof o.title == 'function' ? o.title.call($e[0]) :  o.title)
 

	
 
    return title
 
  }
 

	
 
  Tooltip.prototype.getUID = function (prefix) {
 
    do prefix += ~~(Math.random() * 1000000)
 
    while (document.getElementById(prefix))
 
    return prefix
 
  }
 

	
 
  Tooltip.prototype.tip = function () {
 
    if (!this.$tip) {
 
      this.$tip = $(this.options.template)
 
      if (this.$tip.length != 1) {
 
        throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
 
      }
 
    }
 
    return this.$tip
 
  }
 

	
 
  Tooltip.prototype.arrow = function () {
 
    return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
 
  }
 

	
 
  Tooltip.prototype.enable = function () {
 
    this.enabled = true
 
  }
 

	
 
  Tooltip.prototype.disable = function () {
 
    this.enabled = false
 
  }
 

	
 
  Tooltip.prototype.toggleEnabled = function () {
 
    this.enabled = !this.enabled
 
  }
 

	
 
  Tooltip.prototype.toggle = function (e) {
 
    var self = this
 
    if (e) {
 
      self = $(e.currentTarget).data('bs.' + this.type)
 
      if (!self) {
 
        self = new this.constructor(e.currentTarget, this.getDelegateOptions())
 
        $(e.currentTarget).data('bs.' + this.type, self)
 
      }
 
    }
 

	
 
    if (e) {
 
      self.inState.click = !self.inState.click
 
      if (self.isInStateTrue()) self.enter(self)
 
      else self.leave(self)
 
    } else {
 
      self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
 
    }
 
  }
 

	
 
  Tooltip.prototype.destroy = function () {
 
    var that = this
 
    clearTimeout(this.timeout)
 
    this.hide(function () {
 
      that.$element.off('.' + that.type).removeData('bs.' + that.type)
 
      if (that.$tip) {
 
        that.$tip.detach()
 
      }
 
      that.$tip = null
 
      that.$arrow = null
 
      that.$viewport = null
 
    })
 
  }
 

	
 

	
 
  // TOOLTIP PLUGIN DEFINITION
 
  // =========================
 

	
 
  function Plugin(option) {
 
    return this.each(function () {
 
      var $this   = $(this)
 
      var data    = $this.data('bs.tooltip')
 
      var options = typeof option == 'object' && option
 

	
 
      if (!data && /destroy|hide/.test(option)) return
 
      if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
 
      if (typeof option == 'string') data[option]()
 
    })
 
  }
 

	
 
  var old = $.fn.tooltip
 

	
 
  $.fn.tooltip             = Plugin
 
  $.fn.tooltip.Constructor = Tooltip
 

	
 

	
 
  // TOOLTIP NO CONFLICT
 
  // ===================
 

	
 
  $.fn.tooltip.noConflict = function () {
 
    $.fn.tooltip = old
 
    return this
 
  }
 

	
 
}(jQuery);
 

	
 
},{}],13:[function(require,module,exports){
 
/* ========================================================================
 
 * Bootstrap: transition.js v3.3.6
 
 * http://getbootstrap.com/javascript/#transitions
 
 * ========================================================================
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 * ======================================================================== */
 

	
 

	
 
+function ($) {
 
  'use strict';
 

	
 
  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
 
  // ============================================================
 

	
 
  function transitionEnd() {
 
    var el = document.createElement('bootstrap')
 

	
 
    var transEndEventNames = {
 
      WebkitTransition : 'webkitTransitionEnd',
 
      MozTransition    : 'transitionend',
 
      OTransition      : 'oTransitionEnd otransitionend',
 
      transition       : 'transitionend'
 
    }
 

	
 
    for (var name in transEndEventNames) {
 
      if (el.style[name] !== undefined) {
 
        return { end: transEndEventNames[name] }
 
      }
 
    }
 

	
 
    return false // explicit for ie8 (  ._.)
 
  }
 

	
 
  // http://blog.alexmaccaw.com/css-transitions
 
  $.fn.emulateTransitionEnd = function (duration) {
 
    var called = false
 
    var $el = this
 
    $(this).one('bsTransitionEnd', function () { called = true })
 
    var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
 
    setTimeout(callback, duration)
 
    return this
 
  }
 

	
 
  $(function () {
 
    $.support.transition = transitionEnd()
 

	
 
    if (!$.support.transition) return
 

	
 
    $.event.special.bsTransitionEnd = {
 
      bindType: $.support.transition.end,
 
      delegateType: $.support.transition.end,
 
      handle: function (e) {
 
        if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
 
      }
 
    }
 
  })
 

	
 
}(jQuery);
 

	
 
},{}],14:[function(require,module,exports){
 
/*!
 
 * jQuery JavaScript Library v2.2.1
 
 * http://jquery.com/
 
 *
 
 * Includes Sizzle.js
 
 * http://sizzlejs.com/
 
 *
 
 * Copyright jQuery Foundation and other contributors
 
 * Released under the MIT license
 
 * http://jquery.org/license
 
 *
 
 * Date: 2016-02-22T19:11Z
 
 */
 

	
 
(function( global, factory ) {
 

	
 
	if ( typeof module === "object" && typeof module.exports === "object" ) {
 
		// For CommonJS and CommonJS-like environments where a proper `window`
 
		// is present, execute the factory and get jQuery.
 
		// For environments that do not have a `window` with a `document`
 
		// (such as Node.js), expose a factory as module.exports.
 
		// This accentuates the need for the creation of a real `window`.
 
		// e.g. var jQuery = require("jquery")(window);
 
		// See ticket #14549 for more info.
 
		module.exports = global.document ?
 
			factory( global, true ) :
 
			function( w ) {
 
				if ( !w.document ) {
 
					throw new Error( "jQuery requires a window with a document" );
 
				}
 
				return factory( w );
 
			};
 
	} else {
 
		factory( global );
 
	}
 

	
 
// Pass this if window is not defined yet
 
}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
 

	
 
// Support: Firefox 18+
 
// Can't be in strict mode, several libs including ASP.NET trace
 
// the stack via arguments.caller.callee and Firefox dies if
 
// you try to trace through "use strict" call chains. (#13335)
 
//"use strict";
 
var arr = [];
 

	
 
var document = window.document;
 

	
 
var slice = arr.slice;
 

	
 
var concat = arr.concat;
 

	
 
var push = arr.push;
 

	
 
var indexOf = arr.indexOf;
 

	
 
var class2type = {};
 

	
 
var toString = class2type.toString;
 

	
 
var hasOwn = class2type.hasOwnProperty;
 

	
 
var support = {};
 

	
 

	
 

	
 
var
 
	version = "2.2.1",
 

	
 
	// Define a local copy of jQuery
 
	jQuery = function( selector, context ) {
 

	
 
		// The jQuery object is actually just the init constructor 'enhanced'
 
		// Need init if jQuery is called (just allow error to be thrown if not included)
 
		return new jQuery.fn.init( selector, context );
 
	},
 

	
 
	// Support: Android<4.1
 
	// Make sure we trim BOM and NBSP
 
	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
 

	
 
	// Matches dashed string for camelizing
 
	rmsPrefix = /^-ms-/,
 
	rdashAlpha = /-([\da-z])/gi,
 

	
 
	// Used by jQuery.camelCase as callback to replace()
 
	fcamelCase = function( all, letter ) {
 
		return letter.toUpperCase();
 
	};
 

	
 
jQuery.fn = jQuery.prototype = {
 

	
 
	// The current version of jQuery being used
 
	jquery: version,
 

	
 
	constructor: jQuery,
 

	
 
	// Start with an empty selector
 
	selector: "",
 

	
 
	// The default length of a jQuery object is 0
 
	length: 0,
 

	
 
	toArray: function() {
 
		return slice.call( this );
 
	},
 

	
 
	// Get the Nth element in the matched element set OR
 
	// Get the whole matched element set as a clean array
 
	get: function( num ) {
 
		return num != null ?
 

	
 
			// Return just the one element from the set
 
			( num < 0 ? this[ num + this.length ] : this[ num ] ) :
 

	
 
			// Return all the elements in a clean array
 
			slice.call( this );
 
	},
 

	
 
	// Take an array of elements and push it onto the stack
 
	// (returning the new matched element set)
 
	pushStack: function( elems ) {
 

	
 
		// Build a new jQuery matched element set
 
		var ret = jQuery.merge( this.constructor(), elems );
 

	
 
		// Add the old object onto the stack (as a reference)
 
		ret.prevObject = this;
 
		ret.context = this.context;
 

	
 
		// Return the newly-formed element set
 
		return ret;
 
	},
 

	
 
	// Execute a callback for every element in the matched set.
 
	each: function( callback ) {
 
		return jQuery.each( this, callback );
 
	},
 

	
 
	map: function( callback ) {
 
		return this.pushStack( jQuery.map( this, function( elem, i ) {
 
			return callback.call( elem, i, elem );
 
		} ) );
 
	},
 

	
 
	slice: function() {
 
		return this.pushStack( slice.apply( this, arguments ) );
 
	},
 

	
 
	first: function() {
 
		return this.eq( 0 );
 
	},
 

	
 
	last: function() {
 
		return this.eq( -1 );
 
	},
 

	
 
	eq: function( i ) {
 
		var len = this.length,
 
			j = +i + ( i < 0 ? len : 0 );
 
		return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
 
	},
 

	
 
	end: function() {
 
		return this.prevObject || this.constructor();
 
	},
 

	
 
	// For internal use only.
 
	// Behaves like an Array's method, not like a jQuery method.
 
	push: push,
 
	sort: arr.sort,
 
	splice: arr.splice
 
};
 

	
 
jQuery.extend = jQuery.fn.extend = function() {
 
	var options, name, src, copy, copyIsArray, clone,
 
		target = arguments[ 0 ] || {},
 
		i = 1,
 
		length = arguments.length,
 
		deep = false;
 

	
 
	// Handle a deep copy situation
 
	if ( typeof target === "boolean" ) {
 
		deep = target;
 

	
 
		// Skip the boolean and the target
 
		target = arguments[ i ] || {};
 
		i++;
 
	}
 

	
 
	// Handle case when target is a string or something (possible in deep copy)
 
	if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
 
		target = {};
 
	}
 

	
 
	// Extend jQuery itself if only one argument is passed
 
	if ( i === length ) {
 
		target = this;
 
		i--;
 
	}
 

	
 
	for ( ; i < length; i++ ) {
 

	
 
		// Only deal with non-null/undefined values
 
		if ( ( options = arguments[ i ] ) != null ) {
 

	
 
			// Extend the base object
 
			for ( name in options ) {
 
				src = target[ name ];
 
				copy = options[ name ];
 

	
 
				// Prevent never-ending loop
 
				if ( target === copy ) {
 
					continue;
 
				}
 

	
 
				// Recurse if we're merging plain objects or arrays
 
				if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
 
					( copyIsArray = jQuery.isArray( copy ) ) ) ) {
 

	
 
					if ( copyIsArray ) {
 
						copyIsArray = false;
 
						clone = src && jQuery.isArray( src ) ? src : [];
 

	
 
					} else {
 
						clone = src && jQuery.isPlainObject( src ) ? src : {};
 
					}
 

	
 
					// Never move original objects, clone them
 
					target[ name ] = jQuery.extend( deep, clone, copy );
 

	
 
				// Don't bring in undefined values
 
				} else if ( copy !== undefined ) {
 
					target[ name ] = copy;
 
				}
 
			}
 
		}
 
	}
 

	
 
	// Return the modified object
 
	return target;
 
};
 

	
 
jQuery.extend( {
 

	
 
	// Unique for each copy of jQuery on the page
 
	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
 

	
 
	// Assume jQuery is ready without the ready module
 
	isReady: true,
 

	
 
	error: function( msg ) {
 
		throw new Error( msg );
 
	},
 

	
 
	noop: function() {},
 

	
 
	isFunction: function( obj ) {
 
		return jQuery.type( obj ) === "function";
 
	},
 

	
 
	isArray: Array.isArray,
 

	
 
	isWindow: function( obj ) {
 
		return obj != null && obj === obj.window;
 
	},
 

	
 
	isNumeric: function( obj ) {
 

	
 
		// parseFloat NaNs numeric-cast false positives (null|true|false|"")
 
		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
 
		// subtraction forces infinities to NaN
 
		// adding 1 corrects loss of precision from parseFloat (#15100)
 
		var realStringObj = obj && obj.toString();
 
		return !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;
 
	},
 

	
 
	isPlainObject: function( obj ) {
 

	
 
		// Not plain objects:
 
		// - Any object or value whose internal [[Class]] property is not "[object Object]"
 
		// - DOM nodes
 
		// - window
 
		if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
 
			return false;
 
		}
 

	
 
		if ( obj.constructor &&
 
				!hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) {
 
			return false;
 
		}
 

	
 
		// If the function hasn't returned already, we're confident that
 
		// |obj| is a plain object, created by {} or constructed with new Object
 
		return true;
 
	},
 

	
 
	isEmptyObject: function( obj ) {
 
		var name;
 
		for ( name in obj ) {
 
			return false;
 
		}
 
		return true;
 
	},
 

	
 
	type: function( obj ) {
 
		if ( obj == null ) {
 
			return obj + "";
 
		}
 

	
 
		// Support: Android<4.0, iOS<6 (functionish RegExp)
 
		return typeof obj === "object" || typeof obj === "function" ?
 
			class2type[ toString.call( obj ) ] || "object" :
 
			typeof obj;
 
	},
 

	
 
	// Evaluates a script in a global context
 
	globalEval: function( code ) {
 
		var script,
 
			indirect = eval;
 

	
 
		code = jQuery.trim( code );
 

	
 
		if ( code ) {
 

	
 
			// If the code includes a valid, prologue position
 
			// strict mode pragma, execute code by injecting a
 
			// script tag into the document.
 
			if ( code.indexOf( "use strict" ) === 1 ) {
 
				script = document.createElement( "script" );
 
				script.text = code;
 
				document.head.appendChild( script ).parentNode.removeChild( script );
 
			} else {
 

	
 
				// Otherwise, avoid the DOM node creation, insertion
 
				// and removal by using an indirect global eval
 

	
 
				indirect( code );
 
			}
 
		}
 
	},
 

	
 
	// Convert dashed to camelCase; used by the css and data modules
 
	// Support: IE9-11+
 
	// Microsoft forgot to hump their vendor prefix (#9572)
 
	camelCase: function( string ) {
 
		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
 
	},
 

	
 
	nodeName: function( elem, name ) {
 
		return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
 
	},
 

	
 
	each: function( obj, callback ) {
 
		var length, i = 0;
 

	
 
		if ( isArrayLike( obj ) ) {
 
			length = obj.length;
 
			for ( ; i < length; i++ ) {
 
				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
 
					break;
 
				}
 
			}
 
		} else {
 
			for ( i in obj ) {
 
				if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
 
					break;
 
				}
 
			}
 
		}
 

	
 
		return obj;
 
	},
 

	
 
	// Support: Android<4.1
 
	trim: function( text ) {
 
		return text == null ?
 
			"" :
 
			( text + "" ).replace( rtrim, "" );
 
	},
 

	
 
	// results is for internal usage only
 
	makeArray: function( arr, results ) {
 
		var ret = results || [];
 

	
 
		if ( arr != null ) {
 
			if ( isArrayLike( Object( arr ) ) ) {
 
				jQuery.merge( ret,
 
					typeof arr === "string" ?
 
					[ arr ] : arr
 
				);
 
			} else {
 
				push.call( ret, arr );
 
			}
 
		}
 

	
 
		return ret;
 
	},
 

	
 
	inArray: function( elem, arr, i ) {
 
		return arr == null ? -1 : indexOf.call( arr, elem, i );
 
	},
 

	
 
	merge: function( first, second ) {
 
		var len = +second.length,
 
			j = 0,
 
			i = first.length;
 

	
 
		for ( ; j < len; j++ ) {
 
			first[ i++ ] = second[ j ];
 
		}
 

	
 
		first.length = i;
 

	
 
		return first;
 
	},
 

	
 
	grep: function( elems, callback, invert ) {
 
		var callbackInverse,
 
			matches = [],
 
			i = 0,
 
			length = elems.length,
 
			callbackExpect = !invert;
 

	
 
		// Go through the array, only saving the items
 
		// that pass the validator function
 
		for ( ; i < length; i++ ) {
 
			callbackInverse = !callback( elems[ i ], i );
 
			if ( callbackInverse !== callbackExpect ) {
 
				matches.push( elems[ i ] );
 
			}
 
		}
 

	
 
		return matches;
 
	},
 

	
 
	// arg is for internal usage only
 
	map: function( elems, callback, arg ) {
 
		var length, value,
 
			i = 0,
 
			ret = [];
 

	
 
		// Go through the array, translating each of the items to their new values
 
		if ( isArrayLike( elems ) ) {
 
			length = elems.length;
 
			for ( ; i < length; i++ ) {
 
				value = callback( elems[ i ], i, arg );
 

	
 
				if ( value != null ) {
 
					ret.push( value );
 
				}
 
			}
 

	
 
		// Go through every key on the object,
 
		} else {
 
			for ( i in elems ) {
 
				value = callback( elems[ i ], i, arg );
 

	
 
				if ( value != null ) {
 
					ret.push( value );
 
				}
 
			}
 
		}
 

	
 
		// Flatten any nested arrays
 
		return concat.apply( [], ret );
 
	},
 

	
 
	// A global GUID counter for objects
 
	guid: 1,
 

	
 
	// Bind a function to a context, optionally partially applying any
 
	// arguments.
 
	proxy: function( fn, context ) {
 
		var tmp, args, proxy;
 

	
 
		if ( typeof context === "string" ) {
 
			tmp = fn[ context ];
 
			context = fn;
 
			fn = tmp;
 
		}
 

	
 
		// Quick check to determine if target is callable, in the spec
 
		// this throws a TypeError, but we will just return undefined.
 
		if ( !jQuery.isFunction( fn ) ) {
 
			return undefined;
 
		}
 

	
 
		// Simulated bind
 
		args = slice.call( arguments, 2 );
 
		proxy = function() {
 
			return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
 
		};
 

	
 
		// Set the guid of unique handler to the same of original handler, so it can be removed
 
		proxy.guid = fn.guid = fn.guid || jQuery.guid++;
 

	
 
		return proxy;
 
	},
 

	
 
	now: Date.now,
 

	
 
	// jQuery.support is not used in Core but other projects attach their
 
	// properties to it so it needs to exist.
 
	support: support
 
} );
 

	
 
// JSHint would error on this code due to the Symbol not being defined in ES5.
 
// Defining this global in .jshintrc would create a danger of using the global
 
// unguarded in another place, it seems safer to just disable JSHint for these
 
// three lines.
 
/* jshint ignore: start */
 
if ( typeof Symbol === "function" ) {
 
	jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
 
}
 
/* jshint ignore: end */
 

	
 
// Populate the class2type map
 
jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
 
function( i, name ) {
 
	class2type[ "[object " + name + "]" ] = name.toLowerCase();
 
} );
 

	
 
function isArrayLike( obj ) {
 

	
 
	// Support: iOS 8.2 (not reproducible in simulator)
 
	// `in` check used to prevent JIT error (gh-2145)
 
	// hasOwn isn't used here due to false negatives
 
	// regarding Nodelist length in IE
 
	var length = !!obj && "length" in obj && obj.length,
 
		type = jQuery.type( obj );
 

	
 
	if ( type === "function" || jQuery.isWindow( obj ) ) {
 
		return false;
 
	}
 

	
 
	return type === "array" || length === 0 ||
 
		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
 
}
 
var Sizzle =
 
/*!
 
 * Sizzle CSS Selector Engine v2.2.1
 
 * http://sizzlejs.com/
 
 *
 
 * Copyright jQuery Foundation and other contributors
 
 * Released under the MIT license
 
 * http://jquery.org/license
 
 *
 
 * Date: 2015-10-17
 
 */
 
(function( window ) {
 

	
 
var i,
 
	support,
 
	Expr,
 
	getText,
 
	isXML,
 
	tokenize,
 
	compile,
 
	select,
 
	outermostContext,
 
	sortInput,
 
	hasDuplicate,
 

	
 
	// Local document vars
 
	setDocument,
 
	document,
 
	docElem,
 
	documentIsHTML,
 
	rbuggyQSA,
 
	rbuggyMatches,
 
	matches,
 
	contains,
 

	
 
	// Instance-specific data
 
	expando = "sizzle" + 1 * new Date(),
 
	preferredDoc = window.document,
 
	dirruns = 0,
 
	done = 0,
 
	classCache = createCache(),
 
	tokenCache = createCache(),
 
	compilerCache = createCache(),
 
	sortOrder = function( a, b ) {
 
		if ( a === b ) {
 
			hasDuplicate = true;
 
		}
 
		return 0;
 
	},
 

	
 
	// General-purpose constants
 
	MAX_NEGATIVE = 1 << 31,
 

	
 
	// Instance methods
 
	hasOwn = ({}).hasOwnProperty,
 
	arr = [],
 
	pop = arr.pop,
 
	push_native = arr.push,
 
	push = arr.push,
 
	slice = arr.slice,
 
	// Use a stripped-down indexOf as it's faster than native
 
	// http://jsperf.com/thor-indexof-vs-for/5
 
	indexOf = function( list, elem ) {
 
		var i = 0,
 
			len = list.length;
 
		for ( ; i < len; i++ ) {
 
			if ( list[i] === elem ) {
 
				return i;
 
			}
 
		}
 
		return -1;
 
	},
 

	
 
	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
 

	
 
	// Regular expressions
 

	
 
	// http://www.w3.org/TR/css3-selectors/#whitespace
 
	whitespace = "[\\x20\\t\\r\\n\\f]",
 

	
 
	// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
 
	identifier = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
 

	
 
	// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
 
	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
 
		// Operator (capture 2)
 
		"*([*^$|!~]?=)" + whitespace +
 
		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
 
		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
 
		"*\\]",
 

	
 
	pseudos = ":(" + identifier + ")(?:\\((" +
 
		// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
 
		// 1. quoted (capture 3; capture 4 or capture 5)
 
		"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
 
		// 2. simple (capture 6)
 
		"((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
 
		// 3. anything else (capture 2)
 
		".*" +
 
		")\\)|)",
 

	
 
	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
 
	rwhitespace = new RegExp( whitespace + "+", "g" ),
 
	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
 

	
 
	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
 
	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
 

	
 
	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
 

	
 
	rpseudo = new RegExp( pseudos ),
 
	ridentifier = new RegExp( "^" + identifier + "$" ),
 

	
 
	matchExpr = {
 
		"ID": new RegExp( "^#(" + identifier + ")" ),
 
		"CLASS": new RegExp( "^\\.(" + identifier + ")" ),
 
		"TAG": new RegExp( "^(" + identifier + "|[*])" ),
 
		"ATTR": new RegExp( "^" + attributes ),
 
		"PSEUDO": new RegExp( "^" + pseudos ),
 
		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
 
			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
 
			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
 
		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
 
		// For use in libraries implementing .is()
 
		// We use this for POS matching in `select`
 
		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
 
			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
 
	},
 

	
 
	rinputs = /^(?:input|select|textarea|button)$/i,
 
	rheader = /^h\d$/i,
 

	
 
	rnative = /^[^{]+\{\s*\[native \w/,
 

	
 
	// Easily-parseable/retrievable ID or TAG or CLASS selectors
 
	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
 

	
 
	rsibling = /[+~]/,
 
	rescape = /'|\\/g,
 

	
 
	// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
 
	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
 
	funescape = function( _, escaped, escapedWhitespace ) {
 
		var high = "0x" + escaped - 0x10000;
 
		// NaN means non-codepoint
 
		// Support: Firefox<24
 
		// Workaround erroneous numeric interpretation of +"0x"
 
		return high !== high || escapedWhitespace ?
 
			escaped :
 
			high < 0 ?
 
				// BMP codepoint
 
				String.fromCharCode( high + 0x10000 ) :
 
				// Supplemental Plane codepoint (surrogate pair)
 
				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
 
	},
 

	
 
	// Used for iframes
 
	// See setDocument()
 
	// Removing the function wrapper causes a "Permission Denied"
 
	// error in IE
 
	unloadHandler = function() {
 
		setDocument();
 
	};
 

	
 
// Optimize for push.apply( _, NodeList )
 
try {
 
	push.apply(
 
		(arr = slice.call( preferredDoc.childNodes )),
 
		preferredDoc.childNodes
 
	);
 
	// Support: Android<4.0
 
	// Detect silently failing push.apply
 
	arr[ preferredDoc.childNodes.length ].nodeType;
 
} catch ( e ) {
 
	push = { apply: arr.length ?
 

	
 
		// Leverage slice if possible
 
		function( target, els ) {
 
			push_native.apply( target, slice.call(els) );
 
		} :
 

	
 
		// Support: IE<9
 
		// Otherwise append directly
 
		function( target, els ) {
 
			var j = target.length,
 
				i = 0;
 
			// Can't trust NodeList.length
 
			while ( (target[j++] = els[i++]) ) {}
 
			target.length = j - 1;
 
		}
 
	};
 
}
 

	
 
function Sizzle( selector, context, results, seed ) {
 
	var m, i, elem, nid, nidselect, match, groups, newSelector,
 
		newContext = context && context.ownerDocument,
 

	
 
		// nodeType defaults to 9, since context defaults to document
 
		nodeType = context ? context.nodeType : 9;
 

	
 
	results = results || [];
 

	
 
	// Return early from calls with invalid selector or context
 
	if ( typeof selector !== "string" || !selector ||
 
		nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
 

	
 
		return results;
 
	}
 

	
 
	// Try to shortcut find operations (as opposed to filters) in HTML documents
 
	if ( !seed ) {
 

	
 
		if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
 
			setDocument( context );
 
		}
 
		context = context || document;
 

	
 
		if ( documentIsHTML ) {
 

	
 
			// If the selector is sufficiently simple, try using a "get*By*" DOM method
 
			// (excepting DocumentFragment context, where the methods don't exist)
 
			if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
 

	
 
				// ID selector
 
				if ( (m = match[1]) ) {
 

	
 
					// Document context
 
					if ( nodeType === 9 ) {
 
						if ( (elem = context.getElementById( m )) ) {
 

	
 
							// Support: IE, Opera, Webkit
 
							// TODO: identify versions
 
							// getElementById can match elements by name instead of ID
 
							if ( elem.id === m ) {
 
								results.push( elem );
 
								return results;
 
							}
 
						} else {
 
							return results;
 
						}
 

	
 
					// Element context
 
					} else {
 

	
 
						// Support: IE, Opera, Webkit
 
						// TODO: identify versions
 
						// getElementById can match elements by name instead of ID
 
						if ( newContext && (elem = newContext.getElementById( m )) &&
 
							contains( context, elem ) &&
 
							elem.id === m ) {
 

	
 
							results.push( elem );
 
							return results;
 
						}
 
					}
 

	
 
				// Type selector
 
				} else if ( match[2] ) {
 
					push.apply( results, context.getElementsByTagName( selector ) );
 
					return results;
 

	
 
				// Class selector
 
				} else if ( (m = match[3]) && support.getElementsByClassName &&
 
					context.getElementsByClassName ) {
 

	
 
					push.apply( results, context.getElementsByClassName( m ) );
 
					return results;
 
				}
 
			}
 

	
 
			// Take advantage of querySelectorAll
 
			if ( support.qsa &&
 
				!compilerCache[ selector + " " ] &&
 
				(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
 

	
 
				if ( nodeType !== 1 ) {
 
					newContext = context;
 
					newSelector = selector;
 

	
 
				// qSA looks outside Element context, which is not what we want
 
				// Thanks to Andrew Dupont for this workaround technique
 
				// Support: IE <=8
 
				// Exclude object elements
 
				} else if ( context.nodeName.toLowerCase() !== "object" ) {
 

	
 
					// Capture the context ID, setting it first if necessary
 
					if ( (nid = context.getAttribute( "id" )) ) {
 
						nid = nid.replace( rescape, "\\$&" );
 
					} else {
 
						context.setAttribute( "id", (nid = expando) );
 
					}
 

	
 
					// Prefix every selector in the list
 
					groups = tokenize( selector );
 
					i = groups.length;
 
					nidselect = ridentifier.test( nid ) ? "#" + nid : "[id='" + nid + "']";
 
					while ( i-- ) {
 
						groups[i] = nidselect + " " + toSelector( groups[i] );
 
					}
 
					newSelector = groups.join( "," );
 

	
 
					// Expand context for sibling selectors
 
					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
 
						context;
 
				}
 

	
 
				if ( newSelector ) {
 
					try {
 
						push.apply( results,
 
							newContext.querySelectorAll( newSelector )
 
						);
 
						return results;
 
					} catch ( qsaError ) {
 
					} finally {
 
						if ( nid === expando ) {
 
							context.removeAttribute( "id" );
 
						}
 
					}
 
				}
 
			}
 
		}
 
	}
 

	
 
	// All others
 
	return select( selector.replace( rtrim, "$1" ), context, results, seed );
 
}
 

	
 
/**
 
 * Create key-value caches of limited size
 
 * @returns {function(string, object)} Returns the Object data after storing it on itself with
 
 *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
 
 *	deleting the oldest entry
 
 */
 
function createCache() {
 
	var keys = [];
 

	
 
	function cache( key, value ) {
 
		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
 
		if ( keys.push( key + " " ) > Expr.cacheLength ) {
 
			// Only keep the most recent entries
 
			delete cache[ keys.shift() ];
 
		}
 
		return (cache[ key + " " ] = value);
 
	}
 
	return cache;
 
}
 

	
 
/**
 
 * Mark a function for special use by Sizzle
 
 * @param {Function} fn The function to mark
 
 */
 
function markFunction( fn ) {
 
	fn[ expando ] = true;
 
	return fn;
 
}
 

	
 
/**
 
 * Support testing using an element
 
 * @param {Function} fn Passed the created div and expects a boolean result
 
 */
 
function assert( fn ) {
 
	var div = document.createElement("div");
 

	
 
	try {
 
		return !!fn( div );
 
	} catch (e) {
 
		return false;
 
	} finally {
 
		// Remove from its parent by default
 
		if ( div.parentNode ) {
 
			div.parentNode.removeChild( div );
 
		}
 
		// release memory in IE
 
		div = null;
 
	}
 
}
 

	
 
/**
 
 * Adds the same handler for all of the specified attrs
 
 * @param {String} attrs Pipe-separated list of attributes
 
 * @param {Function} handler The method that will be applied
 
 */
 
function addHandle( attrs, handler ) {
 
	var arr = attrs.split("|"),
 
		i = arr.length;
 

	
 
	while ( i-- ) {
 
		Expr.attrHandle[ arr[i] ] = handler;
 
	}
 
}
 

	
 
/**
 
 * Checks document order of two siblings
 
 * @param {Element} a
 
 * @param {Element} b
 
 * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
 
 */
 
function siblingCheck( a, b ) {
 
	var cur = b && a,
 
		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
 
			( ~b.sourceIndex || MAX_NEGATIVE ) -
 
			( ~a.sourceIndex || MAX_NEGATIVE );
 

	
 
	// Use IE sourceIndex if available on both nodes
 
	if ( diff ) {
 
		return diff;
 
	}
 

	
 
	// Check if b follows a
 
	if ( cur ) {
 
		while ( (cur = cur.nextSibling) ) {
 
			if ( cur === b ) {
 
				return -1;
 
			}
 
		}
 
	}
 

	
 
	return a ? 1 : -1;
 
}
 

	
 
/**
 
 * Returns a function to use in pseudos for input types
 
 * @param {String} type
 
 */
 
function createInputPseudo( type ) {
 
	return function( elem ) {
 
		var name = elem.nodeName.toLowerCase();
 
		return name === "input" && elem.type === type;
 
	};
 
}
 

	
 
/**
 
 * Returns a function to use in pseudos for buttons
 
 * @param {String} type
 
 */
 
function createButtonPseudo( type ) {
 
	return function( elem ) {
 
		var name = elem.nodeName.toLowerCase();
 
		return (name === "input" || name === "button") && elem.type === type;
 
	};
 
}
 

	
 
/**
 
 * Returns a function to use in pseudos for positionals
 
 * @param {Function} fn
 
 */
 
function createPositionalPseudo( fn ) {
 
	return markFunction(function( argument ) {
 
		argument = +argument;
 
		return markFunction(function( seed, matches ) {
 
			var j,
 
				matchIndexes = fn( [], seed.length, argument ),
 
				i = matchIndexes.length;
 

	
 
			// Match elements found at the specified indexes
 
			while ( i-- ) {
 
				if ( seed[ (j = matchIndexes[i]) ] ) {
 
					seed[j] = !(matches[j] = seed[j]);
 
				}
 
			}
 
		});
 
	});
 
}
 

	
 
/**
 
 * Checks a node for validity as a Sizzle context
 
 * @param {Element|Object=} context
 
 * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
 
 */
 
function testContext( context ) {
 
	return context && typeof context.getElementsByTagName !== "undefined" && context;
 
}
 

	
 
// Expose support vars for convenience
 
support = Sizzle.support = {};
 

	
 
/**
 
 * Detects XML nodes
 
 * @param {Element|Object} elem An element or a document
 
 * @returns {Boolean} True iff elem is a non-HTML XML node
 
 */
 
isXML = Sizzle.isXML = function( elem ) {
 
	// documentElement is verified for cases where it doesn't yet exist
 
	// (such as loading iframes in IE - #4833)
 
	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
 
	return documentElement ? documentElement.nodeName !== "HTML" : false;
 
};
 

	
 
/**
 
 * Sets document-related variables once based on the current document
 
 * @param {Element|Object} [doc] An element or document object to use to set the document
 
 * @returns {Object} Returns the current document
 
 */
 
setDocument = Sizzle.setDocument = function( node ) {
 
	var hasCompare, parent,
 
		doc = node ? node.ownerDocument || node : preferredDoc;
 

	
 
	// Return early if doc is invalid or already selected
 
	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
 
		return document;
 
	}
 

	
 
	// Update global variables
 
	document = doc;
 
	docElem = document.documentElement;
 
	documentIsHTML = !isXML( document );
 

	
 
	// Support: IE 9-11, Edge
 
	// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
 
	if ( (parent = document.defaultView) && parent.top !== parent ) {
 
		// Support: IE 11
 
		if ( parent.addEventListener ) {
 
			parent.addEventListener( "unload", unloadHandler, false );
 

	
 
		// Support: IE 9 - 10 only
 
		} else if ( parent.attachEvent ) {
 
			parent.attachEvent( "onunload", unloadHandler );
 
		}
 
	}
 

	
 
	/* Attributes
 
	---------------------------------------------------------------------- */
 

	
 
	// Support: IE<8
 
	// Verify that getAttribute really returns attributes and not properties
 
	// (excepting IE8 booleans)
 
	support.attributes = assert(function( div ) {
 
		div.className = "i";
 
		return !div.getAttribute("className");
 
	});
 

	
 
	/* getElement(s)By*
 
	---------------------------------------------------------------------- */
 

	
 
	// Check if getElementsByTagName("*") returns only elements
 
	support.getElementsByTagName = assert(function( div ) {
 
		div.appendChild( document.createComment("") );
 
		return !div.getElementsByTagName("*").length;
 
	});
 

	
 
	// Support: IE<9
 
	support.getElementsByClassName = rnative.test( document.getElementsByClassName );
 

	
 
	// Support: IE<10
 
	// Check if getElementById returns elements by name
 
	// The broken getElementById methods don't pick up programatically-set names,
 
	// so use a roundabout getElementsByName test
 
	support.getById = assert(function( div ) {
 
		docElem.appendChild( div ).id = expando;
 
		return !document.getElementsByName || !document.getElementsByName( expando ).length;
 
	});
 

	
 
	// ID find and filter
 
	if ( support.getById ) {
 
		Expr.find["ID"] = function( id, context ) {
 
			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
 
				var m = context.getElementById( id );
 
				return m ? [ m ] : [];
 
			}
 
		};
 
		Expr.filter["ID"] = function( id ) {
 
			var attrId = id.replace( runescape, funescape );
 
			return function( elem ) {
 
				return elem.getAttribute("id") === attrId;
 
			};
 
		};
 
	} else {
 
		// Support: IE6/7
 
		// getElementById is not reliable as a find shortcut
 
		delete Expr.find["ID"];
 

	
 
		Expr.filter["ID"] =  function( id ) {
 
			var attrId = id.replace( runescape, funescape );
 
			return function( elem ) {
 
				var node = typeof elem.getAttributeNode !== "undefined" &&
 
					elem.getAttributeNode("id");
 
				return node && node.value === attrId;
 
			};
 
		};
 
	}
 

	
 
	// Tag
 
	Expr.find["TAG"] = support.getElementsByTagName ?
 
		function( tag, context ) {
 
			if ( typeof context.getElementsByTagName !== "undefined" ) {
 
				return context.getElementsByTagName( tag );
 

	
 
			// DocumentFragment nodes don't have gEBTN
 
			} else if ( support.qsa ) {
 
				return context.querySelectorAll( tag );
 
			}
 
		} :
 

	
 
		function( tag, context ) {
 
			var elem,
 
				tmp = [],
 
				i = 0,
 
				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
 
				results = context.getElementsByTagName( tag );
 

	
 
			// Filter out possible comments
 
			if ( tag === "*" ) {
 
				while ( (elem = results[i++]) ) {
 
					if ( elem.nodeType === 1 ) {
 
						tmp.push( elem );
 
					}
 
				}
 

	
 
				return tmp;
 
			}
 
			return results;
 
		};
 

	
 
	// Class
 
	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
 
		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
 
			return context.getElementsByClassName( className );
 
		}
 
	};
 

	
 
	/* QSA/matchesSelector
 
	---------------------------------------------------------------------- */
 

	
 
	// QSA and matchesSelector support
 

	
 
	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
 
	rbuggyMatches = [];
 

	
 
	// qSa(:focus) reports false when true (Chrome 21)
 
	// We allow this because of a bug in IE8/9 that throws an error
 
	// whenever `document.activeElement` is accessed on an iframe
 
	// So, we allow :focus to pass through QSA all the time to avoid the IE error
 
	// See http://bugs.jquery.com/ticket/13378
 
	rbuggyQSA = [];
 

	
 
	if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
 
		// Build QSA regex
 
		// Regex strategy adopted from Diego Perini
 
		assert(function( div ) {
 
			// Select is set to empty string on purpose
 
			// This is to test IE's treatment of not explicitly
 
			// setting a boolean content attribute,
 
			// since its presence should be enough
 
			// http://bugs.jquery.com/ticket/12359
 
			docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" +
 
				"<select id='" + expando + "-\r\\' msallowcapture=''>" +
 
				"<option selected=''></option></select>";
 

	
 
			// Support: IE8, Opera 11-12.16
 
			// Nothing should be selected when empty strings follow ^= or $= or *=
 
			// The test attribute must be unknown in Opera but "safe" for WinRT
 
			// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
 
			if ( div.querySelectorAll("[msallowcapture^='']").length ) {
 
				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
 
			}
 

	
 
			// Support: IE8
 
			// Boolean attributes and "value" are not treated correctly
 
			if ( !div.querySelectorAll("[selected]").length ) {
 
				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
 
			}
 

	
 
			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
 
			if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
 
				rbuggyQSA.push("~=");
 
			}
 

	
 
			// Webkit/Opera - :checked should return selected option elements
 
			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
 
			// IE8 throws error here and will not see later tests
 
			if ( !div.querySelectorAll(":checked").length ) {
 
				rbuggyQSA.push(":checked");
 
			}
 

	
 
			// Support: Safari 8+, iOS 8+
 
			// https://bugs.webkit.org/show_bug.cgi?id=136851
 
			// In-page `selector#id sibing-combinator selector` fails
 
			if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) {
 
				rbuggyQSA.push(".#.+[+~]");
 
			}
 
		});
 

	
 
		assert(function( div ) {
 
			// Support: Windows 8 Native Apps
 
			// The type and name attributes are restricted during .innerHTML assignment
 
			var input = document.createElement("input");
 
			input.setAttribute( "type", "hidden" );
 
			div.appendChild( input ).setAttribute( "name", "D" );
 

	
 
			// Support: IE8
 
			// Enforce case-sensitivity of name attribute
 
			if ( div.querySelectorAll("[name=d]").length ) {
 
				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
 
			}
 

	
 
			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
 
			// IE8 throws error here and will not see later tests
 
			if ( !div.querySelectorAll(":enabled").length ) {
 
				rbuggyQSA.push( ":enabled", ":disabled" );
 
			}
 

	
 
			// Opera 10-11 does not throw on post-comma invalid pseudos
 
			div.querySelectorAll("*,:x");
 
			rbuggyQSA.push(",.*:");
 
		});
 
	}
 

	
 
	if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
 
		docElem.webkitMatchesSelector ||
 
		docElem.mozMatchesSelector ||
 
		docElem.oMatchesSelector ||
 
		docElem.msMatchesSelector) )) ) {
 

	
 
		assert(function( div ) {
 
			// Check to see if it's possible to do matchesSelector
 
			// on a disconnected node (IE 9)
 
			support.disconnectedMatch = matches.call( div, "div" );
 

	
 
			// This should fail with an exception
 
			// Gecko does not error, returns false instead
 
			matches.call( div, "[s!='']:x" );
 
			rbuggyMatches.push( "!=", pseudos );
 
		});
 
	}
 

	
 
	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
 
	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
 

	
 
	/* Contains
 
	---------------------------------------------------------------------- */
 
	hasCompare = rnative.test( docElem.compareDocumentPosition );
 

	
 
	// Element contains another
 
	// Purposefully self-exclusive
 
	// As in, an element does not contain itself
 
	contains = hasCompare || rnative.test( docElem.contains ) ?
 
		function( a, b ) {
 
			var adown = a.nodeType === 9 ? a.documentElement : a,
 
				bup = b && b.parentNode;
 
			return a === bup || !!( bup && bup.nodeType === 1 && (
 
				adown.contains ?
 
					adown.contains( bup ) :
 
					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
 
			));
 
		} :
 
		function( a, b ) {
 
			if ( b ) {
 
				while ( (b = b.parentNode) ) {
 
					if ( b === a ) {
 
						return true;
 
					}
 
				}
 
			}
 
			return false;
 
		};
 

	
 
	/* Sorting
 
	---------------------------------------------------------------------- */
 

	
 
	// Document order sorting
 
	sortOrder = hasCompare ?
 
	function( a, b ) {
 

	
 
		// Flag for duplicate removal
 
		if ( a === b ) {
 
			hasDuplicate = true;
 
			return 0;
 
		}
 

	
 
		// Sort on method existence if only one input has compareDocumentPosition
 
		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
 
		if ( compare ) {
 
			return compare;
 
		}
 

	
 
		// Calculate position if both inputs belong to the same document
 
		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
 
			a.compareDocumentPosition( b ) :
 

	
 
			// Otherwise we know they are disconnected
 
			1;
 

	
 
		// Disconnected nodes
 
		if ( compare & 1 ||
 
			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
 

	
 
			// Choose the first element that is related to our preferred document
 
			if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
 
				return -1;
 
			}
 
			if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
 
				return 1;
 
			}
 

	
 
			// Maintain original order
 
			return sortInput ?
 
				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
 
				0;
 
		}
 

	
 
		return compare & 4 ? -1 : 1;
 
	} :
 
	function( a, b ) {
 
		// Exit early if the nodes are identical
 
		if ( a === b ) {
 
			hasDuplicate = true;
 
			return 0;
 
		}
 

	
 
		var cur,
 
			i = 0,
 
			aup = a.parentNode,
 
			bup = b.parentNode,
 
			ap = [ a ],
 
			bp = [ b ];
 

	
 
		// Parentless nodes are either documents or disconnected
 
		if ( !aup || !bup ) {
 
			return a === document ? -1 :
 
				b === document ? 1 :
 
				aup ? -1 :
 
				bup ? 1 :
 
				sortInput ?
 
				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
 
				0;
 

	
 
		// If the nodes are siblings, we can do a quick check
 
		} else if ( aup === bup ) {
 
			return siblingCheck( a, b );
 
		}
 

	
 
		// Otherwise we need full lists of their ancestors for comparison
 
		cur = a;
 
		while ( (cur = cur.parentNode) ) {
 
			ap.unshift( cur );
 
		}
 
		cur = b;
 
		while ( (cur = cur.parentNode) ) {
 
			bp.unshift( cur );
 
		}
 

	
 
		// Walk down the tree looking for a discrepancy
 
		while ( ap[i] === bp[i] ) {
 
			i++;
 
		}
 

	
 
		return i ?
 
			// Do a sibling check if the nodes have a common ancestor
 
			siblingCheck( ap[i], bp[i] ) :
 

	
 
			// Otherwise nodes in our document sort first
 
			ap[i] === preferredDoc ? -1 :
 
			bp[i] === preferredDoc ? 1 :
 
			0;
 
	};
 

	
 
	return document;
 
};
 

	
 
Sizzle.matches = function( expr, elements ) {
 
	return Sizzle( expr, null, null, elements );
 
};
 

	
 
Sizzle.matchesSelector = function( elem, expr ) {
 
	// Set document vars if needed
 
	if ( ( elem.ownerDocument || elem ) !== document ) {
 
		setDocument( elem );
 
	}
 

	
 
	// Make sure that attribute selectors are quoted
 
	expr = expr.replace( rattributeQuotes, "='$1']" );
 

	
 
	if ( support.matchesSelector && documentIsHTML &&
 
		!compilerCache[ expr + " " ] &&
 
		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
 
		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
 

	
 
		try {
 
			var ret = matches.call( elem, expr );
 

	
 
			// IE 9's matchesSelector returns false on disconnected nodes
 
			if ( ret || support.disconnectedMatch ||
 
					// As well, disconnected nodes are said to be in a document
 
					// fragment in IE 9
 
					elem.document && elem.document.nodeType !== 11 ) {
 
				return ret;
 
			}
 
		} catch (e) {}
 
	}
 

	
 
	return Sizzle( expr, document, null, [ elem ] ).length > 0;
 
};
 

	
 
Sizzle.contains = function( context, elem ) {
 
	// Set document vars if needed
 
	if ( ( context.ownerDocument || context ) !== document ) {
 
		setDocument( context );
 
	}
 
	return contains( context, elem );
 
};
 

	
 
Sizzle.attr = function( elem, name ) {
 
	// Set document vars if needed
 
	if ( ( elem.ownerDocument || elem ) !== document ) {
 
		setDocument( elem );
 
	}
 

	
 
	var fn = Expr.attrHandle[ name.toLowerCase() ],
 
		// Don't get fooled by Object.prototype properties (jQuery #13807)
 
		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
 
			fn( elem, name, !documentIsHTML ) :
 
			undefined;
 

	
 
	return val !== undefined ?
 
		val :
 
		support.attributes || !documentIsHTML ?
 
			elem.getAttribute( name ) :
 
			(val = elem.getAttributeNode(name)) && val.specified ?
 
				val.value :
 
				null;
 
};
 

	
 
Sizzle.error = function( msg ) {
 
	throw new Error( "Syntax error, unrecognized expression: " + msg );
 
};
 

	
 
/**
 
 * Document sorting and removing duplicates
 
 * @param {ArrayLike} results
 
 */
 
Sizzle.uniqueSort = function( results ) {
 
	var elem,
 
		duplicates = [],
 
		j = 0,
 
		i = 0;
 

	
 
	// Unless we *know* we can detect duplicates, assume their presence
 
	hasDuplicate = !support.detectDuplicates;
 
	sortInput = !support.sortStable && results.slice( 0 );
 
	results.sort( sortOrder );
 

	
 
	if ( hasDuplicate ) {
 
		while ( (elem = results[i++]) ) {
 
			if ( elem === results[ i ] ) {
 
				j = duplicates.push( i );
 
			}
 
		}
 
		while ( j-- ) {
 
			results.splice( duplicates[ j ], 1 );
 
		}
 
	}
 

	
 
	// Clear input after sorting to release objects
 
	// See https://github.com/jquery/sizzle/pull/225
 
	sortInput = null;
 

	
 
	return results;
 
};
 

	
 
/**
 
 * Utility function for retrieving the text value of an array of DOM nodes
 
 * @param {Array|Element} elem
 
 */
 
getText = Sizzle.getText = function( elem ) {
 
	var node,
 
		ret = "",
 
		i = 0,
 
		nodeType = elem.nodeType;
 

	
 
	if ( !nodeType ) {
 
		// If no nodeType, this is expected to be an array
 
		while ( (node = elem[i++]) ) {
 
			// Do not traverse comment nodes
 
			ret += getText( node );
 
		}
 
	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
 
		// Use textContent for elements
 
		// innerText usage removed for consistency of new lines (jQuery #11153)
 
		if ( typeof elem.textContent === "string" ) {
 
			return elem.textContent;
 
		} else {
 
			// Traverse its children
 
			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
 
				ret += getText( elem );
 
			}
 
		}
 
	} else if ( nodeType === 3 || nodeType === 4 ) {
 
		return elem.nodeValue;
 
	}
 
	// Do not include comment or processing instruction nodes
 

	
 
	return ret;
 
};
 

	
 
Expr = Sizzle.selectors = {
 

	
 
	// Can be adjusted by the user
 
	cacheLength: 50,
 

	
 
	createPseudo: markFunction,
 

	
 
	match: matchExpr,
 

	
 
	attrHandle: {},
 

	
 
	find: {},
 

	
 
	relative: {
 
		">": { dir: "parentNode", first: true },
 
		" ": { dir: "parentNode" },
 
		"+": { dir: "previousSibling", first: true },
 
		"~": { dir: "previousSibling" }
 
	},
 

	
 
	preFilter: {
 
		"ATTR": function( match ) {
 
			match[1] = match[1].replace( runescape, funescape );
 

	
 
			// Move the given value to match[3] whether quoted or unquoted
 
			match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
 

	
 
			if ( match[2] === "~=" ) {
 
				match[3] = " " + match[3] + " ";
 
			}
 

	
 
			return match.slice( 0, 4 );
 
		},
 

	
 
		"CHILD": function( match ) {
 
			/* matches from matchExpr["CHILD"]
 
				1 type (only|nth|...)
 
				2 what (child|of-type)
 
				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
 
				4 xn-component of xn+y argument ([+-]?\d*n|)
 
				5 sign of xn-component
 
				6 x of xn-component
 
				7 sign of y-component
 
				8 y of y-component
 
			*/
 
			match[1] = match[1].toLowerCase();
 

	
 
			if ( match[1].slice( 0, 3 ) === "nth" ) {
 
				// nth-* requires argument
 
				if ( !match[3] ) {
 
					Sizzle.error( match[0] );
 
				}
 

	
 
				// numeric x and y parameters for Expr.filter.CHILD
 
				// remember that false/true cast respectively to 0/1
 
				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
 
				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
 

	
 
			// other types prohibit arguments
 
			} else if ( match[3] ) {
 
				Sizzle.error( match[0] );
 
			}
 

	
 
			return match;
 
		},
 

	
 
		"PSEUDO": function( match ) {
 
			var excess,
 
				unquoted = !match[6] && match[2];
 

	
 
			if ( matchExpr["CHILD"].test( match[0] ) ) {
 
				return null;
 
			}
 

	
 
			// Accept quoted arguments as-is
 
			if ( match[3] ) {
 
				match[2] = match[4] || match[5] || "";
 

	
 
			// Strip excess characters from unquoted arguments
 
			} else if ( unquoted && rpseudo.test( unquoted ) &&
 
				// Get excess from tokenize (recursively)
 
				(excess = tokenize( unquoted, true )) &&
 
				// advance to the next closing parenthesis
 
				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
 

	
 
				// excess is a negative index
 
				match[0] = match[0].slice( 0, excess );
 
				match[2] = unquoted.slice( 0, excess );
 
			}
 

	
 
			// Return only captures needed by the pseudo filter method (type and argument)
 
			return match.slice( 0, 3 );
 
		}
 
	},
 

	
 
	filter: {
 

	
 
		"TAG": function( nodeNameSelector ) {
 
			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
 
			return nodeNameSelector === "*" ?
 
				function() { return true; } :
 
				function( elem ) {
 
					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
 
				};
 
		},
 

	
 
		"CLASS": function( className ) {
 
			var pattern = classCache[ className + " " ];
 

	
 
			return pattern ||
 
				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
 
				classCache( className, function( elem ) {
 
					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
 
				});
 
		},
 

	
 
		"ATTR": function( name, operator, check ) {
 
			return function( elem ) {
 
				var result = Sizzle.attr( elem, name );
 

	
 
				if ( result == null ) {
 
					return operator === "!=";
 
				}
 
				if ( !operator ) {
 
					return true;
 
				}
 

	
 
				result += "";
 

	
 
				return operator === "=" ? result === check :
 
					operator === "!=" ? result !== check :
 
					operator === "^=" ? check && result.indexOf( check ) === 0 :
 
					operator === "*=" ? check && result.indexOf( check ) > -1 :
 
					operator === "$=" ? check && result.slice( -check.length ) === check :
 
					operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
 
					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
 
					false;
 
			};
 
		},
 

	
 
		"CHILD": function( type, what, argument, first, last ) {
 
			var simple = type.slice( 0, 3 ) !== "nth",
 
				forward = type.slice( -4 ) !== "last",
 
				ofType = what === "of-type";
 

	
 
			return first === 1 && last === 0 ?
 

	
 
				// Shortcut for :nth-*(n)
 
				function( elem ) {
 
					return !!elem.parentNode;
 
				} :
 

	
 
				function( elem, context, xml ) {
 
					var cache, uniqueCache, outerCache, node, nodeIndex, start,
 
						dir = simple !== forward ? "nextSibling" : "previousSibling",
 
						parent = elem.parentNode,
 
						name = ofType && elem.nodeName.toLowerCase(),
 
						useCache = !xml && !ofType,
 
						diff = false;
 

	
 
					if ( parent ) {
 

	
 
						// :(first|last|only)-(child|of-type)
 
						if ( simple ) {
 
							while ( dir ) {
 
								node = elem;
 
								while ( (node = node[ dir ]) ) {
 
									if ( ofType ?
 
										node.nodeName.toLowerCase() === name :
 
										node.nodeType === 1 ) {
 

	
 
										return false;
 
									}
 
								}
 
								// Reverse direction for :only-* (if we haven't yet done so)
 
								start = dir = type === "only" && !start && "nextSibling";
 
							}
 
							return true;
 
						}
 

	
 
						start = [ forward ? parent.firstChild : parent.lastChild ];
 

	
 
						// non-xml :nth-child(...) stores cache data on `parent`
 
						if ( forward && useCache ) {
 

	
 
							// Seek `elem` from a previously-cached index
 

	
 
							// ...in a gzip-friendly way
 
							node = parent;
 
							outerCache = node[ expando ] || (node[ expando ] = {});
 

	
 
							// Support: IE <9 only
 
							// Defend against cloned attroperties (jQuery gh-1709)
 
							uniqueCache = outerCache[ node.uniqueID ] ||
 
								(outerCache[ node.uniqueID ] = {});
 

	
 
							cache = uniqueCache[ type ] || [];
 
							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
 
							diff = nodeIndex && cache[ 2 ];
 
							node = nodeIndex && parent.childNodes[ nodeIndex ];
 

	
 
							while ( (node = ++nodeIndex && node && node[ dir ] ||
 

	
 
								// Fallback to seeking `elem` from the start
 
								(diff = nodeIndex = 0) || start.pop()) ) {
 

	
 
								// When found, cache indexes on `parent` and break
 
								if ( node.nodeType === 1 && ++diff && node === elem ) {
 
									uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
 
									break;
 
								}
 
							}
 

	
 
						} else {
 
							// Use previously-cached element index if available
 
							if ( useCache ) {
 
								// ...in a gzip-friendly way
 
								node = elem;
 
								outerCache = node[ expando ] || (node[ expando ] = {});
 

	
 
								// Support: IE <9 only
 
								// Defend against cloned attroperties (jQuery gh-1709)
 
								uniqueCache = outerCache[ node.uniqueID ] ||
 
									(outerCache[ node.uniqueID ] = {});
 

	
 
								cache = uniqueCache[ type ] || [];
 
								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
 
								diff = nodeIndex;
 
							}
 

	
 
							// xml :nth-child(...)
 
							// or :nth-last-child(...) or :nth(-last)?-of-type(...)
 
							if ( diff === false ) {
 
								// Use the same loop as above to seek `elem` from the start
 
								while ( (node = ++nodeIndex && node && node[ dir ] ||
 
									(diff = nodeIndex = 0) || start.pop()) ) {
 

	
 
									if ( ( ofType ?
 
										node.nodeName.toLowerCase() === name :
 
										node.nodeType === 1 ) &&
 
										++diff ) {
 

	
 
										// Cache the index of each encountered element
 
										if ( useCache ) {
 
											outerCache = node[ expando ] || (node[ expando ] = {});
 

	
 
											// Support: IE <9 only
 
											// Defend against cloned attroperties (jQuery gh-1709)
 
											uniqueCache = outerCache[ node.uniqueID ] ||
 
												(outerCache[ node.uniqueID ] = {});
 

	
 
											uniqueCache[ type ] = [ dirruns, diff ];
 
										}
 

	
 
										if ( node === elem ) {
 
											break;
 
										}
 
									}
 
								}
 
							}
 
						}
 

	
 
						// Incorporate the offset, then check against cycle size
 
						diff -= last;
 
						return diff === first || ( diff % first === 0 && diff / first >= 0 );
 
					}
 
				};
 
		},
 

	
 
		"PSEUDO": function( pseudo, argument ) {
 
			// pseudo-class names are case-insensitive
 
			// http://www.w3.org/TR/selectors/#pseudo-classes
 
			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
 
			// Remember that setFilters inherits from pseudos
 
			var args,
 
				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
 
					Sizzle.error( "unsupported pseudo: " + pseudo );
 

	
 
			// The user may use createPseudo to indicate that
 
			// arguments are needed to create the filter function
 
			// just as Sizzle does
 
			if ( fn[ expando ] ) {
 
				return fn( argument );
 
			}
 

	
 
			// But maintain support for old signatures
 
			if ( fn.length > 1 ) {
 
				args = [ pseudo, pseudo, "", argument ];
 
				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
 
					markFunction(function( seed, matches ) {
 
						var idx,
 
							matched = fn( seed, argument ),
 
							i = matched.length;
 
						while ( i-- ) {
 
							idx = indexOf( seed, matched[i] );
 
							seed[ idx ] = !( matches[ idx ] = matched[i] );
 
						}
 
					}) :
 
					function( elem ) {
 
						return fn( elem, 0, args );
 
					};
 
			}
 

	
 
			return fn;
 
		}
 
	},
 

	
 
	pseudos: {
 
		// Potentially complex pseudos
 
		"not": markFunction(function( selector ) {
 
			// Trim the selector passed to compile
 
			// to avoid treating leading and trailing
 
			// spaces as combinators
 
			var input = [],
 
				results = [],
 
				matcher = compile( selector.replace( rtrim, "$1" ) );
 

	
 
			return matcher[ expando ] ?
 
				markFunction(function( seed, matches, context, xml ) {
 
					var elem,
 
						unmatched = matcher( seed, null, xml, [] ),
 
						i = seed.length;
 

	
 
					// Match elements unmatched by `matcher`
 
					while ( i-- ) {
 
						if ( (elem = unmatched[i]) ) {
 
							seed[i] = !(matches[i] = elem);
 
						}
 
					}
 
				}) :
 
				function( elem, context, xml ) {
 
					input[0] = elem;
 
					matcher( input, null, xml, results );
 
					// Don't keep the element (issue #299)
 
					input[0] = null;
 
					return !results.pop();
 
				};
 
		}),
 

	
 
		"has": markFunction(function( selector ) {
 
			return function( elem ) {
 
				return Sizzle( selector, elem ).length > 0;
 
			};
 
		}),
 

	
 
		"contains": markFunction(function( text ) {
 
			text = text.replace( runescape, funescape );
 
			return function( elem ) {
 
				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
 
			};
 
		}),
 

	
 
		// "Whether an element is represented by a :lang() selector
 
		// is based solely on the element's language value
 
		// being equal to the identifier C,
 
		// or beginning with the identifier C immediately followed by "-".
 
		// The matching of C against the element's language value is performed case-insensitively.
 
		// The identifier C does not have to be a valid language name."
 
		// http://www.w3.org/TR/selectors/#lang-pseudo
 
		"lang": markFunction( function( lang ) {
 
			// lang value must be a valid identifier
 
			if ( !ridentifier.test(lang || "") ) {
 
				Sizzle.error( "unsupported lang: " + lang );
 
			}
 
			lang = lang.replace( runescape, funescape ).toLowerCase();
 
			return function( elem ) {
 
				var elemLang;
 
				do {
 
					if ( (elemLang = documentIsHTML ?
 
						elem.lang :
 
						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
 

	
 
						elemLang = elemLang.toLowerCase();
 
						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
 
					}
 
				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
 
				return false;
 
			};
 
		}),
 

	
 
		// Miscellaneous
 
		"target": function( elem ) {
 
			var hash = window.location && window.location.hash;
 
			return hash && hash.slice( 1 ) === elem.id;
 
		},
 

	
 
		"root": function( elem ) {
 
			return elem === docElem;
 
		},
 

	
 
		"focus": function( elem ) {
 
			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
 
		},
 

	
 
		// Boolean properties
 
		"enabled": function( elem ) {
 
			return elem.disabled === false;
 
		},
 

	
 
		"disabled": function( elem ) {
 
			return elem.disabled === true;
 
		},
 

	
 
		"checked": function( elem ) {
 
			// In CSS3, :checked should return both checked and selected elements
 
			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
 
			var nodeName = elem.nodeName.toLowerCase();
 
			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
 
		},
 

	
 
		"selected": function( elem ) {
 
			// Accessing this property makes selected-by-default
 
			// options in Safari work properly
 
			if ( elem.parentNode ) {
 
				elem.parentNode.selectedIndex;
 
			}
 

	
 
			return elem.selected === true;
 
		},
 

	
 
		// Contents
 
		"empty": function( elem ) {
 
			// http://www.w3.org/TR/selectors/#empty-pseudo
 
			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
 
			//   but not by others (comment: 8; processing instruction: 7; etc.)
 
			// nodeType < 6 works because attributes (2) do not appear as children
 
			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
 
				if ( elem.nodeType < 6 ) {
 
					return false;
 
				}
 
			}
 
			return true;
 
		},
 

	
 
		"parent": function( elem ) {
 
			return !Expr.pseudos["empty"]( elem );
 
		},
 

	
 
		// Element/input types
 
		"header": function( elem ) {
 
			return rheader.test( elem.nodeName );
 
		},
 

	
 
		"input": function( elem ) {
 
			return rinputs.test( elem.nodeName );
 
		},
 

	
 
		"button": function( elem ) {
 
			var name = elem.nodeName.toLowerCase();
 
			return name === "input" && elem.type === "button" || name === "button";
 
		},
 

	
 
		"text": function( elem ) {
 
			var attr;
 
			return elem.nodeName.toLowerCase() === "input" &&
 
				elem.type === "text" &&
 

	
 
				// Support: IE<8
 
				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
 
				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
 
		},
 

	
 
		// Position-in-collection
 
		"first": createPositionalPseudo(function() {
 
			return [ 0 ];
 
		}),
 

	
 
		"last": createPositionalPseudo(function( matchIndexes, length ) {
 
			return [ length - 1 ];
 
		}),
 

	
 
		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
 
			return [ argument < 0 ? argument + length : argument ];
 
		}),
 

	
 
		"even": createPositionalPseudo(function( matchIndexes, length ) {
 
			var i = 0;
 
			for ( ; i < length; i += 2 ) {
 
				matchIndexes.push( i );
 
			}
 
			return matchIndexes;
 
		}),
 

	
 
		"odd": createPositionalPseudo(function( matchIndexes, length ) {
 
			var i = 1;
 
			for ( ; i < length; i += 2 ) {
 
				matchIndexes.push( i );
 
			}
 
			return matchIndexes;
 
		}),
 

	
 
		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
 
			var i = argument < 0 ? argument + length : argument;
 
			for ( ; --i >= 0; ) {
 
				matchIndexes.push( i );
 
			}
 
			return matchIndexes;
 
		}),
 

	
 
		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
 
			var i = argument < 0 ? argument + length : argument;
 
			for ( ; ++i < length; ) {
 
				matchIndexes.push( i );
 
			}
 
			return matchIndexes;
 
		})
 
	}
 
};
 

	
 
Expr.pseudos["nth"] = Expr.pseudos["eq"];
 

	
 
// Add button/input type pseudos
 
for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
 
	Expr.pseudos[ i ] = createInputPseudo( i );
 
}
 
for ( i in { submit: true, reset: true } ) {
 
	Expr.pseudos[ i ] = createButtonPseudo( i );
 
}
 

	
 
// Easy API for creating new setFilters
 
function setFilters() {}
 
setFilters.prototype = Expr.filters = Expr.pseudos;
 
Expr.setFilters = new setFilters();
 

	
 
tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
 
	var matched, match, tokens, type,
 
		soFar, groups, preFilters,
 
		cached = tokenCache[ selector + " " ];
 

	
 
	if ( cached ) {
 
		return parseOnly ? 0 : cached.slice( 0 );
 
	}
 

	
 
	soFar = selector;
 
	groups = [];
 
	preFilters = Expr.preFilter;
 

	
 
	while ( soFar ) {
 

	
 
		// Comma and first run
 
		if ( !matched || (match = rcomma.exec( soFar )) ) {
 
			if ( match ) {
 
				// Don't consume trailing commas as valid
 
				soFar = soFar.slice( match[0].length ) || soFar;
 
			}
 
			groups.push( (tokens = []) );
 
		}
 

	
 
		matched = false;
 

	
 
		// Combinators
 
		if ( (match = rcombinators.exec( soFar )) ) {
 
			matched = match.shift();
 
			tokens.push({
 
				value: matched,
 
				// Cast descendant combinators to space
 
				type: match[0].replace( rtrim, " " )
 
			});
 
			soFar = soFar.slice( matched.length );
 
		}
 

	
 
		// Filters
 
		for ( type in Expr.filter ) {
 
			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
 
				(match = preFilters[ type ]( match ))) ) {
 
				matched = match.shift();
 
				tokens.push({
 
					value: matched,
 
					type: type,
 
					matches: match
 
				});
 
				soFar = soFar.slice( matched.length );
 
			}
 
		}
 

	
 
		if ( !matched ) {
 
			break;
 
		}
 
	}
 

	
 
	// Return the length of the invalid excess
 
	// if we're just parsing
 
	// Otherwise, throw an error or return tokens
 
	return parseOnly ?
 
		soFar.length :
 
		soFar ?
 
			Sizzle.error( selector ) :
 
			// Cache the tokens
 
			tokenCache( selector, groups ).slice( 0 );
 
};
 

	
 
function toSelector( tokens ) {
 
	var i = 0,
 
		len = tokens.length,
 
		selector = "";
 
	for ( ; i < len; i++ ) {
 
		selector += tokens[i].value;
 
	}
 
	return selector;
 
}
 

	
 
function addCombinator( matcher, combinator, base ) {
 
	var dir = combinator.dir,
 
		checkNonElements = base && dir === "parentNode",
 
		doneName = done++;
 

	
 
	return combinator.first ?
 
		// Check against closest ancestor/preceding element
 
		function( elem, context, xml ) {
 
			while ( (elem = elem[ dir ]) ) {
 
				if ( elem.nodeType === 1 || checkNonElements ) {
 
					return matcher( elem, context, xml );
 
				}
 
			}
 
		} :
 

	
 
		// Check against all ancestor/preceding elements
 
		function( elem, context, xml ) {
 
			var oldCache, uniqueCache, outerCache,
 
				newCache = [ dirruns, doneName ];
 

	
 
			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
 
			if ( xml ) {
 
				while ( (elem = elem[ dir ]) ) {
 
					if ( elem.nodeType === 1 || checkNonElements ) {
 
						if ( matcher( elem, context, xml ) ) {
 
							return true;
 
						}
 
					}
 
				}
 
			} else {
 
				while ( (elem = elem[ dir ]) ) {
 
					if ( elem.nodeType === 1 || checkNonElements ) {
 
						outerCache = elem[ expando ] || (elem[ expando ] = {});
 

	
 
						// Support: IE <9 only
 
						// Defend against cloned attroperties (jQuery gh-1709)
 
						uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
 

	
 
						if ( (oldCache = uniqueCache[ dir ]) &&
 
							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
 

	
 
							// Assign to newCache so results back-propagate to previous elements
 
							return (newCache[ 2 ] = oldCache[ 2 ]);
 
						} else {
 
							// Reuse newcache so results back-propagate to previous elements
 
							uniqueCache[ dir ] = newCache;
 

	
 
							// A match means we're done; a fail means we have to keep checking
 
							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
 
								return true;
 
							}
 
						}
 
					}
 
				}
 
			}
 
		};
 
}
 

	
 
function elementMatcher( matchers ) {
 
	return matchers.length > 1 ?
 
		function( elem, context, xml ) {
 
			var i = matchers.length;
 
			while ( i-- ) {
 
				if ( !matchers[i]( elem, context, xml ) ) {
 
					return false;
 
				}
 
			}
 
			return true;
 
		} :
 
		matchers[0];
 
}
 

	
 
function multipleContexts( selector, contexts, results ) {
 
	var i = 0,
 
		len = contexts.length;
 
	for ( ; i < len; i++ ) {
 
		Sizzle( selector, contexts[i], results );
 
	}
 
	return results;
 
}
 

	
 
function condense( unmatched, map, filter, context, xml ) {
 
	var elem,
 
		newUnmatched = [],
 
		i = 0,
 
		len = unmatched.length,
 
		mapped = map != null;
 

	
 
	for ( ; i < len; i++ ) {
 
		if ( (elem = unmatched[i]) ) {
 
			if ( !filter || filter( elem, context, xml ) ) {
 
				newUnmatched.push( elem );
 
				if ( mapped ) {
 
					map.push( i );
 
				}
 
			}
 
		}
 
	}
 

	
 
	return newUnmatched;
 
}
 

	
 
function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
 
	if ( postFilter && !postFilter[ expando ] ) {
 
		postFilter = setMatcher( postFilter );
 
	}
 
	if ( postFinder && !postFinder[ expando ] ) {
 
		postFinder = setMatcher( postFinder, postSelector );
 
	}
 
	return markFunction(function( seed, results, context, xml ) {
 
		var temp, i, elem,
 
			preMap = [],
 
			postMap = [],
 
			preexisting = results.length,
 

	
 
			// Get initial elements from seed or context
 
			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
 

	
 
			// Prefilter to get matcher input, preserving a map for seed-results synchronization
 
			matcherIn = preFilter && ( seed || !selector ) ?
 
				condense( elems, preMap, preFilter, context, xml ) :
 
				elems,
 

	
 
			matcherOut = matcher ?
 
				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
 
				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
 

	
 
					// ...intermediate processing is necessary
 
					[] :
 

	
 
					// ...otherwise use results directly
 
					results :
 
				matcherIn;
 

	
 
		// Find primary matches
 
		if ( matcher ) {
 
			matcher( matcherIn, matcherOut, context, xml );
 
		}
 

	
 
		// Apply postFilter
 
		if ( postFilter ) {
 
			temp = condense( matcherOut, postMap );
 
			postFilter( temp, [], context, xml );
 

	
 
			// Un-match failing elements by moving them back to matcherIn
 
			i = temp.length;
 
			while ( i-- ) {
 
				if ( (elem = temp[i]) ) {
 
					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
 
				}
 
			}
 
		}
 

	
 
		if ( seed ) {
 
			if ( postFinder || preFilter ) {
 
				if ( postFinder ) {
 
					// Get the final matcherOut by condensing this intermediate into postFinder contexts
 
					temp = [];
 
					i = matcherOut.length;
 
					while ( i-- ) {
 
						if ( (elem = matcherOut[i]) ) {
 
							// Restore matcherIn since elem is not yet a final match
 
							temp.push( (matcherIn[i] = elem) );
 
						}
 
					}
 
					postFinder( null, (matcherOut = []), temp, xml );
 
				}
 

	
 
				// Move matched elements from seed to results to keep them synchronized
 
				i = matcherOut.length;
 
				while ( i-- ) {
 
					if ( (elem = matcherOut[i]) &&
 
						(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
 

	
 
						seed[temp] = !(results[temp] = elem);
 
					}
 
				}
 
			}
 

	
 
		// Add elements to results, through postFinder if defined
 
		} else {
 
			matcherOut = condense(
 
				matcherOut === results ?
 
					matcherOut.splice( preexisting, matcherOut.length ) :
 
					matcherOut
 
			);
 
			if ( postFinder ) {
 
				postFinder( null, results, matcherOut, xml );
 
			} else {
 
				push.apply( results, matcherOut );
 
			}
 
		}
 
	});
 
}
 

	
 
function matcherFromTokens( tokens ) {
 
	var checkContext, matcher, j,
 
		len = tokens.length,
 
		leadingRelative = Expr.relative[ tokens[0].type ],
 
		implicitRelative = leadingRelative || Expr.relative[" "],
 
		i = leadingRelative ? 1 : 0,
 

	
 
		// The foundational matcher ensures that elements are reachable from top-level context(s)
 
		matchContext = addCombinator( function( elem ) {
 
			return elem === checkContext;
 
		}, implicitRelative, true ),
 
		matchAnyContext = addCombinator( function( elem ) {
 
			return indexOf( checkContext, elem ) > -1;
 
		}, implicitRelative, true ),
 
		matchers = [ function( elem, context, xml ) {
 
			var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
 
				(checkContext = context).nodeType ?
 
					matchContext( elem, context, xml ) :
 
					matchAnyContext( elem, context, xml ) );
 
			// Avoid hanging onto element (issue #299)
 
			checkContext = null;
 
			return ret;
 
		} ];
 

	
 
	for ( ; i < len; i++ ) {
 
		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
 
			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
 
		} else {
 
			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
 

	
 
			// Return special upon seeing a positional matcher
 
			if ( matcher[ expando ] ) {
 
				// Find the next relative operator (if any) for proper handling
 
				j = ++i;
 
				for ( ; j < len; j++ ) {
 
					if ( Expr.relative[ tokens[j].type ] ) {
 
						break;
 
					}
 
				}
 
				return setMatcher(
 
					i > 1 && elementMatcher( matchers ),
 
					i > 1 && toSelector(
 
						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
 
						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
 
					).replace( rtrim, "$1" ),
 
					matcher,
 
					i < j && matcherFromTokens( tokens.slice( i, j ) ),
 
					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
 
					j < len && toSelector( tokens )
 
				);
 
			}
 
			matchers.push( matcher );
 
		}
 
	}
 

	
 
	return elementMatcher( matchers );
 
}
 

	
 
function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
 
	var bySet = setMatchers.length > 0,
 
		byElement = elementMatchers.length > 0,
 
		superMatcher = function( seed, context, xml, results, outermost ) {
 
			var elem, j, matcher,
 
				matchedCount = 0,
 
				i = "0",
 
				unmatched = seed && [],
 
				setMatched = [],
 
				contextBackup = outermostContext,
 
				// We must always have either seed elements or outermost context
 
				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
 
				// Use integer dirruns iff this is the outermost matcher
 
				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
 
				len = elems.length;
 

	
 
			if ( outermost ) {
 
				outermostContext = context === document || context || outermost;
 
			}
 

	
 
			// Add elements passing elementMatchers directly to results
 
			// Support: IE<9, Safari
 
			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
 
			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
 
				if ( byElement && elem ) {
 
					j = 0;
 
					if ( !context && elem.ownerDocument !== document ) {
 
						setDocument( elem );
 
						xml = !documentIsHTML;
 
					}
 
					while ( (matcher = elementMatchers[j++]) ) {
 
						if ( matcher( elem, context || document, xml) ) {
 
							results.push( elem );
 
							break;
 
						}
 
					}
 
					if ( outermost ) {
 
						dirruns = dirrunsUnique;
 
					}
 
				}
 

	
 
				// Track unmatched elements for set filters
 
				if ( bySet ) {
 
					// They will have gone through all possible matchers
 
					if ( (elem = !matcher && elem) ) {
 
						matchedCount--;
 
					}
 

	
 
					// Lengthen the array for every element, matched or not
 
					if ( seed ) {
 
						unmatched.push( elem );
 
					}
 
				}
 
			}
 

	
 
			// `i` is now the count of elements visited above, and adding it to `matchedCount`
 
			// makes the latter nonnegative.
 
			matchedCount += i;
 

	
 
			// Apply set filters to unmatched elements
 
			// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
 
			// equals `i`), unless we didn't visit _any_ elements in the above loop because we have
 
			// no element matchers and no seed.
 
			// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
 
			// case, which will result in a "00" `matchedCount` that differs from `i` but is also
 
			// numerically zero.
 
			if ( bySet && i !== matchedCount ) {
 
				j = 0;
 
				while ( (matcher = setMatchers[j++]) ) {
 
					matcher( unmatched, setMatched, context, xml );
 
				}
 

	
 
				if ( seed ) {
 
					// Reintegrate element matches to eliminate the need for sorting
 
					if ( matchedCount > 0 ) {
 
						while ( i-- ) {
 
							if ( !(unmatched[i] || setMatched[i]) ) {
 
								setMatched[i] = pop.call( results );
 
							}
 
						}
 
					}
 

	
 
					// Discard index placeholder values to get only actual matches
 
					setMatched = condense( setMatched );
 
				}
 

	
 
				// Add matches to results
 
				push.apply( results, setMatched );
 

	
 
				// Seedless set matches succeeding multiple successful matchers stipulate sorting
 
				if ( outermost && !seed && setMatched.length > 0 &&
 
					( matchedCount + setMatchers.length ) > 1 ) {
 

	
 
					Sizzle.uniqueSort( results );
 
				}
 
			}
 

	
 
			// Override manipulation of globals by nested matchers
 
			if ( outermost ) {
 
				dirruns = dirrunsUnique;
 
				outermostContext = contextBackup;
 
			}
 

	
 
			return unmatched;
 
		};
 

	
 
	return bySet ?
 
		markFunction( superMatcher ) :
 
		superMatcher;
 
}
 

	
 
compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
 
	var i,
 
		setMatchers = [],
 
		elementMatchers = [],
 
		cached = compilerCache[ selector + " " ];
 

	
 
	if ( !cached ) {
 
		// Generate a function of recursive functions that can be used to check each element
 
		if ( !match ) {
 
			match = tokenize( selector );
 
		}
 
		i = match.length;
 
		while ( i-- ) {
 
			cached = matcherFromTokens( match[i] );
 
			if ( cached[ expando ] ) {
 
				setMatchers.push( cached );
 
			} else {
 
				elementMatchers.push( cached );
 
			}
 
		}
 

	
 
		// Cache the compiled function
 
		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
 

	
 
		// Save selector and tokenization
 
		cached.selector = selector;
 
	}
 
	return cached;
 
};
 

	
 
/**
 
 * A low-level selection function that works with Sizzle's compiled
 
 *  selector functions
 
 * @param {String|Function} selector A selector or a pre-compiled
 
 *  selector function built with Sizzle.compile
 
 * @param {Element} context
 
 * @param {Array} [results]
 
 * @param {Array} [seed] A set of elements to match against
 
 */
 
select = Sizzle.select = function( selector, context, results, seed ) {
 
	var i, tokens, token, type, find,
 
		compiled = typeof selector === "function" && selector,
 
		match = !seed && tokenize( (selector = compiled.selector || selector) );
 

	
 
	results = results || [];
 

	
 
	// Try to minimize operations if there is only one selector in the list and no seed
 
	// (the latter of which guarantees us context)
 
	if ( match.length === 1 ) {
 

	
 
		// Reduce context if the leading compound selector is an ID
 
		tokens = match[0] = match[0].slice( 0 );
 
		if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
 
				support.getById && context.nodeType === 9 && documentIsHTML &&
 
				Expr.relative[ tokens[1].type ] ) {
 

	
 
			context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
 
			if ( !context ) {
 
				return results;
 

	
 
			// Precompiled matchers will still verify ancestry, so step up a level
 
			} else if ( compiled ) {
 
				context = context.parentNode;
 
			}
 

	
 
			selector = selector.slice( tokens.shift().value.length );
 
		}
 

	
 
		// Fetch a seed set for right-to-left matching
 
		i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
 
		while ( i-- ) {
 
			token = tokens[i];
 

	
 
			// Abort if we hit a combinator
 
			if ( Expr.relative[ (type = token.type) ] ) {
 
				break;
 
			}
 
			if ( (find = Expr.find[ type ]) ) {
 
				// Search, expanding context for leading sibling combinators
 
				if ( (seed = find(
 
					token.matches[0].replace( runescape, funescape ),
 
					rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
 
				)) ) {
 

	
 
					// If seed is empty or no tokens remain, we can return early
 
					tokens.splice( i, 1 );
 
					selector = seed.length && toSelector( tokens );
 
					if ( !selector ) {
 
						push.apply( results, seed );
 
						return results;
 
					}
 

	
 
					break;
 
				}
 
			}
 
		}
 
	}
 

	
 
	// Compile and execute a filtering function if one is not provided
 
	// Provide `match` to avoid retokenization if we modified the selector above
 
	( compiled || compile( selector, match ) )(
 
		seed,
 
		context,
 
		!documentIsHTML,
 
		results,
 
		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
 
	);
 
	return results;
 
};
 

	
 
// One-time assignments
 

	
 
// Sort stability
 
support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
 

	
 
// Support: Chrome 14-35+
 
// Always assume duplicates if they aren't passed to the comparison function
 
support.detectDuplicates = !!hasDuplicate;
 

	
 
// Initialize against the default document
 
setDocument();
 

	
 
// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
 
// Detached nodes confoundingly follow *each other*
 
support.sortDetached = assert(function( div1 ) {
 
	// Should return 1, but returns 4 (following)
 
	return div1.compareDocumentPosition( document.createElement("div") ) & 1;
 
});
 

	
 
// Support: IE<8
 
// Prevent attribute/property "interpolation"
 
// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
 
if ( !assert(function( div ) {
 
	div.innerHTML = "<a href='#'></a>";
 
	return div.firstChild.getAttribute("href") === "#" ;
 
}) ) {
 
	addHandle( "type|href|height|width", function( elem, name, isXML ) {
 
		if ( !isXML ) {
 
			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
 
		}
 
	});
 
}
 

	
 
// Support: IE<9
 
// Use defaultValue in place of getAttribute("value")
 
if ( !support.attributes || !assert(function( div ) {
 
	div.innerHTML = "<input/>";
 
	div.firstChild.setAttribute( "value", "" );
 
	return div.firstChild.getAttribute( "value" ) === "";
 
}) ) {
 
	addHandle( "value", function( elem, name, isXML ) {
 
		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
 
			return elem.defaultValue;
 
		}
 
	});
 
}
 

	
 
// Support: IE<9
 
// Use getAttributeNode to fetch booleans when getAttribute lies
 
if ( !assert(function( div ) {
 
	return div.getAttribute("disabled") == null;
 
}) ) {
 
	addHandle( booleans, function( elem, name, isXML ) {
 
		var val;
 
		if ( !isXML ) {
 
			return elem[ name ] === true ? name.toLowerCase() :
 
					(val = elem.getAttributeNode( name )) && val.specified ?
 
					val.value :
 
				null;
 
		}
 
	});
 
}
 

	
 
return Sizzle;
 

	
 
})( window );
 

	
 

	
 

	
 
jQuery.find = Sizzle;
 
jQuery.expr = Sizzle.selectors;
 
jQuery.expr[ ":" ] = jQuery.expr.pseudos;
 
jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
 
jQuery.text = Sizzle.getText;
 
jQuery.isXMLDoc = Sizzle.isXML;
 
jQuery.contains = Sizzle.contains;
 

	
 

	
 

	
 
var dir = function( elem, dir, until ) {
 
	var matched = [],
 
		truncate = until !== undefined;
 

	
 
	while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
 
		if ( elem.nodeType === 1 ) {
 
			if ( truncate && jQuery( elem ).is( until ) ) {
 
				break;
 
			}
 
			matched.push( elem );
 
		}
 
	}
 
	return matched;
 
};
 

	
 

	
 
var siblings = function( n, elem ) {
 
	var matched = [];
 

	
 
	for ( ; n; n = n.nextSibling ) {
 
		if ( n.nodeType === 1 && n !== elem ) {
 
			matched.push( n );
 
		}
 
	}
 

	
 
	return matched;
 
};
 

	
 

	
 
var rneedsContext = jQuery.expr.match.needsContext;
 

	
 
var rsingleTag = ( /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/ );
 

	
 

	
 

	
 
var risSimple = /^.[^:#\[\.,]*$/;
 

	
 
// Implement the identical functionality for filter and not
 
function winnow( elements, qualifier, not ) {
 
	if ( jQuery.isFunction( qualifier ) ) {
 
		return jQuery.grep( elements, function( elem, i ) {
 
			/* jshint -W018 */
 
			return !!qualifier.call( elem, i, elem ) !== not;
 
		} );
 

	
 
	}
 

	
 
	if ( qualifier.nodeType ) {
 
		return jQuery.grep( elements, function( elem ) {
 
			return ( elem === qualifier ) !== not;
 
		} );
 

	
 
	}
 

	
 
	if ( typeof qualifier === "string" ) {
 
		if ( risSimple.test( qualifier ) ) {
 
			return jQuery.filter( qualifier, elements, not );
 
		}
 

	
 
		qualifier = jQuery.filter( qualifier, elements );
 
	}
 

	
 
	return jQuery.grep( elements, function( elem ) {
 
		return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
 
	} );
 
}
 

	
 
jQuery.filter = function( expr, elems, not ) {
 
	var elem = elems[ 0 ];
 

	
 
	if ( not ) {
 
		expr = ":not(" + expr + ")";
 
	}
 

	
 
	return elems.length === 1 && elem.nodeType === 1 ?
 
		jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
 
		jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
 
			return elem.nodeType === 1;
 
		} ) );
 
};
 

	
 
jQuery.fn.extend( {
 
	find: function( selector ) {
 
		var i,
 
			len = this.length,
 
			ret = [],
 
			self = this;
 

	
 
		if ( typeof selector !== "string" ) {
 
			return this.pushStack( jQuery( selector ).filter( function() {
 
				for ( i = 0; i < len; i++ ) {
 
					if ( jQuery.contains( self[ i ], this ) ) {
 
						return true;
 
					}
 
				}
 
			} ) );
 
		}
 

	
 
		for ( i = 0; i < len; i++ ) {
 
			jQuery.find( selector, self[ i ], ret );
 
		}
 

	
 
		// Needed because $( selector, context ) becomes $( context ).find( selector )
 
		ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
 
		ret.selector = this.selector ? this.selector + " " + selector : selector;
 
		return ret;
 
	},
 
	filter: function( selector ) {
 
		return this.pushStack( winnow( this, selector || [], false ) );
 
	},
 
	not: function( selector ) {
 
		return this.pushStack( winnow( this, selector || [], true ) );
 
	},
 
	is: function( selector ) {
 
		return !!winnow(
 
			this,
 

	
 
			// If this is a positional/relative selector, check membership in the returned set
 
			// so $("p:first").is("p:last") won't return true for a doc with two "p".
 
			typeof selector === "string" && rneedsContext.test( selector ) ?
 
				jQuery( selector ) :
 
				selector || [],
 
			false
 
		).length;
 
	}
 
} );
 

	
 

	
 
// Initialize a jQuery object
 

	
 

	
 
// A central reference to the root jQuery(document)
 
var rootjQuery,
 

	
 
	// A simple way to check for HTML strings
 
	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
 
	// Strict HTML recognition (#11290: must start with <)
 
	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
 

	
 
	init = jQuery.fn.init = function( selector, context, root ) {
 
		var match, elem;
 

	
 
		// HANDLE: $(""), $(null), $(undefined), $(false)
 
		if ( !selector ) {
 
			return this;
 
		}
 

	
 
		// Method init() accepts an alternate rootjQuery
 
		// so migrate can support jQuery.sub (gh-2101)
 
		root = root || rootjQuery;
 

	
 
		// Handle HTML strings
 
		if ( typeof selector === "string" ) {
 
			if ( selector[ 0 ] === "<" &&
 
				selector[ selector.length - 1 ] === ">" &&
 
				selector.length >= 3 ) {
 

	
 
				// Assume that strings that start and end with <> are HTML and skip the regex check
 
				match = [ null, selector, null ];
 

	
 
			} else {
 
				match = rquickExpr.exec( selector );
 
			}
 

	
 
			// Match html or make sure no context is specified for #id
 
			if ( match && ( match[ 1 ] || !context ) ) {
 

	
 
				// HANDLE: $(html) -> $(array)
 
				if ( match[ 1 ] ) {
 
					context = context instanceof jQuery ? context[ 0 ] : context;
 

	
 
					// Option to run scripts is true for back-compat
 
					// Intentionally let the error be thrown if parseHTML is not present
 
					jQuery.merge( this, jQuery.parseHTML(
 
						match[ 1 ],
 
						context && context.nodeType ? context.ownerDocument || context : document,
 
						true
 
					) );
 

	
 
					// HANDLE: $(html, props)
 
					if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
 
						for ( match in context ) {
 

	
 
							// Properties of context are called as methods if possible
 
							if ( jQuery.isFunction( this[ match ] ) ) {
 
								this[ match ]( context[ match ] );
 

	
 
							// ...and otherwise set as attributes
 
							} else {
 
								this.attr( match, context[ match ] );
 
							}
 
						}
 
					}
 

	
 
					return this;
 

	
 
				// HANDLE: $(#id)
 
				} else {
 
					elem = document.getElementById( match[ 2 ] );
 

	
 
					// Support: Blackberry 4.6
 
					// gEBID returns nodes no longer in the document (#6963)
 
					if ( elem && elem.parentNode ) {
 

	
 
						// Inject the element directly into the jQuery object
 
						this.length = 1;
 
						this[ 0 ] = elem;
 
					}
 

	
 
					this.context = document;
 
					this.selector = selector;
 
					return this;
 
				}
 

	
 
			// HANDLE: $(expr, $(...))
 
			} else if ( !context || context.jquery ) {
 
				return ( context || root ).find( selector );
 

	
 
			// HANDLE: $(expr, context)
 
			// (which is just equivalent to: $(context).find(expr)
 
			} else {
 
				return this.constructor( context ).find( selector );
 
			}
 

	
 
		// HANDLE: $(DOMElement)
 
		} else if ( selector.nodeType ) {
 
			this.context = this[ 0 ] = selector;
 
			this.length = 1;
 
			return this;
 

	
 
		// HANDLE: $(function)
 
		// Shortcut for document ready
 
		} else if ( jQuery.isFunction( selector ) ) {
 
			return root.ready !== undefined ?
 
				root.ready( selector ) :
 

	
 
				// Execute immediately if ready is not present
 
				selector( jQuery );
 
		}
 

	
 
		if ( selector.selector !== undefined ) {
 
			this.selector = selector.selector;
 
			this.context = selector.context;
 
		}
 

	
 
		return jQuery.makeArray( selector, this );
 
	};
 

	
 
// Give the init function the jQuery prototype for later instantiation
 
init.prototype = jQuery.fn;
 

	
 
// Initialize central reference
 
rootjQuery = jQuery( document );
 

	
 

	
 
var rparentsprev = /^(?:parents|prev(?:Until|All))/,
 

	
 
	// Methods guaranteed to produce a unique set when starting from a unique set
 
	guaranteedUnique = {
 
		children: true,
 
		contents: true,
 
		next: true,
 
		prev: true
 
	};
 

	
 
jQuery.fn.extend( {
 
	has: function( target ) {
 
		var targets = jQuery( target, this ),
 
			l = targets.length;
 

	
 
		return this.filter( function() {
 
			var i = 0;
 
			for ( ; i < l; i++ ) {
 
				if ( jQuery.contains( this, targets[ i ] ) ) {
 
					return true;
 
				}
 
			}
 
		} );
 
	},
 

	
 
	closest: function( selectors, context ) {
 
		var cur,
 
			i = 0,
 
			l = this.length,
 
			matched = [],
 
			pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
 
				jQuery( selectors, context || this.context ) :
 
				0;
 

	
 
		for ( ; i < l; i++ ) {
 
			for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
 

	
 
				// Always skip document fragments
 
				if ( cur.nodeType < 11 && ( pos ?
 
					pos.index( cur ) > -1 :
 

	
 
					// Don't pass non-elements to Sizzle
 
					cur.nodeType === 1 &&
 
						jQuery.find.matchesSelector( cur, selectors ) ) ) {
 

	
 
					matched.push( cur );
 
					break;
 
				}
 
			}
 
		}
 

	
 
		return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
 
	},
 

	
 
	// Determine the position of an element within the set
 
	index: function( elem ) {
 

	
 
		// No argument, return index in parent
 
		if ( !elem ) {
 
			return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
 
		}
 

	
 
		// Index in selector
 
		if ( typeof elem === "string" ) {
 
			return indexOf.call( jQuery( elem ), this[ 0 ] );
 
		}
 

	
 
		// Locate the position of the desired element
 
		return indexOf.call( this,
 

	
 
			// If it receives a jQuery object, the first element is used
 
			elem.jquery ? elem[ 0 ] : elem
 
		);
 
	},
 

	
 
	add: function( selector, context ) {
 
		return this.pushStack(
 
			jQuery.uniqueSort(
 
				jQuery.merge( this.get(), jQuery( selector, context ) )
 
			)
 
		);
 
	},
 

	
 
	addBack: function( selector ) {
 
		return this.add( selector == null ?
 
			this.prevObject : this.prevObject.filter( selector )
 
		);
 
	}
 
} );
 

	
 
function sibling( cur, dir ) {
 
	while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
 
	return cur;
 
}
 

	
 
jQuery.each( {
 
	parent: function( elem ) {
 
		var parent = elem.parentNode;
 
		return parent && parent.nodeType !== 11 ? parent : null;
 
	},
 
	parents: function( elem ) {
 
		return dir( elem, "parentNode" );
 
	},
 
	parentsUntil: function( elem, i, until ) {
 
		return dir( elem, "parentNode", until );
 
	},
 
	next: function( elem ) {
 
		return sibling( elem, "nextSibling" );
 
	},
 
	prev: function( elem ) {
 
		return sibling( elem, "previousSibling" );
 
	},
 
	nextAll: function( elem ) {
 
		return dir( elem, "nextSibling" );
 
	},
 
	prevAll: function( elem ) {
 
		return dir( elem, "previousSibling" );
 
	},
 
	nextUntil: function( elem, i, until ) {
 
		return dir( elem, "nextSibling", until );
 
	},
 
	prevUntil: function( elem, i, until ) {
 
		return dir( elem, "previousSibling", until );
 
	},
 
	siblings: function( elem ) {
 
		return siblings( ( elem.parentNode || {} ).firstChild, elem );
 
	},
 
	children: function( elem ) {
 
		return siblings( elem.firstChild );
 
	},
 
	contents: function( elem ) {
 
		return elem.contentDocument || jQuery.merge( [], elem.childNodes );
 
	}
 
}, function( name, fn ) {
 
	jQuery.fn[ name ] = function( until, selector ) {
 
		var matched = jQuery.map( this, fn, until );
 

	
 
		if ( name.slice( -5 ) !== "Until" ) {
 
			selector = until;
 
		}
 

	
 
		if ( selector && typeof selector === "string" ) {
 
			matched = jQuery.filter( selector, matched );
 
		}
 

	
 
		if ( this.length > 1 ) {
 

	
 
			// Remove duplicates
 
			if ( !guaranteedUnique[ name ] ) {
 
				jQuery.uniqueSort( matched );
 
			}
 

	
 
			// Reverse order for parents* and prev-derivatives
 
			if ( rparentsprev.test( name ) ) {
 
				matched.reverse();
 
			}
 
		}
 

	
 
		return this.pushStack( matched );
 
	};
 
} );
 
var rnotwhite = ( /\S+/g );
 

	
 

	
 

	
 
// Convert String-formatted options into Object-formatted ones
 
function createOptions( options ) {
 
	var object = {};
 
	jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
 
		object[ flag ] = true;
 
	} );
 
	return object;
 
}
 

	
 
/*
 
 * Create a callback list using the following parameters:
 
 *
 
 *	options: an optional list of space-separated options that will change how
 
 *			the callback list behaves or a more traditional option object
 
 *
 
 * By default a callback list will act like an event callback list and can be
 
 * "fired" multiple times.
 
 *
 
 * Possible options:
 
 *
 
 *	once:			will ensure the callback list can only be fired once (like a Deferred)
 
 *
 
 *	memory:			will keep track of previous values and will call any callback added
 
 *					after the list has been fired right away with the latest "memorized"
 
 *					values (like a Deferred)
 
 *
 
 *	unique:			will ensure a callback can only be added once (no duplicate in the list)
 
 *
 
 *	stopOnFalse:	interrupt callings when a callback returns false
 
 *
 
 */
 
jQuery.Callbacks = function( options ) {
 

	
 
	// Convert options from String-formatted to Object-formatted if needed
 
	// (we check in cache first)
 
	options = typeof options === "string" ?
 
		createOptions( options ) :
 
		jQuery.extend( {}, options );
 

	
 
	var // Flag to know if list is currently firing
 
		firing,
 

	
 
		// Last fire value for non-forgettable lists
 
		memory,
 

	
 
		// Flag to know if list was already fired
 
		fired,
 

	
 
		// Flag to prevent firing
 
		locked,
 

	
 
		// Actual callback list
 
		list = [],
 

	
 
		// Queue of execution data for repeatable lists
 
		queue = [],
 

	
 
		// Index of currently firing callback (modified by add/remove as needed)
 
		firingIndex = -1,
 

	
 
		// Fire callbacks
 
		fire = function() {
 

	
 
			// Enforce single-firing
 
			locked = options.once;
 

	
 
			// Execute callbacks for all pending executions,
 
			// respecting firingIndex overrides and runtime changes
 
			fired = firing = true;
 
			for ( ; queue.length; firingIndex = -1 ) {
 
				memory = queue.shift();
 
				while ( ++firingIndex < list.length ) {
 

	
 
					// Run callback and check for early termination
 
					if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
 
						options.stopOnFalse ) {
 

	
 
						// Jump to end and forget the data so .add doesn't re-fire
 
						firingIndex = list.length;
 
						memory = false;
 
					}
 
				}
 
			}
 

	
 
			// Forget the data if we're done with it
 
			if ( !options.memory ) {
 
				memory = false;
 
			}
 

	
 
			firing = false;
 

	
 
			// Clean up if we're done firing for good
 
			if ( locked ) {
 

	
 
				// Keep an empty list if we have data for future add calls
 
				if ( memory ) {
 
					list = [];
 

	
 
				// Otherwise, this object is spent
 
				} else {
 
					list = "";
 
				}
 
			}
 
		},
 

	
 
		// Actual Callbacks object
 
		self = {
 

	
 
			// Add a callback or a collection of callbacks to the list
 
			add: function() {
 
				if ( list ) {
 

	
 
					// If we have memory from a past run, we should fire after adding
 
					if ( memory && !firing ) {
 
						firingIndex = list.length - 1;
 
						queue.push( memory );
 
					}
 

	
 
					( function add( args ) {
 
						jQuery.each( args, function( _, arg ) {
 
							if ( jQuery.isFunction( arg ) ) {
 
								if ( !options.unique || !self.has( arg ) ) {
 
									list.push( arg );
 
								}
 
							} else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
 

	
 
								// Inspect recursively
 
								add( arg );
 
							}
 
						} );
 
					} )( arguments );
 

	
 
					if ( memory && !firing ) {
 
						fire();
 
					}
 
				}
 
				return this;
 
			},
 

	
 
			// Remove a callback from the list
 
			remove: function() {
 
				jQuery.each( arguments, function( _, arg ) {
 
					var index;
 
					while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
 
						list.splice( index, 1 );
 

	
 
						// Handle firing indexes
 
						if ( index <= firingIndex ) {
 
							firingIndex--;
 
						}
 
					}
 
				} );
 
				return this;
 
			},
 

	
 
			// Check if a given callback is in the list.
 
			// If no argument is given, return whether or not list has callbacks attached.
 
			has: function( fn ) {
 
				return fn ?
 
					jQuery.inArray( fn, list ) > -1 :
 
					list.length > 0;
 
			},
 

	
 
			// Remove all callbacks from the list
 
			empty: function() {
 
				if ( list ) {
 
					list = [];
 
				}
 
				return this;
 
			},
 

	
 
			// Disable .fire and .add
 
			// Abort any current/pending executions
 
			// Clear all callbacks and values
 
			disable: function() {
 
				locked = queue = [];
 
				list = memory = "";
 
				return this;
 
			},
 
			disabled: function() {
 
				return !list;
 
			},
 

	
 
			// Disable .fire
 
			// Also disable .add unless we have memory (since it would have no effect)
 
			// Abort any pending executions
 
			lock: function() {
 
				locked = queue = [];
 
				if ( !memory ) {
 
					list = memory = "";
 
				}
 
				return this;
 
			},
 
			locked: function() {
 
				return !!locked;
 
			},
 

	
 
			// Call all callbacks with the given context and arguments
 
			fireWith: function( context, args ) {
 
				if ( !locked ) {
 
					args = args || [];
 
					args = [ context, args.slice ? args.slice() : args ];
 
					queue.push( args );
 
					if ( !firing ) {
 
						fire();
 
					}
 
				}
 
				return this;
 
			},
 

	
 
			// Call all the callbacks with the given arguments
 
			fire: function() {
 
				self.fireWith( this, arguments );
 
				return this;
 
			},
 

	
 
			// To know if the callbacks have already been called at least once
 
			fired: function() {
 
				return !!fired;
 
			}
 
		};
 

	
 
	return self;
 
};
 

	
 

	
 
jQuery.extend( {
 

	
 
	Deferred: function( func ) {
 
		var tuples = [
 

	
 
				// action, add listener, listener list, final state
 
				[ "resolve", "done", jQuery.Callbacks( "once memory" ), "resolved" ],
 
				[ "reject", "fail", jQuery.Callbacks( "once memory" ), "rejected" ],
 
				[ "notify", "progress", jQuery.Callbacks( "memory" ) ]
 
			],
 
			state = "pending",
 
			promise = {
 
				state: function() {
 
					return state;
 
				},
 
				always: function() {
 
					deferred.done( arguments ).fail( arguments );
 
					return this;
 
				},
 
				then: function( /* fnDone, fnFail, fnProgress */ ) {
 
					var fns = arguments;
 
					return jQuery.Deferred( function( newDefer ) {
 
						jQuery.each( tuples, function( i, tuple ) {
 
							var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
 

	
 
							// deferred[ done | fail | progress ] for forwarding actions to newDefer
 
							deferred[ tuple[ 1 ] ]( function() {
 
								var returned = fn && fn.apply( this, arguments );
 
								if ( returned && jQuery.isFunction( returned.promise ) ) {
 
									returned.promise()
 
										.progress( newDefer.notify )
 
										.done( newDefer.resolve )
 
										.fail( newDefer.reject );
 
								} else {
 
									newDefer[ tuple[ 0 ] + "With" ](
 
										this === promise ? newDefer.promise() : this,
 
										fn ? [ returned ] : arguments
 
									);
 
								}
 
							} );
 
						} );
 
						fns = null;
 
					} ).promise();
 
				},
 

	
 
				// Get a promise for this deferred
 
				// If obj is provided, the promise aspect is added to the object
 
				promise: function( obj ) {
 
					return obj != null ? jQuery.extend( obj, promise ) : promise;
 
				}
 
			},
 
			deferred = {};
 

	
 
		// Keep pipe for back-compat
 
		promise.pipe = promise.then;
 

	
 
		// Add list-specific methods
 
		jQuery.each( tuples, function( i, tuple ) {
 
			var list = tuple[ 2 ],
 
				stateString = tuple[ 3 ];
 

	
 
			// promise[ done | fail | progress ] = list.add
 
			promise[ tuple[ 1 ] ] = list.add;
 

	
 
			// Handle state
 
			if ( stateString ) {
 
				list.add( function() {
 

	
 
					// state = [ resolved | rejected ]
 
					state = stateString;
 

	
 
				// [ reject_list | resolve_list ].disable; progress_list.lock
 
				}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
 
			}
 

	
 
			// deferred[ resolve | reject | notify ]
 
			deferred[ tuple[ 0 ] ] = function() {
 
				deferred[ tuple[ 0 ] + "With" ]( this === deferred ? promise : this, arguments );
 
				return this;
 
			};
 
			deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
 
		} );
 

	
 
		// Make the deferred a promise
 
		promise.promise( deferred );
 

	
 
		// Call given func if any
 
		if ( func ) {
 
			func.call( deferred, deferred );
 
		}
 

	
 
		// All done!
 
		return deferred;
 
	},
 

	
 
	// Deferred helper
 
	when: function( subordinate /* , ..., subordinateN */ ) {
 
		var i = 0,
 
			resolveValues = slice.call( arguments ),
 
			length = resolveValues.length,
 

	
 
			// the count of uncompleted subordinates
 
			remaining = length !== 1 ||
 
				( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
 

	
 
			// the master Deferred.
 
			// If resolveValues consist of only a single Deferred, just use that.
 
			deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
 

	
 
			// Update function for both resolve and progress values
 
			updateFunc = function( i, contexts, values ) {
 
				return function( value ) {
 
					contexts[ i ] = this;
 
					values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
 
					if ( values === progressValues ) {
 
						deferred.notifyWith( contexts, values );
 
					} else if ( !( --remaining ) ) {
 
						deferred.resolveWith( contexts, values );
 
					}
 
				};
 
			},
 

	
 
			progressValues, progressContexts, resolveContexts;
 

	
 
		// Add listeners to Deferred subordinates; treat others as resolved
 
		if ( length > 1 ) {
 
			progressValues = new Array( length );
 
			progressContexts = new Array( length );
 
			resolveContexts = new Array( length );
 
			for ( ; i < length; i++ ) {
 
				if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
 
					resolveValues[ i ].promise()
 
						.progress( updateFunc( i, progressContexts, progressValues ) )
 
						.done( updateFunc( i, resolveContexts, resolveValues ) )
 
						.fail( deferred.reject );
 
				} else {
 
					--remaining;
 
				}
 
			}
 
		}
 

	
 
		// If we're not waiting on anything, resolve the master
 
		if ( !remaining ) {
 
			deferred.resolveWith( resolveContexts, resolveValues );
 
		}
 

	
 
		return deferred.promise();
 
	}
 
} );
 

	
 

	
 
// The deferred used on DOM ready
 
var readyList;
 

	
 
jQuery.fn.ready = function( fn ) {
 

	
 
	// Add the callback
 
	jQuery.ready.promise().done( fn );
 

	
 
	return this;
 
};
 

	
 
jQuery.extend( {
 

	
 
	// Is the DOM ready to be used? Set to true once it occurs.
 
	isReady: false,
 

	
 
	// A counter to track how many items to wait for before
 
	// the ready event fires. See #6781
 
	readyWait: 1,
 

	
 
	// Hold (or release) the ready event
 
	holdReady: function( hold ) {
 
		if ( hold ) {
 
			jQuery.readyWait++;
 
		} else {
 
			jQuery.ready( true );
 
		}
 
	},
 

	
 
	// Handle when the DOM is ready
 
	ready: function( wait ) {
 

	
 
		// Abort if there are pending holds or we're already ready
 
		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
 
			return;
 
		}
 

	
 
		// Remember that the DOM is ready
 
		jQuery.isReady = true;
 

	
 
		// If a normal DOM Ready event fired, decrement, and wait if need be
 
		if ( wait !== true && --jQuery.readyWait > 0 ) {
 
			return;
 
		}
 

	
 
		// If there are functions bound, to execute
 
		readyList.resolveWith( document, [ jQuery ] );
 

	
 
		// Trigger any bound ready events
 
		if ( jQuery.fn.triggerHandler ) {
 
			jQuery( document ).triggerHandler( "ready" );
 
			jQuery( document ).off( "ready" );
 
		}
 
	}
 
} );
 

	
 
/**
 
 * The ready event handler and self cleanup method
 
 */
 
function completed() {
 
	document.removeEventListener( "DOMContentLoaded", completed );
 
	window.removeEventListener( "load", completed );
 
	jQuery.ready();
 
}
 

	
 
jQuery.ready.promise = function( obj ) {
 
	if ( !readyList ) {
 

	
 
		readyList = jQuery.Deferred();
 

	
 
		// Catch cases where $(document).ready() is called
 
		// after the browser event has already occurred.
 
		// Support: IE9-10 only
 
		// Older IE sometimes signals "interactive" too soon
 
		if ( document.readyState === "complete" ||
 
			( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
 

	
 
			// Handle it asynchronously to allow scripts the opportunity to delay ready
 
			window.setTimeout( jQuery.ready );
 

	
 
		} else {
 

	
 
			// Use the handy event callback
 
			document.addEventListener( "DOMContentLoaded", completed );
 

	
 
			// A fallback to window.onload, that will always work
 
			window.addEventListener( "load", completed );
 
		}
 
	}
 
	return readyList.promise( obj );
 
};
 

	
 
// Kick off the DOM ready check even if the user does not
 
jQuery.ready.promise();
 

	
 

	
 

	
 

	
 
// Multifunctional method to get and set values of a collection
 
// The value/s can optionally be executed if it's a function
 
var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
 
	var i = 0,
 
		len = elems.length,
 
		bulk = key == null;
 

	
 
	// Sets many values
 
	if ( jQuery.type( key ) === "object" ) {
 
		chainable = true;
 
		for ( i in key ) {
 
			access( elems, fn, i, key[ i ], true, emptyGet, raw );
 
		}
 

	
 
	// Sets one value
 
	} else if ( value !== undefined ) {
 
		chainable = true;
 

	
 
		if ( !jQuery.isFunction( value ) ) {
 
			raw = true;
 
		}
 

	
 
		if ( bulk ) {
 

	
 
			// Bulk operations run against the entire set
 
			if ( raw ) {
 
				fn.call( elems, value );
 
				fn = null;
 

	
 
			// ...except when executing function values
 
			} else {
 
				bulk = fn;
 
				fn = function( elem, key, value ) {
 
					return bulk.call( jQuery( elem ), value );
 
				};
 
			}
 
		}
 

	
 
		if ( fn ) {
 
			for ( ; i < len; i++ ) {
 
				fn(
 
					elems[ i ], key, raw ?
 
					value :
 
					value.call( elems[ i ], i, fn( elems[ i ], key ) )
 
				);
 
			}
 
		}
 
	}
 

	
 
	return chainable ?
 
		elems :
 

	
 
		// Gets
 
		bulk ?
 
			fn.call( elems ) :
 
			len ? fn( elems[ 0 ], key ) : emptyGet;
 
};
 
var acceptData = function( owner ) {
 

	
 
	// Accepts only:
 
	//  - Node
 
	//    - Node.ELEMENT_NODE
 
	//    - Node.DOCUMENT_NODE
 
	//  - Object
 
	//    - Any
 
	/* jshint -W018 */
 
	return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
 
};
 

	
 

	
 

	
 

	
 
function Data() {
 
	this.expando = jQuery.expando + Data.uid++;
 
}
 

	
 
Data.uid = 1;
 

	
 
Data.prototype = {
 

	
 
	register: function( owner, initial ) {
 
		var value = initial || {};
 

	
 
		// If it is a node unlikely to be stringify-ed or looped over
 
		// use plain assignment
 
		if ( owner.nodeType ) {
 
			owner[ this.expando ] = value;
 

	
 
		// Otherwise secure it in a non-enumerable, non-writable property
 
		// configurability must be true to allow the property to be
 
		// deleted with the delete operator
 
		} else {
 
			Object.defineProperty( owner, this.expando, {
 
				value: value,
 
				writable: true,
 
				configurable: true
 
			} );
 
		}
 
		return owner[ this.expando ];
 
	},
 
	cache: function( owner ) {
 

	
 
		// We can accept data for non-element nodes in modern browsers,
 
		// but we should not, see #8335.
 
		// Always return an empty object.
 
		if ( !acceptData( owner ) ) {
 
			return {};
 
		}
 

	
 
		// Check if the owner object already has a cache
 
		var value = owner[ this.expando ];
 

	
 
		// If not, create one
 
		if ( !value ) {
 
			value = {};
 

	
 
			// We can accept data for non-element nodes in modern browsers,
 
			// but we should not, see #8335.
 
			// Always return an empty object.
 
			if ( acceptData( owner ) ) {
 

	
 
				// If it is a node unlikely to be stringify-ed or looped over
 
				// use plain assignment
 
				if ( owner.nodeType ) {
 
					owner[ this.expando ] = value;
 

	
 
				// Otherwise secure it in a non-enumerable property
 
				// configurable must be true to allow the property to be
 
				// deleted when data is removed
 
				} else {
 
					Object.defineProperty( owner, this.expando, {
 
						value: value,
 
						configurable: true
 
					} );
 
				}
 
			}
 
		}
 

	
 
		return value;
 
	},
 
	set: function( owner, data, value ) {
 
		var prop,
 
			cache = this.cache( owner );
 

	
 
		// Handle: [ owner, key, value ] args
 
		if ( typeof data === "string" ) {
 
			cache[ data ] = value;
 

	
 
		// Handle: [ owner, { properties } ] args
 
		} else {
 

	
 
			// Copy the properties one-by-one to the cache object
 
			for ( prop in data ) {
 
				cache[ prop ] = data[ prop ];
 
			}
 
		}
 
		return cache;
 
	},
 
	get: function( owner, key ) {
 
		return key === undefined ?
 
			this.cache( owner ) :
 
			owner[ this.expando ] && owner[ this.expando ][ key ];
 
	},
 
	access: function( owner, key, value ) {
 
		var stored;
 

	
 
		// In cases where either:
 
		//
 
		//   1. No key was specified
 
		//   2. A string key was specified, but no value provided
 
		//
 
		// Take the "read" path and allow the get method to determine
 
		// which value to return, respectively either:
 
		//
 
		//   1. The entire cache object
 
		//   2. The data stored at the key
 
		//
 
		if ( key === undefined ||
 
				( ( key && typeof key === "string" ) && value === undefined ) ) {
 

	
 
			stored = this.get( owner, key );
 

	
 
			return stored !== undefined ?
 
				stored : this.get( owner, jQuery.camelCase( key ) );
 
		}
 

	
 
		// When the key is not a string, or both a key and value
 
		// are specified, set or extend (existing objects) with either:
 
		//
 
		//   1. An object of properties
 
		//   2. A key and value
 
		//
 
		this.set( owner, key, value );
 

	
 
		// Since the "set" path can have two possible entry points
 
		// return the expected data based on which path was taken[*]
 
		return value !== undefined ? value : key;
 
	},
 
	remove: function( owner, key ) {
 
		var i, name, camel,
 
			cache = owner[ this.expando ];
 

	
 
		if ( cache === undefined ) {
 
			return;
 
		}
 

	
 
		if ( key === undefined ) {
 
			this.register( owner );
 

	
 
		} else {
 

	
 
			// Support array or space separated string of keys
 
			if ( jQuery.isArray( key ) ) {
 

	
 
				// If "name" is an array of keys...
 
				// When data is initially created, via ("key", "val") signature,
 
				// keys will be converted to camelCase.
 
				// Since there is no way to tell _how_ a key was added, remove
 
				// both plain key and camelCase key. #12786
 
				// This will only penalize the array argument path.
 
				name = key.concat( key.map( jQuery.camelCase ) );
 
			} else {
 
				camel = jQuery.camelCase( key );
 

	
 
				// Try the string as a key before any manipulation
 
				if ( key in cache ) {
 
					name = [ key, camel ];
 
				} else {
 

	
 
					// If a key with the spaces exists, use it.
 
					// Otherwise, create an array by matching non-whitespace
 
					name = camel;
 
					name = name in cache ?
 
						[ name ] : ( name.match( rnotwhite ) || [] );
 
				}
 
			}
 

	
 
			i = name.length;
 

	
 
			while ( i-- ) {
 
				delete cache[ name[ i ] ];
 
			}
 
		}
 

	
 
		// Remove the expando if there's no more data
 
		if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
 

	
 
			// Support: Chrome <= 35-45+
 
			// Webkit & Blink performance suffers when deleting properties
 
			// from DOM nodes, so set to undefined instead
 
			// https://code.google.com/p/chromium/issues/detail?id=378607
 
			if ( owner.nodeType ) {
 
				owner[ this.expando ] = undefined;
 
			} else {
 
				delete owner[ this.expando ];
 
			}
 
		}
 
	},
 
	hasData: function( owner ) {
 
		var cache = owner[ this.expando ];
 
		return cache !== undefined && !jQuery.isEmptyObject( cache );
 
	}
 
};
 
var dataPriv = new Data();
 

	
 
var dataUser = new Data();
 

	
 

	
 

	
 
//	Implementation Summary
 
//
 
//	1. Enforce API surface and semantic compatibility with 1.9.x branch
 
//	2. Improve the module's maintainability by reducing the storage
 
//		paths to a single mechanism.
 
//	3. Use the same single mechanism to support "private" and "user" data.
 
//	4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
 
//	5. Avoid exposing implementation details on user objects (eg. expando properties)
 
//	6. Provide a clear path for implementation upgrade to WeakMap in 2014
 

	
 
var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
 
	rmultiDash = /[A-Z]/g;
 

	
 
function dataAttr( elem, key, data ) {
 
	var name;
 

	
 
	// If nothing was found internally, try to fetch any
 
	// data from the HTML5 data-* attribute
 
	if ( data === undefined && elem.nodeType === 1 ) {
 
		name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
 
		data = elem.getAttribute( name );
 

	
 
		if ( typeof data === "string" ) {
 
			try {
 
				data = data === "true" ? true :
 
					data === "false" ? false :
 
					data === "null" ? null :
 

	
 
					// Only convert to a number if it doesn't change the string
 
					+data + "" === data ? +data :
 
					rbrace.test( data ) ? jQuery.parseJSON( data ) :
 
					data;
 
			} catch ( e ) {}
 

	
 
			// Make sure we set the data so it isn't changed later
 
			dataUser.set( elem, key, data );
 
		} else {
 
			data = undefined;
 
		}
 
	}
 
	return data;
 
}
 

	
 
jQuery.extend( {
 
	hasData: function( elem ) {
 
		return dataUser.hasData( elem ) || dataPriv.hasData( elem );
 
	},
 

	
 
	data: function( elem, name, data ) {
 
		return dataUser.access( elem, name, data );
 
	},
 

	
 
	removeData: function( elem, name ) {
 
		dataUser.remove( elem, name );
 
	},
 

	
 
	// TODO: Now that all calls to _data and _removeData have been replaced
 
	// with direct calls to dataPriv methods, these can be deprecated.
 
	_data: function( elem, name, data ) {
 
		return dataPriv.access( elem, name, data );
 
	},
 

	
 
	_removeData: function( elem, name ) {
 
		dataPriv.remove( elem, name );
 
	}
 
} );
 

	
 
jQuery.fn.extend( {
 
	data: function( key, value ) {
 
		var i, name, data,
 
			elem = this[ 0 ],
 
			attrs = elem && elem.attributes;
 

	
 
		// Gets all values
 
		if ( key === undefined ) {
 
			if ( this.length ) {
 
				data = dataUser.get( elem );
 

	
 
				if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
 
					i = attrs.length;
 
					while ( i-- ) {
 

	
 
						// Support: IE11+
 
						// The attrs elements can be null (#14894)
 
						if ( attrs[ i ] ) {
 
							name = attrs[ i ].name;
 
							if ( name.indexOf( "data-" ) === 0 ) {
 
								name = jQuery.camelCase( name.slice( 5 ) );
 
								dataAttr( elem, name, data[ name ] );
 
							}
 
						}
 
					}
 
					dataPriv.set( elem, "hasDataAttrs", true );
 
				}
 
			}
 

	
 
			return data;
 
		}
 

	
 
		// Sets multiple values
 
		if ( typeof key === "object" ) {
 
			return this.each( function() {
 
				dataUser.set( this, key );
 
			} );
 
		}
 

	
 
		return access( this, function( value ) {
 
			var data, camelKey;
 

	
 
			// The calling jQuery object (element matches) is not empty
 
			// (and therefore has an element appears at this[ 0 ]) and the
 
			// `value` parameter was not undefined. An empty jQuery object
 
			// will result in `undefined` for elem = this[ 0 ] which will
 
			// throw an exception if an attempt to read a data cache is made.
 
			if ( elem && value === undefined ) {
 

	
 
				// Attempt to get data from the cache
 
				// with the key as-is
 
				data = dataUser.get( elem, key ) ||
 

	
 
					// Try to find dashed key if it exists (gh-2779)
 
					// This is for 2.2.x only
 
					dataUser.get( elem, key.replace( rmultiDash, "-$&" ).toLowerCase() );
 

	
 
				if ( data !== undefined ) {
 
					return data;
 
				}
 

	
 
				camelKey = jQuery.camelCase( key );
 

	
 
				// Attempt to get data from the cache
 
				// with the key camelized
 
				data = dataUser.get( elem, camelKey );
 
				if ( data !== undefined ) {
 
					return data;
 
				}
 

	
 
				// Attempt to "discover" the data in
 
				// HTML5 custom data-* attrs
 
				data = dataAttr( elem, camelKey, undefined );
 
				if ( data !== undefined ) {
 
					return data;
 
				}
 

	
 
				// We tried really hard, but the data doesn't exist.
 
				return;
 
			}
 

	
 
			// Set the data...
 
			camelKey = jQuery.camelCase( key );
 
			this.each( function() {
 

	
 
				// First, attempt to store a copy or reference of any
 
				// data that might've been store with a camelCased key.
 
				var data = dataUser.get( this, camelKey );
 

	
 
				// For HTML5 data-* attribute interop, we have to
 
				// store property names with dashes in a camelCase form.
 
				// This might not apply to all properties...*
 
				dataUser.set( this, camelKey, value );
 

	
 
				// *... In the case of properties that might _actually_
 
				// have dashes, we need to also store a copy of that
 
				// unchanged property.
 
				if ( key.indexOf( "-" ) > -1 && data !== undefined ) {
 
					dataUser.set( this, key, value );
 
				}
 
			} );
 
		}, null, value, arguments.length > 1, null, true );
 
	},
 

	
 
	removeData: function( key ) {
 
		return this.each( function() {
 
			dataUser.remove( this, key );
 
		} );
 
	}
 
} );
 

	
 

	
 
jQuery.extend( {
 
	queue: function( elem, type, data ) {
 
		var queue;
 

	
 
		if ( elem ) {
 
			type = ( type || "fx" ) + "queue";
 
			queue = dataPriv.get( elem, type );
 

	
 
			// Speed up dequeue by getting out quickly if this is just a lookup
 
			if ( data ) {
 
				if ( !queue || jQuery.isArray( data ) ) {
 
					queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
 
				} else {
 
					queue.push( data );
 
				}
 
			}
 
			return queue || [];
 
		}
 
	},
 

	
 
	dequeue: function( elem, type ) {
 
		type = type || "fx";
 

	
 
		var queue = jQuery.queue( elem, type ),
 
			startLength = queue.length,
 
			fn = queue.shift(),
 
			hooks = jQuery._queueHooks( elem, type ),
 
			next = function() {
 
				jQuery.dequeue( elem, type );
 
			};
 

	
 
		// If the fx queue is dequeued, always remove the progress sentinel
 
		if ( fn === "inprogress" ) {
 
			fn = queue.shift();
 
			startLength--;
 
		}
 

	
 
		if ( fn ) {
 

	
 
			// Add a progress sentinel to prevent the fx queue from being
 
			// automatically dequeued
 
			if ( type === "fx" ) {
 
				queue.unshift( "inprogress" );
 
			}
 

	
 
			// Clear up the last queue stop function
 
			delete hooks.stop;
 
			fn.call( elem, next, hooks );
 
		}
 

	
 
		if ( !startLength && hooks ) {
 
			hooks.empty.fire();
 
		}
 
	},
 

	
 
	// Not public - generate a queueHooks object, or return the current one
 
	_queueHooks: function( elem, type ) {
 
		var key = type + "queueHooks";
 
		return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
 
			empty: jQuery.Callbacks( "once memory" ).add( function() {
 
				dataPriv.remove( elem, [ type + "queue", key ] );
 
			} )
 
		} );
 
	}
 
} );
 

	
 
jQuery.fn.extend( {
 
	queue: function( type, data ) {
 
		var setter = 2;
 

	
 
		if ( typeof type !== "string" ) {
 
			data = type;
 
			type = "fx";
 
			setter--;
 
		}
 

	
 
		if ( arguments.length < setter ) {
 
			return jQuery.queue( this[ 0 ], type );
 
		}
 

	
 
		return data === undefined ?
 
			this :
 
			this.each( function() {
 
				var queue = jQuery.queue( this, type, data );
 

	
 
				// Ensure a hooks for this queue
 
				jQuery._queueHooks( this, type );
 

	
 
				if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
 
					jQuery.dequeue( this, type );
 
				}
 
			} );
 
	},
 
	dequeue: function( type ) {
 
		return this.each( function() {
 
			jQuery.dequeue( this, type );
 
		} );
 
	},
 
	clearQueue: function( type ) {
 
		return this.queue( type || "fx", [] );
 
	},
 

	
 
	// Get a promise resolved when queues of a certain type
 
	// are emptied (fx is the type by default)
 
	promise: function( type, obj ) {
 
		var tmp,
 
			count = 1,
 
			defer = jQuery.Deferred(),
 
			elements = this,
 
			i = this.length,
 
			resolve = function() {
 
				if ( !( --count ) ) {
 
					defer.resolveWith( elements, [ elements ] );
 
				}
 
			};
 

	
 
		if ( typeof type !== "string" ) {
 
			obj = type;
 
			type = undefined;
 
		}
 
		type = type || "fx";
 

	
 
		while ( i-- ) {
 
			tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
 
			if ( tmp && tmp.empty ) {
 
				count++;
 
				tmp.empty.add( resolve );
 
			}
 
		}
 
		resolve();
 
		return defer.promise( obj );
 
	}
 
} );
 
var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
 

	
 
var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
 

	
 

	
 
var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
 

	
 
var isHidden = function( elem, el ) {
 

	
 
		// isHidden might be called from jQuery#filter function;
 
		// in that case, element will be second argument
 
		elem = el || elem;
 
		return jQuery.css( elem, "display" ) === "none" ||
 
			!jQuery.contains( elem.ownerDocument, elem );
 
	};
 

	
 

	
 

	
 
function adjustCSS( elem, prop, valueParts, tween ) {
 
	var adjusted,
 
		scale = 1,
 
		maxIterations = 20,
 
		currentValue = tween ?
 
			function() { return tween.cur(); } :
 
			function() { return jQuery.css( elem, prop, "" ); },
 
		initial = currentValue(),
 
		unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
 

	
 
		// Starting value computation is required for potential unit mismatches
 
		initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
 
			rcssNum.exec( jQuery.css( elem, prop ) );
 

	
 
	if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
 

	
 
		// Trust units reported by jQuery.css
 
		unit = unit || initialInUnit[ 3 ];
 

	
 
		// Make sure we update the tween properties later on
 
		valueParts = valueParts || [];
 

	
 
		// Iteratively approximate from a nonzero starting point
 
		initialInUnit = +initial || 1;
 

	
 
		do {
 

	
 
			// If previous iteration zeroed out, double until we get *something*.
 
			// Use string for doubling so we don't accidentally see scale as unchanged below
 
			scale = scale || ".5";
 

	
 
			// Adjust and apply
 
			initialInUnit = initialInUnit / scale;
 
			jQuery.style( elem, prop, initialInUnit + unit );
 

	
 
		// Update scale, tolerating zero or NaN from tween.cur()
 
		// Break the loop if scale is unchanged or perfect, or if we've just had enough.
 
		} while (
 
			scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
 
		);
 
	}
 

	
 
	if ( valueParts ) {
 
		initialInUnit = +initialInUnit || +initial || 0;
 

	
 
		// Apply relative offset (+=/-=) if specified
 
		adjusted = valueParts[ 1 ] ?
 
			initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
 
			+valueParts[ 2 ];
 
		if ( tween ) {
 
			tween.unit = unit;
 
			tween.start = initialInUnit;
 
			tween.end = adjusted;
 
		}
 
	}
 
	return adjusted;
 
}
 
var rcheckableType = ( /^(?:checkbox|radio)$/i );
 

	
 
var rtagName = ( /<([\w:-]+)/ );
 

	
 
var rscriptType = ( /^$|\/(?:java|ecma)script/i );
 

	
 

	
 

	
 
// We have to close these tags to support XHTML (#13200)
 
var wrapMap = {
 

	
 
	// Support: IE9
 
	option: [ 1, "<select multiple='multiple'>", "</select>" ],
 

	
 
	// XHTML parsers do not magically insert elements in the
 
	// same way that tag soup parsers do. So we cannot shorten
 
	// this by omitting <tbody> or other required elements.
 
	thead: [ 1, "<table>", "</table>" ],
 
	col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
 
	tr: [ 2, "<table><tbody>", "</tbody></table>" ],
 
	td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
 

	
 
	_default: [ 0, "", "" ]
 
};
 

	
 
// Support: IE9
 
wrapMap.optgroup = wrapMap.option;
 

	
 
wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
 
wrapMap.th = wrapMap.td;
 

	
 

	
 
function getAll( context, tag ) {
 

	
 
	// Support: IE9-11+
 
	// Use typeof to avoid zero-argument method invocation on host objects (#15151)
 
	var ret = typeof context.getElementsByTagName !== "undefined" ?
 
			context.getElementsByTagName( tag || "*" ) :
 
			typeof context.querySelectorAll !== "undefined" ?
 
				context.querySelectorAll( tag || "*" ) :
 
			[];
 

	
 
	return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
 
		jQuery.merge( [ context ], ret ) :
 
		ret;
 
}
 

	
 

	
 
// Mark scripts as having already been evaluated
 
function setGlobalEval( elems, refElements ) {
 
	var i = 0,
 
		l = elems.length;
 

	
 
	for ( ; i < l; i++ ) {
 
		dataPriv.set(
 
			elems[ i ],
 
			"globalEval",
 
			!refElements || dataPriv.get( refElements[ i ], "globalEval" )
 
		);
 
	}
 
}
 

	
 

	
 
var rhtml = /<|&#?\w+;/;
 

	
 
function buildFragment( elems, context, scripts, selection, ignored ) {
 
	var elem, tmp, tag, wrap, contains, j,
 
		fragment = context.createDocumentFragment(),
 
		nodes = [],
 
		i = 0,
 
		l = elems.length;
 

	
 
	for ( ; i < l; i++ ) {
 
		elem = elems[ i ];
 

	
 
		if ( elem || elem === 0 ) {
 

	
 
			// Add nodes directly
 
			if ( jQuery.type( elem ) === "object" ) {
 

	
 
				// Support: Android<4.1, PhantomJS<2
 
				// push.apply(_, arraylike) throws on ancient WebKit
 
				jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
 

	
 
			// Convert non-html into a text node
 
			} else if ( !rhtml.test( elem ) ) {
 
				nodes.push( context.createTextNode( elem ) );
 

	
 
			// Convert html into DOM nodes
 
			} else {
 
				tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
 

	
 
				// Deserialize a standard representation
 
				tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
 
				wrap = wrapMap[ tag ] || wrapMap._default;
 
				tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
 

	
 
				// Descend through wrappers to the right content
 
				j = wrap[ 0 ];
 
				while ( j-- ) {
 
					tmp = tmp.lastChild;
 
				}
 

	
 
				// Support: Android<4.1, PhantomJS<2
 
				// push.apply(_, arraylike) throws on ancient WebKit
 
				jQuery.merge( nodes, tmp.childNodes );
 

	
 
				// Remember the top-level container
 
				tmp = fragment.firstChild;
 

	
 
				// Ensure the created nodes are orphaned (#12392)
 
				tmp.textContent = "";
 
			}
 
		}
 
	}
 

	
 
	// Remove wrapper from fragment
 
	fragment.textContent = "";
 

	
 
	i = 0;
 
	while ( ( elem = nodes[ i++ ] ) ) {
 

	
 
		// Skip elements already in the context collection (trac-4087)
 
		if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
 
			if ( ignored ) {
 
				ignored.push( elem );
 
			}
 
			continue;
 
		}
 

	
 
		contains = jQuery.contains( elem.ownerDocument, elem );
 

	
 
		// Append to fragment
 
		tmp = getAll( fragment.appendChild( elem ), "script" );
 

	
 
		// Preserve script evaluation history
 
		if ( contains ) {
 
			setGlobalEval( tmp );
 
		}
 

	
 
		// Capture executables
 
		if ( scripts ) {
 
			j = 0;
 
			while ( ( elem = tmp[ j++ ] ) ) {
 
				if ( rscriptType.test( elem.type || "" ) ) {
 
					scripts.push( elem );
 
				}
 
			}
 
		}
 
	}
 

	
 
	return fragment;
 
}
 

	
 

	
 
( function() {
 
	var fragment = document.createDocumentFragment(),
 
		div = fragment.appendChild( document.createElement( "div" ) ),
 
		input = document.createElement( "input" );
 

	
 
	// Support: Android 4.0-4.3, Safari<=5.1
 
	// Check state lost if the name is set (#11217)
 
	// Support: Windows Web Apps (WWA)
 
	// `name` and `type` must use .setAttribute for WWA (#14901)
 
	input.setAttribute( "type", "radio" );
 
	input.setAttribute( "checked", "checked" );
 
	input.setAttribute( "name", "t" );
 

	
 
	div.appendChild( input );
 

	
 
	// Support: Safari<=5.1, Android<4.2
 
	// Older WebKit doesn't clone checked state correctly in fragments
 
	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
 

	
 
	// Support: IE<=11+
 
	// Make sure textarea (and checkbox) defaultValue is properly cloned
 
	div.innerHTML = "<textarea>x</textarea>";
 
	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
 
} )();
 

	
 

	
 
var
 
	rkeyEvent = /^key/,
 
	rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
 
	rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
 

	
 
function returnTrue() {
 
	return true;
 
}
 

	
 
function returnFalse() {
 
	return false;
 
}
 

	
 
// Support: IE9
 
// See #13393 for more info
 
function safeActiveElement() {
 
	try {
 
		return document.activeElement;
 
	} catch ( err ) { }
 
}
 

	
 
function on( elem, types, selector, data, fn, one ) {
 
	var origFn, type;
 

	
 
	// Types can be a map of types/handlers
 
	if ( typeof types === "object" ) {
 

	
 
		// ( types-Object, selector, data )
 
		if ( typeof selector !== "string" ) {
 

	
 
			// ( types-Object, data )
 
			data = data || selector;
 
			selector = undefined;
 
		}
 
		for ( type in types ) {
 
			on( elem, type, selector, data, types[ type ], one );
 
		}
 
		return elem;
 
	}
 

	
 
	if ( data == null && fn == null ) {
 

	
 
		// ( types, fn )
 
		fn = selector;
 
		data = selector = undefined;
 
	} else if ( fn == null ) {
 
		if ( typeof selector === "string" ) {
 

	
 
			// ( types, selector, fn )
 
			fn = data;
 
			data = undefined;
 
		} else {
 

	
 
			// ( types, data, fn )
 
			fn = data;
 
			data = selector;
 
			selector = undefined;
 
		}
 
	}
 
	if ( fn === false ) {
 
		fn = returnFalse;
 
	} else if ( !fn ) {
 
		return elem;
 
	}
 

	
 
	if ( one === 1 ) {
 
		origFn = fn;
 
		fn = function( event ) {
 

	
 
			// Can use an empty set, since event contains the info
 
			jQuery().off( event );
 
			return origFn.apply( this, arguments );
 
		};
 

	
 
		// Use same guid so caller can remove using origFn
 
		fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
 
	}
 
	return elem.each( function() {
 
		jQuery.event.add( this, types, fn, data, selector );
 
	} );
 
}
 

	
 
/*
 
 * Helper functions for managing events -- not part of the public interface.
 
 * Props to Dean Edwards' addEvent library for many of the ideas.
 
 */
 
jQuery.event = {
 

	
 
	global: {},
 

	
 
	add: function( elem, types, handler, data, selector ) {
 

	
 
		var handleObjIn, eventHandle, tmp,
 
			events, t, handleObj,
 
			special, handlers, type, namespaces, origType,
 
			elemData = dataPriv.get( elem );
 

	
 
		// Don't attach events to noData or text/comment nodes (but allow plain objects)
 
		if ( !elemData ) {
 
			return;
 
		}
 

	
 
		// Caller can pass in an object of custom data in lieu of the handler
 
		if ( handler.handler ) {
 
			handleObjIn = handler;
 
			handler = handleObjIn.handler;
 
			selector = handleObjIn.selector;
 
		}
 

	
 
		// Make sure that the handler has a unique ID, used to find/remove it later
 
		if ( !handler.guid ) {
 
			handler.guid = jQuery.guid++;
 
		}
 

	
 
		// Init the element's event structure and main handler, if this is the first
 
		if ( !( events = elemData.events ) ) {
 
			events = elemData.events = {};
 
		}
 
		if ( !( eventHandle = elemData.handle ) ) {
 
			eventHandle = elemData.handle = function( e ) {
 

	
 
				// Discard the second event of a jQuery.event.trigger() and
 
				// when an event is called after a page has unloaded
 
				return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
 
					jQuery.event.dispatch.apply( elem, arguments ) : undefined;
 
			};
 
		}
 

	
 
		// Handle multiple events separated by a space
 
		types = ( types || "" ).match( rnotwhite ) || [ "" ];
 
		t = types.length;
 
		while ( t-- ) {
 
			tmp = rtypenamespace.exec( types[ t ] ) || [];
 
			type = origType = tmp[ 1 ];
 
			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
 

	
 
			// There *must* be a type, no attaching namespace-only handlers
 
			if ( !type ) {
 
				continue;
 
			}
 

	
 
			// If event changes its type, use the special event handlers for the changed type
 
			special = jQuery.event.special[ type ] || {};
 

	
 
			// If selector defined, determine special event api type, otherwise given type
 
			type = ( selector ? special.delegateType : special.bindType ) || type;
 

	
 
			// Update special based on newly reset type
 
			special = jQuery.event.special[ type ] || {};
 

	
 
			// handleObj is passed to all event handlers
 
			handleObj = jQuery.extend( {
 
				type: type,
 
				origType: origType,
 
				data: data,
 
				handler: handler,
 
				guid: handler.guid,
 
				selector: selector,
 
				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
 
				namespace: namespaces.join( "." )
 
			}, handleObjIn );
 

	
 
			// Init the event handler queue if we're the first
 
			if ( !( handlers = events[ type ] ) ) {
 
				handlers = events[ type ] = [];
 
				handlers.delegateCount = 0;
 

	
 
				// Only use addEventListener if the special events handler returns false
 
				if ( !special.setup ||
 
					special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
 

	
 
					if ( elem.addEventListener ) {
 
						elem.addEventListener( type, eventHandle );
 
					}
 
				}
 
			}
 

	
 
			if ( special.add ) {
 
				special.add.call( elem, handleObj );
 

	
 
				if ( !handleObj.handler.guid ) {
 
					handleObj.handler.guid = handler.guid;
 
				}
 
			}
 

	
 
			// Add to the element's handler list, delegates in front
 
			if ( selector ) {
 
				handlers.splice( handlers.delegateCount++, 0, handleObj );
 
			} else {
 
				handlers.push( handleObj );
 
			}
 

	
 
			// Keep track of which events have ever been used, for event optimization
 
			jQuery.event.global[ type ] = true;
 
		}
 

	
 
	},
 

	
 
	// Detach an event or set of events from an element
 
	remove: function( elem, types, handler, selector, mappedTypes ) {
 

	
 
		var j, origCount, tmp,
 
			events, t, handleObj,
 
			special, handlers, type, namespaces, origType,
 
			elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
 

	
 
		if ( !elemData || !( events = elemData.events ) ) {
 
			return;
 
		}
 

	
 
		// Once for each type.namespace in types; type may be omitted
 
		types = ( types || "" ).match( rnotwhite ) || [ "" ];
 
		t = types.length;
 
		while ( t-- ) {
 
			tmp = rtypenamespace.exec( types[ t ] ) || [];
 
			type = origType = tmp[ 1 ];
 
			namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
 

	
 
			// Unbind all events (on this namespace, if provided) for the element
 
			if ( !type ) {
 
				for ( type in events ) {
 
					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
 
				}
 
				continue;
 
			}
 

	
 
			special = jQuery.event.special[ type ] || {};
 
			type = ( selector ? special.delegateType : special.bindType ) || type;
 
			handlers = events[ type ] || [];
 
			tmp = tmp[ 2 ] &&
 
				new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
 

	
 
			// Remove matching events
 
			origCount = j = handlers.length;
 
			while ( j-- ) {
 
				handleObj = handlers[ j ];
 

	
 
				if ( ( mappedTypes || origType === handleObj.origType ) &&
 
					( !handler || handler.guid === handleObj.guid ) &&
 
					( !tmp || tmp.test( handleObj.namespace ) ) &&
 
					( !selector || selector === handleObj.selector ||
 
						selector === "**" && handleObj.selector ) ) {
 
					handlers.splice( j, 1 );
 

	
 
					if ( handleObj.selector ) {
 
						handlers.delegateCount--;
 
					}
 
					if ( special.remove ) {
 
						special.remove.call( elem, handleObj );
 
					}
 
				}
 
			}
 

	
 
			// Remove generic event handler if we removed something and no more handlers exist
 
			// (avoids potential for endless recursion during removal of special event handlers)
 
			if ( origCount && !handlers.length ) {
 
				if ( !special.teardown ||
 
					special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
 

	
 
					jQuery.removeEvent( elem, type, elemData.handle );
 
				}
 

	
 
				delete events[ type ];
 
			}
 
		}
 

	
 
		// Remove data and the expando if it's no longer used
 
		if ( jQuery.isEmptyObject( events ) ) {
 
			dataPriv.remove( elem, "handle events" );
 
		}
 
	},
 

	
 
	dispatch: function( event ) {
 

	
 
		// Make a writable jQuery.Event from the native event object
 
		event = jQuery.event.fix( event );
 

	
 
		var i, j, ret, matched, handleObj,
 
			handlerQueue = [],
 
			args = slice.call( arguments ),
 
			handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
 
			special = jQuery.event.special[ event.type ] || {};
 

	
 
		// Use the fix-ed jQuery.Event rather than the (read-only) native event
 
		args[ 0 ] = event;
 
		event.delegateTarget = this;
 

	
 
		// Call the preDispatch hook for the mapped type, and let it bail if desired
 
		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
 
			return;
 
		}
 

	
 
		// Determine handlers
 
		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
 

	
 
		// Run delegates first; they may want to stop propagation beneath us
 
		i = 0;
 
		while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
 
			event.currentTarget = matched.elem;
 

	
 
			j = 0;
 
			while ( ( handleObj = matched.handlers[ j++ ] ) &&
 
				!event.isImmediatePropagationStopped() ) {
 

	
 
				// Triggered event must either 1) have no namespace, or 2) have namespace(s)
 
				// a subset or equal to those in the bound event (both can have no namespace).
 
				if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
 

	
 
					event.handleObj = handleObj;
 
					event.data = handleObj.data;
 

	
 
					ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
 
						handleObj.handler ).apply( matched.elem, args );
 

	
 
					if ( ret !== undefined ) {
 
						if ( ( event.result = ret ) === false ) {
 
							event.preventDefault();
 
							event.stopPropagation();
 
						}
 
					}
 
				}
 
			}
 
		}
 

	
 
		// Call the postDispatch hook for the mapped type
 
		if ( special.postDispatch ) {
 
			special.postDispatch.call( this, event );
 
		}
 

	
 
		return event.result;
 
	},
 

	
 
	handlers: function( event, handlers ) {
 
		var i, matches, sel, handleObj,
 
			handlerQueue = [],
 
			delegateCount = handlers.delegateCount,
 
			cur = event.target;
 

	
 
		// Support (at least): Chrome, IE9
 
		// Find delegate handlers
 
		// Black-hole SVG <use> instance trees (#13180)
 
		//
 
		// Support: Firefox<=42+
 
		// Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343)
 
		if ( delegateCount && cur.nodeType &&
 
			( event.type !== "click" || isNaN( event.button ) || event.button < 1 ) ) {
 

	
 
			for ( ; cur !== this; cur = cur.parentNode || this ) {
 

	
 
				// Don't check non-elements (#13208)
 
				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
 
				if ( cur.nodeType === 1 && ( cur.disabled !== true || event.type !== "click" ) ) {
 
					matches = [];
 
					for ( i = 0; i < delegateCount; i++ ) {
 
						handleObj = handlers[ i ];
 

	
 
						// Don't conflict with Object.prototype properties (#13203)
 
						sel = handleObj.selector + " ";
 

	
 
						if ( matches[ sel ] === undefined ) {
 
							matches[ sel ] = handleObj.needsContext ?
 
								jQuery( sel, this ).index( cur ) > -1 :
 
								jQuery.find( sel, this, null, [ cur ] ).length;
 
						}
 
						if ( matches[ sel ] ) {
 
							matches.push( handleObj );
 
						}
 
					}
 
					if ( matches.length ) {
 
						handlerQueue.push( { elem: cur, handlers: matches } );
 
					}
 
				}
 
			}
 
		}
 

	
 
		// Add the remaining (directly-bound) handlers
 
		if ( delegateCount < handlers.length ) {
 
			handlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } );
 
		}
 

	
 
		return handlerQueue;
 
	},
 

	
 
	// Includes some event props shared by KeyEvent and MouseEvent
 
	props: ( "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase " +
 
		"metaKey relatedTarget shiftKey target timeStamp view which" ).split( " " ),
 

	
 
	fixHooks: {},
 

	
 
	keyHooks: {
 
		props: "char charCode key keyCode".split( " " ),
 
		filter: function( event, original ) {
 

	
 
			// Add which for key events
 
			if ( event.which == null ) {
 
				event.which = original.charCode != null ? original.charCode : original.keyCode;
 
			}
 

	
 
			return event;
 
		}
 
	},
 

	
 
	mouseHooks: {
 
		props: ( "button buttons clientX clientY offsetX offsetY pageX pageY " +
 
			"screenX screenY toElement" ).split( " " ),
 
		filter: function( event, original ) {
 
			var eventDoc, doc, body,
 
				button = original.button;
 

	
 
			// Calculate pageX/Y if missing and clientX/Y available
 
			if ( event.pageX == null && original.clientX != null ) {
 
				eventDoc = event.target.ownerDocument || document;
 
				doc = eventDoc.documentElement;
 
				body = eventDoc.body;
 

	
 
				event.pageX = original.clientX +
 
					( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) -
 
					( doc && doc.clientLeft || body && body.clientLeft || 0 );
 
				event.pageY = original.clientY +
 
					( doc && doc.scrollTop  || body && body.scrollTop  || 0 ) -
 
					( doc && doc.clientTop  || body && body.clientTop  || 0 );
 
			}
 

	
 
			// Add which for click: 1 === left; 2 === middle; 3 === right
 
			// Note: button is not normalized, so don't use it
 
			if ( !event.which && button !== undefined ) {
 
				event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
 
			}
 

	
 
			return event;
 
		}
 
	},
 

	
 
	fix: function( event ) {
 
		if ( event[ jQuery.expando ] ) {
 
			return event;
 
		}
 

	
 
		// Create a writable copy of the event object and normalize some properties
 
		var i, prop, copy,
 
			type = event.type,
 
			originalEvent = event,
 
			fixHook = this.fixHooks[ type ];
 

	
 
		if ( !fixHook ) {
 
			this.fixHooks[ type ] = fixHook =
 
				rmouseEvent.test( type ) ? this.mouseHooks :
 
				rkeyEvent.test( type ) ? this.keyHooks :
 
				{};
 
		}
 
		copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
 

	
 
		event = new jQuery.Event( originalEvent );
 

	
 
		i = copy.length;
 
		while ( i-- ) {
 
			prop = copy[ i ];
 
			event[ prop ] = originalEvent[ prop ];
 
		}
 

	
 
		// Support: Cordova 2.5 (WebKit) (#13255)
 
		// All events should have a target; Cordova deviceready doesn't
 
		if ( !event.target ) {
 
			event.target = document;
 
		}
 

	
 
		// Support: Safari 6.0+, Chrome<28
 
		// Target should not be a text node (#504, #13143)
 
		if ( event.target.nodeType === 3 ) {
 
			event.target = event.target.parentNode;
 
		}
 

	
 
		return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
 
	},
 

	
 
	special: {
 
		load: {
 

	
 
			// Prevent triggered image.load events from bubbling to window.load
 
			noBubble: true
 
		},
 
		focus: {
 

	
 
			// Fire native event if possible so blur/focus sequence is correct
 
			trigger: function() {
 
				if ( this !== safeActiveElement() && this.focus ) {
 
					this.focus();
 
					return false;
 
				}
 
			},
 
			delegateType: "focusin"
 
		},
 
		blur: {
 
			trigger: function() {
 
				if ( this === safeActiveElement() && this.blur ) {
 
					this.blur();
 
					return false;
 
				}
 
			},
 
			delegateType: "focusout"
 
		},
 
		click: {
 

	
 
			// For checkbox, fire native event so checked state will be right
 
			trigger: function() {
 
				if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) {
 
					this.click();
 
					return false;
 
				}
 
			},
 

	
 
			// For cross-browser consistency, don't fire native .click() on links
 
			_default: function( event ) {
 
				return jQuery.nodeName( event.target, "a" );
 
			}
 
		},
 

	
 
		beforeunload: {
 
			postDispatch: function( event ) {
 

	
 
				// Support: Firefox 20+
 
				// Firefox doesn't alert if the returnValue field is not set.
 
				if ( event.result !== undefined && event.originalEvent ) {
 
					event.originalEvent.returnValue = event.result;
 
				}
 
			}
 
		}
 
	}
 
};
 

	
 
jQuery.removeEvent = function( elem, type, handle ) {
 

	
 
	// This "if" is needed for plain objects
 
	if ( elem.removeEventListener ) {
 
		elem.removeEventListener( type, handle );
 
	}
 
};
 

	
 
jQuery.Event = function( src, props ) {
 

	
 
	// Allow instantiation without the 'new' keyword
 
	if ( !( this instanceof jQuery.Event ) ) {
 
		return new jQuery.Event( src, props );
 
	}
 

	
 
	// Event object
 
	if ( src && src.type ) {
 
		this.originalEvent = src;
 
		this.type = src.type;
 

	
 
		// Events bubbling up the document may have been marked as prevented
 
		// by a handler lower down the tree; reflect the correct value.
 
		this.isDefaultPrevented = src.defaultPrevented ||
 
				src.defaultPrevented === undefined &&
 

	
 
				// Support: Android<4.0
 
				src.returnValue === false ?
 
			returnTrue :
 
			returnFalse;
 

	
 
	// Event type
 
	} else {
 
		this.type = src;
 
	}
 

	
 
	// Put explicitly provided properties onto the event object
 
	if ( props ) {
 
		jQuery.extend( this, props );
 
	}
 

	
 
	// Create a timestamp if incoming event doesn't have one
 
	this.timeStamp = src && src.timeStamp || jQuery.now();
 

	
 
	// Mark it as fixed
 
	this[ jQuery.expando ] = true;
 
};
 

	
 
// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
 
// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
 
jQuery.Event.prototype = {
 
	constructor: jQuery.Event,
 
	isDefaultPrevented: returnFalse,
 
	isPropagationStopped: returnFalse,
 
	isImmediatePropagationStopped: returnFalse,
 

	
 
	preventDefault: function() {
 
		var e = this.originalEvent;
 

	
 
		this.isDefaultPrevented = returnTrue;
 

	
 
		if ( e ) {
 
			e.preventDefault();
 
		}
 
	},
 
	stopPropagation: function() {
 
		var e = this.originalEvent;
 

	
 
		this.isPropagationStopped = returnTrue;
 

	
 
		if ( e ) {
 
			e.stopPropagation();
 
		}
 
	},
 
	stopImmediatePropagation: function() {
 
		var e = this.originalEvent;
 

	
 
		this.isImmediatePropagationStopped = returnTrue;
 

	
 
		if ( e ) {
 
			e.stopImmediatePropagation();
 
		}
 

	
 
		this.stopPropagation();
 
	}
 
};
 

	
 
// Create mouseenter/leave events using mouseover/out and event-time checks
 
// so that event delegation works in jQuery.
 
// Do the same for pointerenter/pointerleave and pointerover/pointerout
 
//
 
// Support: Safari 7 only
 
// Safari sends mouseenter too often; see:
 
// https://code.google.com/p/chromium/issues/detail?id=470258
 
// for the description of the bug (it existed in older Chrome versions as well).
 
jQuery.each( {
 
	mouseenter: "mouseover",
 
	mouseleave: "mouseout",
 
	pointerenter: "pointerover",
 
	pointerleave: "pointerout"
 
}, function( orig, fix ) {
 
	jQuery.event.special[ orig ] = {
 
		delegateType: fix,
 
		bindType: fix,
 

	
 
		handle: function( event ) {
 
			var ret,
 
				target = this,
 
				related = event.relatedTarget,
 
				handleObj = event.handleObj;
 

	
 
			// For mouseenter/leave call the handler if related is outside the target.
 
			// NB: No relatedTarget if the mouse left/entered the browser window
 
			if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
 
				event.type = handleObj.origType;
 
				ret = handleObj.handler.apply( this, arguments );
 
				event.type = fix;
 
			}
 
			return ret;
 
		}
 
	};
 
} );
 

	
 
jQuery.fn.extend( {
 
	on: function( types, selector, data, fn ) {
 
		return on( this, types, selector, data, fn );
 
	},
 
	one: function( types, selector, data, fn ) {
 
		return on( this, types, selector, data, fn, 1 );
 
	},
 
	off: function( types, selector, fn ) {
 
		var handleObj, type;
 
		if ( types && types.preventDefault && types.handleObj ) {
 

	
 
			// ( event )  dispatched jQuery.Event
 
			handleObj = types.handleObj;
 
			jQuery( types.delegateTarget ).off(
 
				handleObj.namespace ?
 
					handleObj.origType + "." + handleObj.namespace :
 
					handleObj.origType,
 
				handleObj.selector,
 
				handleObj.handler
 
			);
 
			return this;
 
		}
 
		if ( typeof types === "object" ) {
 

	
 
			// ( types-object [, selector] )
 
			for ( type in types ) {
 
				this.off( type, selector, types[ type ] );
 
			}
 
			return this;
 
		}
 
		if ( selector === false || typeof selector === "function" ) {
 

	
 
			// ( types [, fn] )
 
			fn = selector;
 
			selector = undefined;
 
		}
 
		if ( fn === false ) {
 
			fn = returnFalse;
 
		}
 
		return this.each( function() {
 
			jQuery.event.remove( this, types, fn, selector );
 
		} );
 
	}
 
} );
 

	
 

	
 
var
 
	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
 

	
 
	// Support: IE 10-11, Edge 10240+
 
	// In IE/Edge using regex groups here causes severe slowdowns.
 
	// See https://connect.microsoft.com/IE/feedback/details/1736512/
 
	rnoInnerhtml = /<script|<style|<link/i,
 

	
 
	// checked="checked" or checked
 
	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
 
	rscriptTypeMasked = /^true\/(.*)/,
 
	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
 

	
 
// Manipulating tables requires a tbody
 
function manipulationTarget( elem, content ) {
 
	return jQuery.nodeName( elem, "table" ) &&
 
		jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ?
 

	
 
		elem.getElementsByTagName( "tbody" )[ 0 ] ||
 
			elem.appendChild( elem.ownerDocument.createElement( "tbody" ) ) :
 
		elem;
 
}
 

	
 
// Replace/restore the type attribute of script elements for safe DOM manipulation
 
function disableScript( elem ) {
 
	elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
 
	return elem;
 
}
 
function restoreScript( elem ) {
 
	var match = rscriptTypeMasked.exec( elem.type );
 

	
 
	if ( match ) {
 
		elem.type = match[ 1 ];
 
	} else {
 
		elem.removeAttribute( "type" );
 
	}
 

	
 
	return elem;
 
}
 

	
 
function cloneCopyEvent( src, dest ) {
 
	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
 

	
 
	if ( dest.nodeType !== 1 ) {
 
		return;
 
	}
 

	
 
	// 1. Copy private data: events, handlers, etc.
 
	if ( dataPriv.hasData( src ) ) {
 
		pdataOld = dataPriv.access( src );
 
		pdataCur = dataPriv.set( dest, pdataOld );
 
		events = pdataOld.events;
 

	
 
		if ( events ) {
 
			delete pdataCur.handle;
 
			pdataCur.events = {};
 

	
 
			for ( type in events ) {
 
				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
 
					jQuery.event.add( dest, type, events[ type ][ i ] );
 
				}
 
			}
 
		}
 
	}
 

	
 
	// 2. Copy user data
 
	if ( dataUser.hasData( src ) ) {
 
		udataOld = dataUser.access( src );
 
		udataCur = jQuery.extend( {}, udataOld );
 

	
 
		dataUser.set( dest, udataCur );
 
	}
 
}
 

	
 
// Fix IE bugs, see support tests
 
function fixInput( src, dest ) {
 
	var nodeName = dest.nodeName.toLowerCase();
 

	
 
	// Fails to persist the checked state of a cloned checkbox or radio button.
 
	if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
 
		dest.checked = src.checked;
 

	
 
	// Fails to return the selected option to the default selected state when cloning options
 
	} else if ( nodeName === "input" || nodeName === "textarea" ) {
 
		dest.defaultValue = src.defaultValue;
 
	}
 
}
 

	
 
function domManip( collection, args, callback, ignored ) {
 

	
 
	// Flatten any nested arrays
 
	args = concat.apply( [], args );
 

	
 
	var fragment, first, scripts, hasScripts, node, doc,
 
		i = 0,
 
		l = collection.length,
 
		iNoClone = l - 1,
 
		value = args[ 0 ],
 
		isFunction = jQuery.isFunction( value );
 

	
 
	// We can't cloneNode fragments that contain checked, in WebKit
 
	if ( isFunction ||
 
			( l > 1 && typeof value === "string" &&
 
				!support.checkClone && rchecked.test( value ) ) ) {
 
		return collection.each( function( index ) {
 
			var self = collection.eq( index );
 
			if ( isFunction ) {
 
				args[ 0 ] = value.call( this, index, self.html() );
 
			}
 
			domManip( self, args, callback, ignored );
 
		} );
 
	}
 

	
 
	if ( l ) {
 
		fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
 
		first = fragment.firstChild;
 

	
 
		if ( fragment.childNodes.length === 1 ) {
 
			fragment = first;
 
		}
 

	
 
		// Require either new content or an interest in ignored elements to invoke the callback
 
		if ( first || ignored ) {
 
			scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
 
			hasScripts = scripts.length;
 

	
 
			// Use the original fragment for the last item
 
			// instead of the first because it can end up
 
			// being emptied incorrectly in certain situations (#8070).
 
			for ( ; i < l; i++ ) {
 
				node = fragment;
 

	
 
				if ( i !== iNoClone ) {
 
					node = jQuery.clone( node, true, true );
 

	
 
					// Keep references to cloned scripts for later restoration
 
					if ( hasScripts ) {
 

	
 
						// Support: Android<4.1, PhantomJS<2
 
						// push.apply(_, arraylike) throws on ancient WebKit
 
						jQuery.merge( scripts, getAll( node, "script" ) );
 
					}
 
				}
 

	
 
				callback.call( collection[ i ], node, i );
 
			}
 

	
 
			if ( hasScripts ) {
 
				doc = scripts[ scripts.length - 1 ].ownerDocument;
 

	
 
				// Reenable scripts
 
				jQuery.map( scripts, restoreScript );
 

	
 
				// Evaluate executable scripts on first document insertion
 
				for ( i = 0; i < hasScripts; i++ ) {
 
					node = scripts[ i ];
 
					if ( rscriptType.test( node.type || "" ) &&
 
						!dataPriv.access( node, "globalEval" ) &&
 
						jQuery.contains( doc, node ) ) {
 

	
 
						if ( node.src ) {
 

	
 
							// Optional AJAX dependency, but won't run scripts if not present
 
							if ( jQuery._evalUrl ) {
 
								jQuery._evalUrl( node.src );
 
							}
 
						} else {
 
							jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) );
 
						}
 
					}
 
				}
 
			}
 
		}
 
	}
 

	
 
	return collection;
 
}
 

	
 
function remove( elem, selector, keepData ) {
 
	var node,
 
		nodes = selector ? jQuery.filter( selector, elem ) : elem,
 
		i = 0;
 

	
 
	for ( ; ( node = nodes[ i ] ) != null; i++ ) {
 
		if ( !keepData && node.nodeType === 1 ) {
 
			jQuery.cleanData( getAll( node ) );
 
		}
 

	
 
		if ( node.parentNode ) {
 
			if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
 
				setGlobalEval( getAll( node, "script" ) );
 
			}
 
			node.parentNode.removeChild( node );
 
		}
 
	}
 

	
 
	return elem;
 
}
 

	
 
jQuery.extend( {
 
	htmlPrefilter: function( html ) {
 
		return html.replace( rxhtmlTag, "<$1></$2>" );
 
	},
 

	
 
	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
 
		var i, l, srcElements, destElements,
 
			clone = elem.cloneNode( true ),
 
			inPage = jQuery.contains( elem.ownerDocument, elem );
 

	
 
		// Fix IE cloning issues
 
		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
 
				!jQuery.isXMLDoc( elem ) ) {
 

	
 
			// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
 
			destElements = getAll( clone );
 
			srcElements = getAll( elem );
 

	
 
			for ( i = 0, l = srcElements.length; i < l; i++ ) {
 
				fixInput( srcElements[ i ], destElements[ i ] );
 
			}
 
		}
 

	
 
		// Copy the events from the original to the clone
 
		if ( dataAndEvents ) {
 
			if ( deepDataAndEvents ) {
 
				srcElements = srcElements || getAll( elem );
 
				destElements = destElements || getAll( clone );
 

	
 
				for ( i = 0, l = srcElements.length; i < l; i++ ) {
 
					cloneCopyEvent( srcElements[ i ], destElements[ i ] );
 
				}
 
			} else {
 
				cloneCopyEvent( elem, clone );
 
			}
 
		}
 

	
 
		// Preserve script evaluation history
 
		destElements = getAll( clone, "script" );
 
		if ( destElements.length > 0 ) {
 
			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
 
		}
 

	
 
		// Return the cloned set
 
		return clone;
 
	},
 

	
 
	cleanData: function( elems ) {
 
		var data, elem, type,
 
			special = jQuery.event.special,
 
			i = 0;
 

	
 
		for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
 
			if ( acceptData( elem ) ) {
 
				if ( ( data = elem[ dataPriv.expando ] ) ) {
 
					if ( data.events ) {
 
						for ( type in data.events ) {
 
							if ( special[ type ] ) {
 
								jQuery.event.remove( elem, type );
 

	
 
							// This is a shortcut to avoid jQuery.event.remove's overhead
 
							} else {
 
								jQuery.removeEvent( elem, type, data.handle );
 
							}
 
						}
 
					}
 

	
 
					// Support: Chrome <= 35-45+
 
					// Assign undefined instead of using delete, see Data#remove
 
					elem[ dataPriv.expando ] = undefined;
 
				}
 
				if ( elem[ dataUser.expando ] ) {
 

	
 
					// Support: Chrome <= 35-45+
 
					// Assign undefined instead of using delete, see Data#remove
 
					elem[ dataUser.expando ] = undefined;
 
				}
 
			}
 
		}
 
	}
 
} );
 

	
 
jQuery.fn.extend( {
 

	
 
	// Keep domManip exposed until 3.0 (gh-2225)
 
	domManip: domManip,
 

	
 
	detach: function( selector ) {
 
		return remove( this, selector, true );
 
	},
 

	
 
	remove: function( selector ) {
 
		return remove( this, selector );
 
	},
 

	
 
	text: function( value ) {
 
		return access( this, function( value ) {
 
			return value === undefined ?
 
				jQuery.text( this ) :
 
				this.empty().each( function() {
 
					if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
 
						this.textContent = value;
 
					}
 
				} );
 
		}, null, value, arguments.length );
 
	},
 

	
 
	append: function() {
 
		return domManip( this, arguments, function( elem ) {
 
			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
 
				var target = manipulationTarget( this, elem );
 
				target.appendChild( elem );
 
			}
 
		} );
 
	},
 

	
 
	prepend: function() {
 
		return domManip( this, arguments, function( elem ) {
 
			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
 
				var target = manipulationTarget( this, elem );
 
				target.insertBefore( elem, target.firstChild );
 
			}
 
		} );
 
	},
 

	
 
	before: function() {
 
		return domManip( this, arguments, function( elem ) {
 
			if ( this.parentNode ) {
 
				this.parentNode.insertBefore( elem, this );
 
			}
 
		} );
 
	},
 

	
 
	after: function() {
 
		return domManip( this, arguments, function( elem ) {
 
			if ( this.parentNode ) {
 
				this.parentNode.insertBefore( elem, this.nextSibling );
 
			}
 
		} );
 
	},
 

	
 
	empty: function() {
 
		var elem,
 
			i = 0;
 

	
 
		for ( ; ( elem = this[ i ] ) != null; i++ ) {
 
			if ( elem.nodeType === 1 ) {
 

	
 
				// Prevent memory leaks
 
				jQuery.cleanData( getAll( elem, false ) );
 

	
 
				// Remove any remaining nodes
 
				elem.textContent = "";
 
			}
 
		}
 

	
 
		return this;
 
	},
 

	
 
	clone: function( dataAndEvents, deepDataAndEvents ) {
 
		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
 
		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
 

	
 
		return this.map( function() {
 
			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
 
		} );
 
	},
 

	
 
	html: function( value ) {
 
		return access( this, function( value ) {
 
			var elem = this[ 0 ] || {},
 
				i = 0,
 
				l = this.length;
 

	
 
			if ( value === undefined && elem.nodeType === 1 ) {
 
				return elem.innerHTML;
 
			}
 

	
 
			// See if we can take a shortcut and just use innerHTML
 
			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
 
				!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
 

	
 
				value = jQuery.htmlPrefilter( value );
 

	
 
				try {
 
					for ( ; i < l; i++ ) {
 
						elem = this[ i ] || {};
 

	
 
						// Remove element nodes and prevent memory leaks
 
						if ( elem.nodeType === 1 ) {
 
							jQuery.cleanData( getAll( elem, false ) );
 
							elem.innerHTML = value;
 
						}
 
					}
 

	
 
					elem = 0;
 

	
 
				// If using innerHTML throws an exception, use the fallback method
 
				} catch ( e ) {}
 
			}
 

	
 
			if ( elem ) {
 
				this.empty().append( value );
 
			}
 
		}, null, value, arguments.length );
 
	},
 

	
 
	replaceWith: function() {
 
		var ignored = [];
 

	
 
		// Make the changes, replacing each non-ignored context element with the new content
 
		return domManip( this, arguments, function( elem ) {
 
			var parent = this.parentNode;
 

	
 
			if ( jQuery.inArray( this, ignored ) < 0 ) {
 
				jQuery.cleanData( getAll( this ) );
 
				if ( parent ) {
 
					parent.replaceChild( elem, this );
 
				}
 
			}
 

	
 
		// Force callback invocation
 
		}, ignored );
 
	}
 
} );
 

	
 
jQuery.each( {
 
	appendTo: "append",
 
	prependTo: "prepend",
 
	insertBefore: "before",
 
	insertAfter: "after",
 
	replaceAll: "replaceWith"
 
}, function( name, original ) {
 
	jQuery.fn[ name ] = function( selector ) {
 
		var elems,
 
			ret = [],
 
			insert = jQuery( selector ),
 
			last = insert.length - 1,
 
			i = 0;
 

	
 
		for ( ; i <= last; i++ ) {
 
			elems = i === last ? this : this.clone( true );
 
			jQuery( insert[ i ] )[ original ]( elems );
 

	
 
			// Support: QtWebKit
 
			// .get() because push.apply(_, arraylike) throws
 
			push.apply( ret, elems.get() );
 
		}
 

	
 
		return this.pushStack( ret );
 
	};
 
} );
 

	
 

	
 
var iframe,
 
	elemdisplay = {
 

	
 
		// Support: Firefox
 
		// We have to pre-define these values for FF (#10227)
 
		HTML: "block",
 
		BODY: "block"
 
	};
 

	
 
/**
 
 * Retrieve the actual display of a element
 
 * @param {String} name nodeName of the element
 
 * @param {Object} doc Document object
 
 */
 

	
 
// Called only from within defaultDisplay
 
function actualDisplay( name, doc ) {
 
	var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
 

	
 
		display = jQuery.css( elem[ 0 ], "display" );
 

	
 
	// We don't have any data stored on the element,
 
	// so use "detach" method as fast way to get rid of the element
 
	elem.detach();
 

	
 
	return display;
 
}
 

	
 
/**
 
 * Try to determine the default display value of an element
 
 * @param {String} nodeName
 
 */
 
function defaultDisplay( nodeName ) {
 
	var doc = document,
 
		display = elemdisplay[ nodeName ];
 

	
 
	if ( !display ) {
 
		display = actualDisplay( nodeName, doc );
 

	
 
		// If the simple way fails, read from inside an iframe
 
		if ( display === "none" || !display ) {
 

	
 
			// Use the already-created iframe if possible
 
			iframe = ( iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" ) )
 
				.appendTo( doc.documentElement );
 

	
 
			// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
 
			doc = iframe[ 0 ].contentDocument;
 

	
 
			// Support: IE
 
			doc.write();
 
			doc.close();
 

	
 
			display = actualDisplay( nodeName, doc );
 
			iframe.detach();
 
		}
 

	
 
		// Store the correct default display
 
		elemdisplay[ nodeName ] = display;
 
	}
 

	
 
	return display;
 
}
 
var rmargin = ( /^margin/ );
 

	
 
var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
 

	
 
var getStyles = function( elem ) {
 

	
 
		// Support: IE<=11+, Firefox<=30+ (#15098, #14150)
 
		// IE throws on elements created in popups
 
		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
 
		var view = elem.ownerDocument.defaultView;
 

	
 
		if ( !view || !view.opener ) {
 
			view = window;
 
		}
 

	
 
		return view.getComputedStyle( elem );
 
	};
 

	
 
var swap = function( elem, options, callback, args ) {
 
	var ret, name,
 
		old = {};
 

	
 
	// Remember the old values, and insert the new ones
 
	for ( name in options ) {
 
		old[ name ] = elem.style[ name ];
 
		elem.style[ name ] = options[ name ];
 
	}
 

	
 
	ret = callback.apply( elem, args || [] );
 

	
 
	// Revert the old values
 
	for ( name in options ) {
 
		elem.style[ name ] = old[ name ];
 
	}
 

	
 
	return ret;
 
};
 

	
 

	
 
var documentElement = document.documentElement;
 

	
 

	
 

	
 
( function() {
 
	var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
 
		container = document.createElement( "div" ),
 
		div = document.createElement( "div" );
 

	
 
	// Finish early in limited (non-browser) environments
 
	if ( !div.style ) {
 
		return;
 
	}
 

	
 
	// Support: IE9-11+
 
	// Style of cloned element affects source element cloned (#8908)
 
	div.style.backgroundClip = "content-box";
 
	div.cloneNode( true ).style.backgroundClip = "";
 
	support.clearCloneStyle = div.style.backgroundClip === "content-box";
 

	
 
	container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
 
		"padding:0;margin-top:1px;position:absolute";
 
	container.appendChild( div );
 

	
 
	// Executing both pixelPosition & boxSizingReliable tests require only one layout
 
	// so they're executed at the same time to save the second computation.
 
	function computeStyleTests() {
 
		div.style.cssText =
 

	
 
			// Support: Firefox<29, Android 2.3
 
			// Vendor-prefix box-sizing
 
			"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;" +
 
			"position:relative;display:block;" +
 
			"margin:auto;border:1px;padding:1px;" +
 
			"top:1%;width:50%";
 
		div.innerHTML = "";
 
		documentElement.appendChild( container );
 

	
 
		var divStyle = window.getComputedStyle( div );
 
		pixelPositionVal = divStyle.top !== "1%";
 
		reliableMarginLeftVal = divStyle.marginLeft === "2px";
 
		boxSizingReliableVal = divStyle.width === "4px";
 

	
 
		// Support: Android 4.0 - 4.3 only
 
		// Some styles come back with percentage values, even though they shouldn't
 
		div.style.marginRight = "50%";
 
		pixelMarginRightVal = divStyle.marginRight === "4px";
 

	
 
		documentElement.removeChild( container );
 
	}
 

	
 
	jQuery.extend( support, {
 
		pixelPosition: function() {
 

	
 
			// This test is executed only once but we still do memoizing
 
			// since we can use the boxSizingReliable pre-computing.
 
			// No need to check if the test was already performed, though.
 
			computeStyleTests();
 
			return pixelPositionVal;
 
		},
 
		boxSizingReliable: function() {
 
			if ( boxSizingReliableVal == null ) {
 
				computeStyleTests();
 
			}
 
			return boxSizingReliableVal;
 
		},
 
		pixelMarginRight: function() {
 

	
 
			// Support: Android 4.0-4.3
 
			// We're checking for boxSizingReliableVal here instead of pixelMarginRightVal
 
			// since that compresses better and they're computed together anyway.
 
			if ( boxSizingReliableVal == null ) {
 
				computeStyleTests();
 
			}
 
			return pixelMarginRightVal;
 
		},
 
		reliableMarginLeft: function() {
 

	
 
			// Support: IE <=8 only, Android 4.0 - 4.3 only, Firefox <=3 - 37
 
			if ( boxSizingReliableVal == null ) {
 
				computeStyleTests();
 
			}
 
			return reliableMarginLeftVal;
 
		},
 
		reliableMarginRight: function() {
 

	
 
			// Support: Android 2.3
 
			// Check if div with explicit width and no margin-right incorrectly
 
			// gets computed margin-right based on width of container. (#3333)
 
			// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
 
			// This support function is only executed once so no memoizing is needed.
 
			var ret,
 
				marginDiv = div.appendChild( document.createElement( "div" ) );
 

	
 
			// Reset CSS: box-sizing; display; margin; border; padding
 
			marginDiv.style.cssText = div.style.cssText =
 

	
 
				// Support: Android 2.3
 
				// Vendor-prefix box-sizing
 
				"-webkit-box-sizing:content-box;box-sizing:content-box;" +
 
				"display:block;margin:0;border:0;padding:0";
 
			marginDiv.style.marginRight = marginDiv.style.width = "0";
 
			div.style.width = "1px";
 
			documentElement.appendChild( container );
 

	
 
			ret = !parseFloat( window.getComputedStyle( marginDiv ).marginRight );
 

	
 
			documentElement.removeChild( container );
 
			div.removeChild( marginDiv );
 

	
 
			return ret;
 
		}
 
	} );
 
} )();
 

	
 

	
 
function curCSS( elem, name, computed ) {
 
	var width, minWidth, maxWidth, ret,
 
		style = elem.style;
 

	
 
	computed = computed || getStyles( elem );
 
	ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined;
 

	
 
	// Support: Opera 12.1x only
 
	// Fall back to style even without computed
 
	// computed is undefined for elems on document fragments
 
	if ( ( ret === "" || ret === undefined ) && !jQuery.contains( elem.ownerDocument, elem ) ) {
 
		ret = jQuery.style( elem, name );
 
	}
 

	
 
	// Support: IE9
 
	// getPropertyValue is only needed for .css('filter') (#12537)
 
	if ( computed ) {
 

	
 
		// A tribute to the "awesome hack by Dean Edwards"
 
		// Android Browser returns percentage for some values,
 
		// but width seems to be reliably pixels.
 
		// This is against the CSSOM draft spec:
 
		// http://dev.w3.org/csswg/cssom/#resolved-values
 
		if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
 

	
 
			// Remember the original values
 
			width = style.width;
 
			minWidth = style.minWidth;
 
			maxWidth = style.maxWidth;
 

	
 
			// Put in the new values to get a computed value out
 
			style.minWidth = style.maxWidth = style.width = ret;
 
			ret = computed.width;
 

	
 
			// Revert the changed values
 
			style.width = width;
 
			style.minWidth = minWidth;
 
			style.maxWidth = maxWidth;
 
		}
 
	}
 

	
 
	return ret !== undefined ?
 

	
 
		// Support: IE9-11+
 
		// IE returns zIndex value as an integer.
 
		ret + "" :
 
		ret;
 
}
 

	
 

	
 
function addGetHookIf( conditionFn, hookFn ) {
 

	
 
	// Define the hook, we'll check on the first run if it's really needed.
 
	return {
 
		get: function() {
 
			if ( conditionFn() ) {
 

	
 
				// Hook not needed (or it's not possible to use it due
 
				// to missing dependency), remove it.
 
				delete this.get;
 
				return;
 
			}
 

	
 
			// Hook needed; redefine it so that the support test is not executed again.
 
			return ( this.get = hookFn ).apply( this, arguments );
 
		}
 
	};
 
}
 

	
 

	
 
var
 

	
 
	// Swappable if display is none or starts with table
 
	// except "table", "table-cell", or "table-caption"
 
	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
 
	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
 

	
 
	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
 
	cssNormalTransform = {
 
		letterSpacing: "0",
 
		fontWeight: "400"
 
	},
 

	
 
	cssPrefixes = [ "Webkit", "O", "Moz", "ms" ],
 
	emptyStyle = document.createElement( "div" ).style;
 

	
 
// Return a css property mapped to a potentially vendor prefixed property
 
function vendorPropName( name ) {
 

	
 
	// Shortcut for names that are not vendor prefixed
 
	if ( name in emptyStyle ) {
 
		return name;
 
	}
 

	
 
	// Check for vendor prefixed names
 
	var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
 
		i = cssPrefixes.length;
 

	
 
	while ( i-- ) {
 
		name = cssPrefixes[ i ] + capName;
 
		if ( name in emptyStyle ) {
 
			return name;
 
		}
 
	}
 
}
 

	
 
function setPositiveNumber( elem, value, subtract ) {
 

	
 
	// Any relative (+/-) values have already been
 
	// normalized at this point
 
	var matches = rcssNum.exec( value );
 
	return matches ?
 

	
 
		// Guard against undefined "subtract", e.g., when used as in cssHooks
 
		Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
 
		value;
 
}
 

	
 
function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
 
	var i = extra === ( isBorderBox ? "border" : "content" ) ?
 

	
 
		// If we already have the right measurement, avoid augmentation
 
		4 :
 

	
 
		// Otherwise initialize for horizontal or vertical properties
 
		name === "width" ? 1 : 0,
 

	
 
		val = 0;
 

	
 
	for ( ; i < 4; i += 2 ) {
 

	
 
		// Both box models exclude margin, so add it if we want it
 
		if ( extra === "margin" ) {
 
			val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
 
		}
 

	
 
		if ( isBorderBox ) {
 

	
 
			// border-box includes padding, so remove it if we want content
 
			if ( extra === "content" ) {
 
				val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
 
			}
 

	
 
			// At this point, extra isn't border nor margin, so remove border
 
			if ( extra !== "margin" ) {
 
				val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
 
			}
 
		} else {
 

	
 
			// At this point, extra isn't content, so add padding
 
			val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
 

	
 
			// At this point, extra isn't content nor padding, so add border
 
			if ( extra !== "padding" ) {
 
				val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
 
			}
 
		}
 
	}
 

	
 
	return val;
 
}
 

	
 
function getWidthOrHeight( elem, name, extra ) {
 

	
 
	// Start with offset property, which is equivalent to the border-box value
 
	var valueIsBorderBox = true,
 
		val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
 
		styles = getStyles( elem ),
 
		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
 

	
 
	// Support: IE11 only
 
	// In IE 11 fullscreen elements inside of an iframe have
 
	// 100x too small dimensions (gh-1764).
 
	if ( document.msFullscreenElement && window.top !== window ) {
 

	
 
		// Support: IE11 only
 
		// Running getBoundingClientRect on a disconnected node
 
		// in IE throws an error.
 
		if ( elem.getClientRects().length ) {
 
			val = Math.round( elem.getBoundingClientRect()[ name ] * 100 );
 
		}
 
	}
 

	
 
	// Some non-html elements return undefined for offsetWidth, so check for null/undefined
 
	// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
 
	// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
 
	if ( val <= 0 || val == null ) {
 

	
 
		// Fall back to computed then uncomputed css if necessary
 
		val = curCSS( elem, name, styles );
 
		if ( val < 0 || val == null ) {
 
			val = elem.style[ name ];
 
		}
 

	
 
		// Computed unit is not pixels. Stop here and return.
 
		if ( rnumnonpx.test( val ) ) {
 
			return val;
 
		}
 

	
 
		// Check for style in case a browser which returns unreliable values
 
		// for getComputedStyle silently falls back to the reliable elem.style
 
		valueIsBorderBox = isBorderBox &&
 
			( support.boxSizingReliable() || val === elem.style[ name ] );
 

	
 
		// Normalize "", auto, and prepare for extra
 
		val = parseFloat( val ) || 0;
 
	}
 

	
 
	// Use the active box-sizing model to add/subtract irrelevant styles
 
	return ( val +
 
		augmentWidthOrHeight(
 
			elem,
 
			name,
 
			extra || ( isBorderBox ? "border" : "content" ),
 
			valueIsBorderBox,
 
			styles
 
		)
 
	) + "px";
 
}
 

	
 
function showHide( elements, show ) {
 
	var display, elem, hidden,
 
		values = [],
 
		index = 0,
 
		length = elements.length;
 

	
 
	for ( ; index < length; index++ ) {
 
		elem = elements[ index ];
 
		if ( !elem.style ) {
 
			continue;
 
		}
 

	
 
		values[ index ] = dataPriv.get( elem, "olddisplay" );
 
		display = elem.style.display;
 
		if ( show ) {
 

	
 
			// Reset the inline display of this element to learn if it is
 
			// being hidden by cascaded rules or not
 
			if ( !values[ index ] && display === "none" ) {
 
				elem.style.display = "";
 
			}
 

	
 
			// Set elements which have been overridden with display: none
 
			// in a stylesheet to whatever the default browser style is
 
			// for such an element
 
			if ( elem.style.display === "" && isHidden( elem ) ) {
 
				values[ index ] = dataPriv.access(
 
					elem,
 
					"olddisplay",
 
					defaultDisplay( elem.nodeName )
 
				);
 
			}
 
		} else {
 
			hidden = isHidden( elem );
 

	
 
			if ( display !== "none" || !hidden ) {
 
				dataPriv.set(
 
					elem,
 
					"olddisplay",
 
					hidden ? display : jQuery.css( elem, "display" )
 
				);
 
			}
 
		}
 
	}
 

	
 
	// Set the display of most of the elements in a second loop
 
	// to avoid the constant reflow
 
	for ( index = 0; index < length; index++ ) {
 
		elem = elements[ index ];
 
		if ( !elem.style ) {
 
			continue;
 
		}
 
		if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
 
			elem.style.display = show ? values[ index ] || "" : "none";
 
		}
 
	}
 

	
 
	return elements;
 
}
 

	
 
jQuery.extend( {
 

	
 
	// Add in style property hooks for overriding the default
 
	// behavior of getting and setting a style property
 
	cssHooks: {
 
		opacity: {
 
			get: function( elem, computed ) {
 
				if ( computed ) {
 

	
 
					// We should always get a number back from opacity
 
					var ret = curCSS( elem, "opacity" );
 
					return ret === "" ? "1" : ret;
 
				}
 
			}
 
		}
 
	},
 

	
 
	// Don't automatically add "px" to these possibly-unitless properties
 
	cssNumber: {
 
		"animationIterationCount": true,
 
		"columnCount": true,
 
		"fillOpacity": true,
 
		"flexGrow": true,
 
		"flexShrink": true,
 
		"fontWeight": true,
 
		"lineHeight": true,
 
		"opacity": true,
 
		"order": true,
 
		"orphans": true,
 
		"widows": true,
 
		"zIndex": true,
 
		"zoom": true
 
	},
 

	
 
	// Add in properties whose names you wish to fix before
 
	// setting or getting the value
 
	cssProps: {
 
		"float": "cssFloat"
 
	},
 

	
 
	// Get and set the style property on a DOM Node
 
	style: function( elem, name, value, extra ) {
 

	
 
		// Don't set styles on text and comment nodes
 
		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
 
			return;
 
		}
 

	
 
		// Make sure that we're working with the right name
 
		var ret, type, hooks,
 
			origName = jQuery.camelCase( name ),
 
			style = elem.style;
 

	
 
		name = jQuery.cssProps[ origName ] ||
 
			( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
 

	
 
		// Gets hook for the prefixed version, then unprefixed version
 
		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
 

	
 
		// Check if we're setting a value
 
		if ( value !== undefined ) {
 
			type = typeof value;
 

	
 
			// Convert "+=" or "-=" to relative numbers (#7345)
 
			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
 
				value = adjustCSS( elem, name, ret );
 

	
 
				// Fixes bug #9237
 
				type = "number";
 
			}
 

	
 
			// Make sure that null and NaN values aren't set (#7116)
 
			if ( value == null || value !== value ) {
 
				return;
 
			}
 

	
 
			// If a number was passed in, add the unit (except for certain CSS properties)
 
			if ( type === "number" ) {
 
				value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
 
			}
 

	
 
			// Support: IE9-11+
 
			// background-* props affect original clone's values
 
			if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
 
				style[ name ] = "inherit";
 
			}
 

	
 
			// If a hook was provided, use that value, otherwise just set the specified value
 
			if ( !hooks || !( "set" in hooks ) ||
 
				( value = hooks.set( elem, value, extra ) ) !== undefined ) {
 

	
 
				style[ name ] = value;
 
			}
 

	
 
		} else {
 

	
 
			// If a hook was provided get the non-computed value from there
 
			if ( hooks && "get" in hooks &&
 
				( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
 

	
 
				return ret;
 
			}
 

	
 
			// Otherwise just get the value from the style object
 
			return style[ name ];
 
		}
 
	},
 

	
 
	css: function( elem, name, extra, styles ) {
 
		var val, num, hooks,
 
			origName = jQuery.camelCase( name );
 

	
 
		// Make sure that we're working with the right name
 
		name = jQuery.cssProps[ origName ] ||
 
			( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );
 

	
 
		// Try prefixed name followed by the unprefixed name
 
		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
 

	
 
		// If a hook was provided get the computed value from there
 
		if ( hooks && "get" in hooks ) {
 
			val = hooks.get( elem, true, extra );
 
		}
 

	
 
		// Otherwise, if a way to get the computed value exists, use that
 
		if ( val === undefined ) {
 
			val = curCSS( elem, name, styles );
 
		}
 

	
 
		// Convert "normal" to computed value
 
		if ( val === "normal" && name in cssNormalTransform ) {
 
			val = cssNormalTransform[ name ];
 
		}
 

	
 
		// Make numeric if forced or a qualifier was provided and val looks numeric
 
		if ( extra === "" || extra ) {
 
			num = parseFloat( val );
 
			return extra === true || isFinite( num ) ? num || 0 : val;
 
		}
 
		return val;
 
	}
 
} );
 

	
 
jQuery.each( [ "height", "width" ], function( i, name ) {
 
	jQuery.cssHooks[ name ] = {
 
		get: function( elem, computed, extra ) {
 
			if ( computed ) {
 

	
 
				// Certain elements can have dimension info if we invisibly show them
 
				// but it must have a current display style that would benefit
 
				return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
 
					elem.offsetWidth === 0 ?
 
						swap( elem, cssShow, function() {
 
							return getWidthOrHeight( elem, name, extra );
 
						} ) :
 
						getWidthOrHeight( elem, name, extra );
 
			}
 
		},
 

	
 
		set: function( elem, value, extra ) {
 
			var matches,
 
				styles = extra && getStyles( elem ),
 
				subtract = extra && augmentWidthOrHeight(
 
					elem,
 
					name,
 
					extra,
 
					jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
 
					styles
 
				);
 

	
 
			// Convert to pixels if value adjustment is needed
 
			if ( subtract && ( matches = rcssNum.exec( value ) ) &&
 
				( matches[ 3 ] || "px" ) !== "px" ) {
 

	
 
				elem.style[ name ] = value;
 
				value = jQuery.css( elem, name );
 
			}
 

	
 
			return setPositiveNumber( elem, value, subtract );
 
		}
 
	};
 
} );
 

	
 
jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
 
	function( elem, computed ) {
 
		if ( computed ) {
 
			return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
 
				elem.getBoundingClientRect().left -
 
					swap( elem, { marginLeft: 0 }, function() {
 
						return elem.getBoundingClientRect().left;
 
					} )
 
				) + "px";
 
		}
 
	}
 
);
 

	
 
// Support: Android 2.3
 
jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,
 
	function( elem, computed ) {
 
		if ( computed ) {
 
			return swap( elem, { "display": "inline-block" },
 
				curCSS, [ elem, "marginRight" ] );
 
		}
 
	}
 
);
 

	
 
// These hooks are used by animate to expand properties
 
jQuery.each( {
 
	margin: "",
 
	padding: "",
 
	border: "Width"
 
}, function( prefix, suffix ) {
 
	jQuery.cssHooks[ prefix + suffix ] = {
 
		expand: function( value ) {
 
			var i = 0,
 
				expanded = {},
 

	
 
				// Assumes a single number if not a string
 
				parts = typeof value === "string" ? value.split( " " ) : [ value ];
 

	
 
			for ( ; i < 4; i++ ) {
 
				expanded[ prefix + cssExpand[ i ] + suffix ] =
 
					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
 
			}
 

	
 
			return expanded;
 
		}
 
	};
 

	
 
	if ( !rmargin.test( prefix ) ) {
 
		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
 
	}
 
} );
 

	
 
jQuery.fn.extend( {
 
	css: function( name, value ) {
 
		return access( this, function( elem, name, value ) {
 
			var styles, len,
 
				map = {},
 
				i = 0;
 

	
 
			if ( jQuery.isArray( name ) ) {
 
				styles = getStyles( elem );
 
				len = name.length;
 

	
 
				for ( ; i < len; i++ ) {
 
					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
 
				}
 

	
 
				return map;
 
			}
 

	
 
			return value !== undefined ?
 
				jQuery.style( elem, name, value ) :
 
				jQuery.css( elem, name );
 
		}, name, value, arguments.length > 1 );
 
	},
 
	show: function() {
 
		return showHide( this, true );
 
	},
 
	hide: function() {
 
		return showHide( this );
 
	},
 
	toggle: function( state ) {
 
		if ( typeof state === "boolean" ) {
 
			return state ? this.show() : this.hide();
 
		}
 

	
 
		return this.each( function() {
 
			if ( isHidden( this ) ) {
 
				jQuery( this ).show();
 
			} else {
 
				jQuery( this ).hide();
 
			}
 
		} );
 
	}
 
} );
 

	
 

	
 
function Tween( elem, options, prop, end, easing ) {
 
	return new Tween.prototype.init( elem, options, prop, end, easing );
 
}
 
jQuery.Tween = Tween;
 

	
 
Tween.prototype = {
 
	constructor: Tween,
 
	init: function( elem, options, prop, end, easing, unit ) {
 
		this.elem = elem;
 
		this.prop = prop;
 
		this.easing = easing || jQuery.easing._default;
 
		this.options = options;
 
		this.start = this.now = this.cur();
 
		this.end = end;
 
		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
 
	},
 
	cur: function() {
 
		var hooks = Tween.propHooks[ this.prop ];
 

	
 
		return hooks && hooks.get ?
 
			hooks.get( this ) :
 
			Tween.propHooks._default.get( this );
 
	},
 
	run: function( percent ) {
 
		var eased,
 
			hooks = Tween.propHooks[ this.prop ];
 

	
 
		if ( this.options.duration ) {
 
			this.pos = eased = jQuery.easing[ this.easing ](
 
				percent, this.options.duration * percent, 0, 1, this.options.duration
 
			);
 
		} else {
 
			this.pos = eased = percent;
 
		}
 
		this.now = ( this.end - this.start ) * eased + this.start;
 

	
 
		if ( this.options.step ) {
 
			this.options.step.call( this.elem, this.now, this );
 
		}
 

	
 
		if ( hooks && hooks.set ) {
 
			hooks.set( this );
 
		} else {
 
			Tween.propHooks._default.set( this );
 
		}
 
		return this;
 
	}
 
};
 

	
 
Tween.prototype.init.prototype = Tween.prototype;
 

	
 
Tween.propHooks = {
 
	_default: {
 
		get: function( tween ) {
 
			var result;
 

	
 
			// Use a property on the element directly when it is not a DOM element,
 
			// or when there is no matching style property that exists.
 
			if ( tween.elem.nodeType !== 1 ||
 
				tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
 
				return tween.elem[ tween.prop ];
 
			}
 

	
 
			// Passing an empty string as a 3rd parameter to .css will automatically
 
			// attempt a parseFloat and fallback to a string if the parse fails.
 
			// Simple values such as "10px" are parsed to Float;
 
			// complex values such as "rotate(1rad)" are returned as-is.
 
			result = jQuery.css( tween.elem, tween.prop, "" );
 

	
 
			// Empty strings, null, undefined and "auto" are converted to 0.
 
			return !result || result === "auto" ? 0 : result;
 
		},
 
		set: function( tween ) {
 

	
 
			// Use step hook for back compat.
 
			// Use cssHook if its there.
 
			// Use .style if available and use plain properties where available.
 
			if ( jQuery.fx.step[ tween.prop ] ) {
 
				jQuery.fx.step[ tween.prop ]( tween );
 
			} else if ( tween.elem.nodeType === 1 &&
 
				( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
 
					jQuery.cssHooks[ tween.prop ] ) ) {
 
				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
 
			} else {
 
				tween.elem[ tween.prop ] = tween.now;
 
			}
 
		}
 
	}
 
};
 

	
 
// Support: IE9
 
// Panic based approach to setting things on disconnected nodes
 
Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
 
	set: function( tween ) {
 
		if ( tween.elem.nodeType && tween.elem.parentNode ) {
 
			tween.elem[ tween.prop ] = tween.now;
 
		}
 
	}
 
};
 

	
 
jQuery.easing = {
 
	linear: function( p ) {
 
		return p;
 
	},
 
	swing: function( p ) {
 
		return 0.5 - Math.cos( p * Math.PI ) / 2;
 
	},
 
	_default: "swing"
 
};
 

	
 
jQuery.fx = Tween.prototype.init;
 

	
 
// Back Compat <1.8 extension point
 
jQuery.fx.step = {};
 

	
 

	
 

	
 

	
 
var
 
	fxNow, timerId,
 
	rfxtypes = /^(?:toggle|show|hide)$/,
 
	rrun = /queueHooks$/;
 

	
 
// Animations created synchronously will run synchronously
 
function createFxNow() {
 
	window.setTimeout( function() {
 
		fxNow = undefined;
 
	} );
 
	return ( fxNow = jQuery.now() );
 
}
 

	
 
// Generate parameters to create a standard animation
 
function genFx( type, includeWidth ) {
 
	var which,
 
		i = 0,
 
		attrs = { height: type };
 

	
 
	// If we include width, step value is 1 to do all cssExpand values,
 
	// otherwise step value is 2 to skip over Left and Right
 
	includeWidth = includeWidth ? 1 : 0;
 
	for ( ; i < 4 ; i += 2 - includeWidth ) {
 
		which = cssExpand[ i ];
 
		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
 
	}
 

	
 
	if ( includeWidth ) {
 
		attrs.opacity = attrs.width = type;
 
	}
 

	
 
	return attrs;
 
}
 

	
 
function createTween( value, prop, animation ) {
 
	var tween,
 
		collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
 
		index = 0,
 
		length = collection.length;
 
	for ( ; index < length; index++ ) {
 
		if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
 

	
 
			// We're done with this property
 
			return tween;
 
		}
 
	}
 
}
 

	
 
function defaultPrefilter( elem, props, opts ) {
 
	/* jshint validthis: true */
 
	var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,
 
		anim = this,
 
		orig = {},
 
		style = elem.style,
 
		hidden = elem.nodeType && isHidden( elem ),
 
		dataShow = dataPriv.get( elem, "fxshow" );
 

	
 
	// Handle queue: false promises
 
	if ( !opts.queue ) {
 
		hooks = jQuery._queueHooks( elem, "fx" );
 
		if ( hooks.unqueued == null ) {
 
			hooks.unqueued = 0;
 
			oldfire = hooks.empty.fire;
 
			hooks.empty.fire = function() {
 
				if ( !hooks.unqueued ) {
 
					oldfire();
 
				}
 
			};
 
		}
 
		hooks.unqueued++;
 

	
 
		anim.always( function() {
 

	
 
			// Ensure the complete handler is called before this completes
 
			anim.always( function() {
 
				hooks.unqueued--;
 
				if ( !jQuery.queue( elem, "fx" ).length ) {
 
					hooks.empty.fire();
 
				}
 
			} );
 
		} );
 
	}
 

	
 
	// Height/width overflow pass
 
	if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
 

	
 
		// Make sure that nothing sneaks out
 
		// Record all 3 overflow attributes because IE9-10 do not
 
		// change the overflow attribute when overflowX and
 
		// overflowY are set to the same value
 
		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
 

	
 
		// Set display property to inline-block for height/width
 
		// animations on inline elements that are having width/height animated
 
		display = jQuery.css( elem, "display" );
 

	
 
		// Test default display if display is currently "none"
 
		checkDisplay = display === "none" ?
 
			dataPriv.get( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
 

	
 
		if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {
 
			style.display = "inline-block";
 
		}
 
	}
 

	
 
	if ( opts.overflow ) {
 
		style.overflow = "hidden";
 
		anim.always( function() {
 
			style.overflow = opts.overflow[ 0 ];
 
			style.overflowX = opts.overflow[ 1 ];
 
			style.overflowY = opts.overflow[ 2 ];
 
		} );
 
	}
 

	
 
	// show/hide pass
 
	for ( prop in props ) {
 
		value = props[ prop ];
 
		if ( rfxtypes.exec( value ) ) {
 
			delete props[ prop ];
 
			toggle = toggle || value === "toggle";
 
			if ( value === ( hidden ? "hide" : "show" ) ) {
 

	
 
				// If there is dataShow left over from a stopped hide or show
 
				// and we are going to proceed with show, we should pretend to be hidden
 
				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
 
					hidden = true;
 
				} else {
 
					continue;
 
				}
 
			}
 
			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
 

	
 
		// Any non-fx value stops us from restoring the original display value
 
		} else {
 
			display = undefined;
 
		}
 
	}
 

	
 
	if ( !jQuery.isEmptyObject( orig ) ) {
 
		if ( dataShow ) {
 
			if ( "hidden" in dataShow ) {
 
				hidden = dataShow.hidden;
 
			}
 
		} else {
 
			dataShow = dataPriv.access( elem, "fxshow", {} );
 
		}
 

	
 
		// Store state if its toggle - enables .stop().toggle() to "reverse"
 
		if ( toggle ) {
 
			dataShow.hidden = !hidden;
 
		}
 
		if ( hidden ) {
 
			jQuery( elem ).show();
 
		} else {
 
			anim.done( function() {
 
				jQuery( elem ).hide();
 
			} );
 
		}
 
		anim.done( function() {
 
			var prop;
 

	
 
			dataPriv.remove( elem, "fxshow" );
 
			for ( prop in orig ) {
 
				jQuery.style( elem, prop, orig[ prop ] );
 
			}
 
		} );
 
		for ( prop in orig ) {
 
			tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
 

	
 
			if ( !( prop in dataShow ) ) {
 
				dataShow[ prop ] = tween.start;
 
				if ( hidden ) {
 
					tween.end = tween.start;
 
					tween.start = prop === "width" || prop === "height" ? 1 : 0;
 
				}
 
			}
 
		}
 

	
 
	// If this is a noop like .hide().hide(), restore an overwritten display value
 
	} else if ( ( display === "none" ? defaultDisplay( elem.nodeName ) : display ) === "inline" ) {
 
		style.display = display;
 
	}
 
}
 

	
 
function propFilter( props, specialEasing ) {
 
	var index, name, easing, value, hooks;
 

	
 
	// camelCase, specialEasing and expand cssHook pass
 
	for ( index in props ) {
 
		name = jQuery.camelCase( index );
 
		easing = specialEasing[ name ];
 
		value = props[ index ];
 
		if ( jQuery.isArray( value ) ) {
 
			easing = value[ 1 ];
 
			value = props[ index ] = value[ 0 ];
 
		}
 

	
 
		if ( index !== name ) {
 
			props[ name ] = value;
 
			delete props[ index ];
 
		}
 

	
 
		hooks = jQuery.cssHooks[ name ];
 
		if ( hooks && "expand" in hooks ) {
 
			value = hooks.expand( value );
 
			delete props[ name ];
 

	
 
			// Not quite $.extend, this won't overwrite existing keys.
 
			// Reusing 'index' because we have the correct "name"
 
			for ( index in value ) {
 
				if ( !( index in props ) ) {
 
					props[ index ] = value[ index ];
 
					specialEasing[ index ] = easing;
 
				}
 
			}
 
		} else {
 
			specialEasing[ name ] = easing;
 
		}
 
	}
 
}
 

	
 
function Animation( elem, properties, options ) {
 
	var result,
 
		stopped,
 
		index = 0,
 
		length = Animation.prefilters.length,
 
		deferred = jQuery.Deferred().always( function() {
 

	
 
			// Don't match elem in the :animated selector
 
			delete tick.elem;
 
		} ),
 
		tick = function() {
 
			if ( stopped ) {
 
				return false;
 
			}
 
			var currentTime = fxNow || createFxNow(),
 
				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
 

	
 
				// Support: Android 2.3
 
				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
 
				temp = remaining / animation.duration || 0,
 
				percent = 1 - temp,
 
				index = 0,
 
				length = animation.tweens.length;
 

	
 
			for ( ; index < length ; index++ ) {
 
				animation.tweens[ index ].run( percent );
 
			}
 

	
 
			deferred.notifyWith( elem, [ animation, percent, remaining ] );
 

	
 
			if ( percent < 1 && length ) {
 
				return remaining;
 
			} else {
 
				deferred.resolveWith( elem, [ animation ] );
 
				return false;
 
			}
 
		},
 
		animation = deferred.promise( {
 
			elem: elem,
 
			props: jQuery.extend( {}, properties ),
 
			opts: jQuery.extend( true, {
 
				specialEasing: {},
 
				easing: jQuery.easing._default
 
			}, options ),
 
			originalProperties: properties,
 
			originalOptions: options,
 
			startTime: fxNow || createFxNow(),
 
			duration: options.duration,
 
			tweens: [],
 
			createTween: function( prop, end ) {
 
				var tween = jQuery.Tween( elem, animation.opts, prop, end,
 
						animation.opts.specialEasing[ prop ] || animation.opts.easing );
 
				animation.tweens.push( tween );
 
				return tween;
 
			},
 
			stop: function( gotoEnd ) {
 
				var index = 0,
 

	
 
					// If we are going to the end, we want to run all the tweens
 
					// otherwise we skip this part
 
					length = gotoEnd ? animation.tweens.length : 0;
 
				if ( stopped ) {
 
					return this;
 
				}
 
				stopped = true;
 
				for ( ; index < length ; index++ ) {
 
					animation.tweens[ index ].run( 1 );
 
				}
 

	
 
				// Resolve when we played the last frame; otherwise, reject
 
				if ( gotoEnd ) {
 
					deferred.notifyWith( elem, [ animation, 1, 0 ] );
 
					deferred.resolveWith( elem, [ animation, gotoEnd ] );
 
				} else {
 
					deferred.rejectWith( elem, [ animation, gotoEnd ] );
 
				}
 
				return this;
 
			}
 
		} ),
 
		props = animation.props;
 

	
 
	propFilter( props, animation.opts.specialEasing );
 

	
 
	for ( ; index < length ; index++ ) {
 
		result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
 
		if ( result ) {
 
			if ( jQuery.isFunction( result.stop ) ) {
 
				jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
 
					jQuery.proxy( result.stop, result );
 
			}
 
			return result;
 
		}
 
	}
 

	
 
	jQuery.map( props, createTween, animation );
 

	
 
	if ( jQuery.isFunction( animation.opts.start ) ) {
 
		animation.opts.start.call( elem, animation );
 
	}
 

	
 
	jQuery.fx.timer(
 
		jQuery.extend( tick, {
 
			elem: elem,
 
			anim: animation,
 
			queue: animation.opts.queue
 
		} )
 
	);
 

	
 
	// attach callbacks from options
 
	return animation.progress( animation.opts.progress )
 
		.done( animation.opts.done, animation.opts.complete )
 
		.fail( animation.opts.fail )
 
		.always( animation.opts.always );
 
}
 

	
 
jQuery.Animation = jQuery.extend( Animation, {
 
	tweeners: {
 
		"*": [ function( prop, value ) {
 
			var tween = this.createTween( prop, value );
 
			adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
 
			return tween;
 
		} ]
 
	},
 

	
 
	tweener: function( props, callback ) {
 
		if ( jQuery.isFunction( props ) ) {
 
			callback = props;
 
			props = [ "*" ];
 
		} else {
 
			props = props.match( rnotwhite );
 
		}
 

	
 
		var prop,
 
			index = 0,
 
			length = props.length;
 

	
 
		for ( ; index < length ; index++ ) {
 
			prop = props[ index ];
 
			Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
 
			Animation.tweeners[ prop ].unshift( callback );
 
		}
 
	},
 

	
 
	prefilters: [ defaultPrefilter ],
 

	
 
	prefilter: function( callback, prepend ) {
 
		if ( prepend ) {
 
			Animation.prefilters.unshift( callback );
 
		} else {
 
			Animation.prefilters.push( callback );
 
		}
 
	}
 
} );
 

	
 
jQuery.speed = function( speed, easing, fn ) {
 
	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
 
		complete: fn || !fn && easing ||
 
			jQuery.isFunction( speed ) && speed,
 
		duration: speed,
 
		easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
 
	};
 

	
 
	opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ?
 
		opt.duration : opt.duration in jQuery.fx.speeds ?
 
			jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
 

	
 
	// Normalize opt.queue - true/undefined/null -> "fx"
 
	if ( opt.queue == null || opt.queue === true ) {
 
		opt.queue = "fx";
 
	}
 

	
 
	// Queueing
 
	opt.old = opt.complete;
 

	
 
	opt.complete = function() {
 
		if ( jQuery.isFunction( opt.old ) ) {
 
			opt.old.call( this );
 
		}
 

	
 
		if ( opt.queue ) {
 
			jQuery.dequeue( this, opt.queue );
 
		}
 
	};
 

	
 
	return opt;
 
};
 

	
 
jQuery.fn.extend( {
 
	fadeTo: function( speed, to, easing, callback ) {
 

	
 
		// Show any hidden elements after setting opacity to 0
 
		return this.filter( isHidden ).css( "opacity", 0 ).show()
 

	
 
			// Animate to the value specified
 
			.end().animate( { opacity: to }, speed, easing, callback );
 
	},
 
	animate: function( prop, speed, easing, callback ) {
 
		var empty = jQuery.isEmptyObject( prop ),
 
			optall = jQuery.speed( speed, easing, callback ),
 
			doAnimation = function() {
 

	
 
				// Operate on a copy of prop so per-property easing won't be lost
 
				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
 

	
 
				// Empty animations, or finishing resolves immediately
 
				if ( empty || dataPriv.get( this, "finish" ) ) {
 
					anim.stop( true );
 
				}
 
			};
 
			doAnimation.finish = doAnimation;
 

	
 
		return empty || optall.queue === false ?
 
			this.each( doAnimation ) :
 
			this.queue( optall.queue, doAnimation );
 
	},
 
	stop: function( type, clearQueue, gotoEnd ) {
 
		var stopQueue = function( hooks ) {
 
			var stop = hooks.stop;
 
			delete hooks.stop;
 
			stop( gotoEnd );
 
		};
 

	
 
		if ( typeof type !== "string" ) {
 
			gotoEnd = clearQueue;
 
			clearQueue = type;
 
			type = undefined;
 
		}
 
		if ( clearQueue && type !== false ) {
 
			this.queue( type || "fx", [] );
 
		}
 

	
 
		return this.each( function() {
 
			var dequeue = true,
 
				index = type != null && type + "queueHooks",
 
				timers = jQuery.timers,
 
				data = dataPriv.get( this );
 

	
 
			if ( index ) {
 
				if ( data[ index ] && data[ index ].stop ) {
 
					stopQueue( data[ index ] );
 
				}
 
			} else {
 
				for ( index in data ) {
 
					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
 
						stopQueue( data[ index ] );
 
					}
 
				}
 
			}
 

	
 
			for ( index = timers.length; index--; ) {
 
				if ( timers[ index ].elem === this &&
 
					( type == null || timers[ index ].queue === type ) ) {
 

	
 
					timers[ index ].anim.stop( gotoEnd );
 
					dequeue = false;
 
					timers.splice( index, 1 );
 
				}
 
			}
 

	
 
			// Start the next in the queue if the last step wasn't forced.
 
			// Timers currently will call their complete callbacks, which
 
			// will dequeue but only if they were gotoEnd.
 
			if ( dequeue || !gotoEnd ) {
 
				jQuery.dequeue( this, type );
 
			}
 
		} );
 
	},
 
	finish: function( type ) {
 
		if ( type !== false ) {
 
			type = type || "fx";
 
		}
 
		return this.each( function() {
 
			var index,
 
				data = dataPriv.get( this ),
 
				queue = data[ type + "queue" ],
 
				hooks = data[ type + "queueHooks" ],
 
				timers = jQuery.timers,
 
				length = queue ? queue.length : 0;
 

	
 
			// Enable finishing flag on private data
 
			data.finish = true;
 

	
 
			// Empty the queue first
 
			jQuery.queue( this, type, [] );
 

	
 
			if ( hooks && hooks.stop ) {
 
				hooks.stop.call( this, true );
 
			}
 

	
 
			// Look for any active animations, and finish them
 
			for ( index = timers.length; index--; ) {
 
				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
 
					timers[ index ].anim.stop( true );
 
					timers.splice( index, 1 );
 
				}
 
			}
 

	
 
			// Look for any animations in the old queue and finish them
 
			for ( index = 0; index < length; index++ ) {
 
				if ( queue[ index ] && queue[ index ].finish ) {
 
					queue[ index ].finish.call( this );
 
				}
 
			}
 

	
 
			// Turn off finishing flag
 
			delete data.finish;
 
		} );
 
	}
 
} );
 

	
 
jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
 
	var cssFn = jQuery.fn[ name ];
 
	jQuery.fn[ name ] = function( speed, easing, callback ) {
 
		return speed == null || typeof speed === "boolean" ?
 
			cssFn.apply( this, arguments ) :
 
			this.animate( genFx( name, true ), speed, easing, callback );
 
	};
 
} );
 

	
 
// Generate shortcuts for custom animations
 
jQuery.each( {
 
	slideDown: genFx( "show" ),
 
	slideUp: genFx( "hide" ),
 
	slideToggle: genFx( "toggle" ),
 
	fadeIn: { opacity: "show" },
 
	fadeOut: { opacity: "hide" },
 
	fadeToggle: { opacity: "toggle" }
 
}, function( name, props ) {
 
	jQuery.fn[ name ] = function( speed, easing, callback ) {
 
		return this.animate( props, speed, easing, callback );
 
	};
 
} );
 

	
 
jQuery.timers = [];
 
jQuery.fx.tick = function() {
 
	var timer,
 
		i = 0,
 
		timers = jQuery.timers;
 

	
 
	fxNow = jQuery.now();
 

	
 
	for ( ; i < timers.length; i++ ) {
 
		timer = timers[ i ];
 

	
 
		// Checks the timer has not already been removed
 
		if ( !timer() && timers[ i ] === timer ) {
 
			timers.splice( i--, 1 );
 
		}
 
	}
 

	
 
	if ( !timers.length ) {
 
		jQuery.fx.stop();
 
	}
 
	fxNow = undefined;
 
};
 

	
 
jQuery.fx.timer = function( timer ) {
 
	jQuery.timers.push( timer );
 
	if ( timer() ) {
 
		jQuery.fx.start();
 
	} else {
 
		jQuery.timers.pop();
 
	}
 
};
 

	
 
jQuery.fx.interval = 13;
 
jQuery.fx.start = function() {
 
	if ( !timerId ) {
 
		timerId = window.setInterval( jQuery.fx.tick, jQuery.fx.interval );
 
	}
 
};
 

	
 
jQuery.fx.stop = function() {
 
	window.clearInterval( timerId );
 

	
 
	timerId = null;
 
};
 

	
 
jQuery.fx.speeds = {
 
	slow: 600,
 
	fast: 200,
 

	
 
	// Default speed
 
	_default: 400
 
};
 

	
 

	
 
// Based off of the plugin by Clint Helfers, with permission.
 
// http://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
 
jQuery.fn.delay = function( time, type ) {
 
	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
 
	type = type || "fx";
 

	
 
	return this.queue( type, function( next, hooks ) {
 
		var timeout = window.setTimeout( next, time );
 
		hooks.stop = function() {
 
			window.clearTimeout( timeout );
 
		};
 
	} );
 
};
 

	
 

	
 
( function() {
 
	var input = document.createElement( "input" ),
 
		select = document.createElement( "select" ),
 
		opt = select.appendChild( document.createElement( "option" ) );
 

	
 
	input.type = "checkbox";
 

	
 
	// Support: iOS<=5.1, Android<=4.2+
 
	// Default value for a checkbox should be "on"
 
	support.checkOn = input.value !== "";
 

	
 
	// Support: IE<=11+
 
	// Must access selectedIndex to make default options select
 
	support.optSelected = opt.selected;
 

	
 
	// Support: Android<=2.3
 
	// Options inside disabled selects are incorrectly marked as disabled
 
	select.disabled = true;
 
	support.optDisabled = !opt.disabled;
 

	
 
	// Support: IE<=11+
 
	// An input loses its value after becoming a radio
 
	input = document.createElement( "input" );
 
	input.value = "t";
 
	input.type = "radio";
 
	support.radioValue = input.value === "t";
 
} )();
 

	
 

	
 
var boolHook,
 
	attrHandle = jQuery.expr.attrHandle;
 

	
 
jQuery.fn.extend( {
 
	attr: function( name, value ) {
 
		return access( this, jQuery.attr, name, value, arguments.length > 1 );
 
	},
 

	
 
	removeAttr: function( name ) {
 
		return this.each( function() {
 
			jQuery.removeAttr( this, name );
 
		} );
 
	}
 
} );
 

	
 
jQuery.extend( {
 
	attr: function( elem, name, value ) {
 
		var ret, hooks,
 
			nType = elem.nodeType;
 

	
 
		// Don't get/set attributes on text, comment and attribute nodes
 
		if ( nType === 3 || nType === 8 || nType === 2 ) {
 
			return;
 
		}
 

	
 
		// Fallback to prop when attributes are not supported
 
		if ( typeof elem.getAttribute === "undefined" ) {
 
			return jQuery.prop( elem, name, value );
 
		}
 

	
 
		// All attributes are lowercase
 
		// Grab necessary hook if one is defined
 
		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
 
			name = name.toLowerCase();
 
			hooks = jQuery.attrHooks[ name ] ||
 
				( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
 
		}
 

	
 
		if ( value !== undefined ) {
 
			if ( value === null ) {
 
				jQuery.removeAttr( elem, name );
 
				return;
 
			}
 

	
 
			if ( hooks && "set" in hooks &&
 
				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
 
				return ret;
 
			}
 

	
 
			elem.setAttribute( name, value + "" );
 
			return value;
 
		}
 

	
 
		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
 
			return ret;
 
		}
 

	
 
		ret = jQuery.find.attr( elem, name );
 

	
 
		// Non-existent attributes return null, we normalize to undefined
 
		return ret == null ? undefined : ret;
 
	},
 

	
 
	attrHooks: {
 
		type: {
 
			set: function( elem, value ) {
 
				if ( !support.radioValue && value === "radio" &&
 
					jQuery.nodeName( elem, "input" ) ) {
 
					var val = elem.value;
 
					elem.setAttribute( "type", value );
 
					if ( val ) {
 
						elem.value = val;
 
					}
 
					return value;
 
				}
 
			}
 
		}
 
	},
 

	
 
	removeAttr: function( elem, value ) {
 
		var name, propName,
 
			i = 0,
 
			attrNames = value && value.match( rnotwhite );
 

	
 
		if ( attrNames && elem.nodeType === 1 ) {
 
			while ( ( name = attrNames[ i++ ] ) ) {
 
				propName = jQuery.propFix[ name ] || name;
 

	
 
				// Boolean attributes get special treatment (#10870)
 
				if ( jQuery.expr.match.bool.test( name ) ) {
 

	
 
					// Set corresponding property to false
 
					elem[ propName ] = false;
 
				}
 

	
 
				elem.removeAttribute( name );
 
			}
 
		}
 
	}
 
} );
 

	
 
// Hooks for boolean attributes
 
boolHook = {
 
	set: function( elem, value, name ) {
 
		if ( value === false ) {
 

	
 
			// Remove boolean attributes when set to false
 
			jQuery.removeAttr( elem, name );
 
		} else {
 
			elem.setAttribute( name, name );
 
		}
 
		return name;
 
	}
 
};
 
jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
 
	var getter = attrHandle[ name ] || jQuery.find.attr;
 

	
 
	attrHandle[ name ] = function( elem, name, isXML ) {
 
		var ret, handle;
 
		if ( !isXML ) {
 

	
 
			// Avoid an infinite loop by temporarily removing this function from the getter
 
			handle = attrHandle[ name ];
 
			attrHandle[ name ] = ret;
 
			ret = getter( elem, name, isXML ) != null ?
 
				name.toLowerCase() :
 
				null;
 
			attrHandle[ name ] = handle;
 
		}
 
		return ret;
 
	};
 
} );
 

	
 

	
 

	
 

	
 
var rfocusable = /^(?:input|select|textarea|button)$/i,
 
	rclickable = /^(?:a|area)$/i;
 

	
 
jQuery.fn.extend( {
 
	prop: function( name, value ) {
 
		return access( this, jQuery.prop, name, value, arguments.length > 1 );
 
	},
 

	
 
	removeProp: function( name ) {
 
		return this.each( function() {
 
			delete this[ jQuery.propFix[ name ] || name ];
 
		} );
 
	}
 
} );
 

	
 
jQuery.extend( {
 
	prop: function( elem, name, value ) {
 
		var ret, hooks,
 
			nType = elem.nodeType;
 

	
 
		// Don't get/set properties on text, comment and attribute nodes
 
		if ( nType === 3 || nType === 8 || nType === 2 ) {
 
			return;
 
		}
 

	
 
		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
 

	
 
			// Fix name and attach hooks
 
			name = jQuery.propFix[ name ] || name;
 
			hooks = jQuery.propHooks[ name ];
 
		}
 

	
 
		if ( value !== undefined ) {
 
			if ( hooks && "set" in hooks &&
 
				( ret = hooks.set( elem, value, name ) ) !== undefined ) {
 
				return ret;
 
			}
 

	
 
			return ( elem[ name ] = value );
 
		}
 

	
 
		if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
 
			return ret;
 
		}
 

	
 
		return elem[ name ];
 
	},
 

	
 
	propHooks: {
 
		tabIndex: {
 
			get: function( elem ) {
 

	
 
				// elem.tabIndex doesn't always return the
 
				// correct value when it hasn't been explicitly set
 
				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
 
				// Use proper attribute retrieval(#12072)
 
				var tabindex = jQuery.find.attr( elem, "tabindex" );
 

	
 
				return tabindex ?
 
					parseInt( tabindex, 10 ) :
 
					rfocusable.test( elem.nodeName ) ||
 
						rclickable.test( elem.nodeName ) && elem.href ?
 
							0 :
 
							-1;
 
			}
 
		}
 
	},
 

	
 
	propFix: {
 
		"for": "htmlFor",
 
		"class": "className"
 
	}
 
} );
 

	
 
if ( !support.optSelected ) {
 
	jQuery.propHooks.selected = {
 
		get: function( elem ) {
 
			var parent = elem.parentNode;
 
			if ( parent && parent.parentNode ) {
 
				parent.parentNode.selectedIndex;
 
			}
 
			return null;
 
		}
 
	};
 
}
 

	
 
jQuery.each( [
 
	"tabIndex",
 
	"readOnly",
 
	"maxLength",
 
	"cellSpacing",
 
	"cellPadding",
 
	"rowSpan",
 
	"colSpan",
 
	"useMap",
 
	"frameBorder",
 
	"contentEditable"
 
], function() {
 
	jQuery.propFix[ this.toLowerCase() ] = this;
 
} );
 

	
 

	
 

	
 

	
 
var rclass = /[\t\r\n\f]/g;
 

	
 
function getClass( elem ) {
 
	return elem.getAttribute && elem.getAttribute( "class" ) || "";
 
}
 

	
 
jQuery.fn.extend( {
 
	addClass: function( value ) {
 
		var classes, elem, cur, curValue, clazz, j, finalValue,
 
			i = 0;
 

	
 
		if ( jQuery.isFunction( value ) ) {
 
			return this.each( function( j ) {
 
				jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
 
			} );
 
		}
 

	
 
		if ( typeof value === "string" && value ) {
 
			classes = value.match( rnotwhite ) || [];
 

	
 
			while ( ( elem = this[ i++ ] ) ) {
 
				curValue = getClass( elem );
 
				cur = elem.nodeType === 1 &&
 
					( " " + curValue + " " ).replace( rclass, " " );
 

	
 
				if ( cur ) {
 
					j = 0;
 
					while ( ( clazz = classes[ j++ ] ) ) {
 
						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
 
							cur += clazz + " ";
 
						}
 
					}
 

	
 
					// Only assign if different to avoid unneeded rendering.
 
					finalValue = jQuery.trim( cur );
 
					if ( curValue !== finalValue ) {
 
						elem.setAttribute( "class", finalValue );
 
					}
 
				}
 
			}
 
		}
 

	
 
		return this;
 
	},
 

	
 
	removeClass: function( value ) {
 
		var classes, elem, cur, curValue, clazz, j, finalValue,
 
			i = 0;
 

	
 
		if ( jQuery.isFunction( value ) ) {
 
			return this.each( function( j ) {
 
				jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
 
			} );
 
		}
 

	
 
		if ( !arguments.length ) {
 
			return this.attr( "class", "" );
 
		}
 

	
 
		if ( typeof value === "string" && value ) {
 
			classes = value.match( rnotwhite ) || [];
 

	
 
			while ( ( elem = this[ i++ ] ) ) {
 
				curValue = getClass( elem );
 

	
 
				// This expression is here for better compressibility (see addClass)
 
				cur = elem.nodeType === 1 &&
 
					( " " + curValue + " " ).replace( rclass, " " );
 

	
 
				if ( cur ) {
 
					j = 0;
 
					while ( ( clazz = classes[ j++ ] ) ) {
 

	
 
						// Remove *all* instances
 
						while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
 
							cur = cur.replace( " " + clazz + " ", " " );
 
						}
 
					}
 

	
 
					// Only assign if different to avoid unneeded rendering.
 
					finalValue = jQuery.trim( cur );
 
					if ( curValue !== finalValue ) {
 
						elem.setAttribute( "class", finalValue );
 
					}
 
				}
 
			}
 
		}
 

	
 
		return this;
 
	},
 

	
 
	toggleClass: function( value, stateVal ) {
 
		var type = typeof value;
 

	
 
		if ( typeof stateVal === "boolean" && type === "string" ) {
 
			return stateVal ? this.addClass( value ) : this.removeClass( value );
 
		}
 

	
 
		if ( jQuery.isFunction( value ) ) {
 
			return this.each( function( i ) {
 
				jQuery( this ).toggleClass(
 
					value.call( this, i, getClass( this ), stateVal ),
 
					stateVal
 
				);
 
			} );
 
		}
 

	
 
		return this.each( function() {
 
			var className, i, self, classNames;
 

	
 
			if ( type === "string" ) {
 

	
 
				// Toggle individual class names
 
				i = 0;
 
				self = jQuery( this );
 
				classNames = value.match( rnotwhite ) || [];
 

	
 
				while ( ( className = classNames[ i++ ] ) ) {
 

	
 
					// Check each className given, space separated list
 
					if ( self.hasClass( className ) ) {
 
						self.removeClass( className );
 
					} else {
 
						self.addClass( className );
 
					}
 
				}
 

	
 
			// Toggle whole class name
 
			} else if ( value === undefined || type === "boolean" ) {
 
				className = getClass( this );
 
				if ( className ) {
 

	
 
					// Store className if set
 
					dataPriv.set( this, "__className__", className );
 
				}
 

	
 
				// If the element has a class name or if we're passed `false`,
 
				// then remove the whole classname (if there was one, the above saved it).
 
				// Otherwise bring back whatever was previously saved (if anything),
 
				// falling back to the empty string if nothing was stored.
 
				if ( this.setAttribute ) {
 
					this.setAttribute( "class",
 
						className || value === false ?
 
						"" :
 
						dataPriv.get( this, "__className__" ) || ""
 
					);
 
				}
 
			}
 
		} );
 
	},
 

	
 
	hasClass: function( selector ) {
 
		var className, elem,
 
			i = 0;
 

	
 
		className = " " + selector + " ";
 
		while ( ( elem = this[ i++ ] ) ) {
 
			if ( elem.nodeType === 1 &&
 
				( " " + getClass( elem ) + " " ).replace( rclass, " " )
 
					.indexOf( className ) > -1
 
			) {
 
				return true;
 
			}
 
		}
 

	
 
		return false;
 
	}
 
} );
 

	
 

	
 

	
 

	
 
var rreturn = /\r/g;
 

	
 
jQuery.fn.extend( {
 
	val: function( value ) {
 
		var hooks, ret, isFunction,
 
			elem = this[ 0 ];
 

	
 
		if ( !arguments.length ) {
 
			if ( elem ) {
 
				hooks = jQuery.valHooks[ elem.type ] ||
 
					jQuery.valHooks[ elem.nodeName.toLowerCase() ];
 

	
 
				if ( hooks &&
 
					"get" in hooks &&
 
					( ret = hooks.get( elem, "value" ) ) !== undefined
 
				) {
 
					return ret;
 
				}
 

	
 
				ret = elem.value;
 

	
 
				return typeof ret === "string" ?
 

	
 
					// Handle most common string cases
 
					ret.replace( rreturn, "" ) :
 

	
 
					// Handle cases where value is null/undef or number
 
					ret == null ? "" : ret;
 
			}
 

	
 
			return;
 
		}
 

	
 
		isFunction = jQuery.isFunction( value );
 

	
 
		return this.each( function( i ) {
 
			var val;
 

	
 
			if ( this.nodeType !== 1 ) {
 
				return;
 
			}
 

	
 
			if ( isFunction ) {
 
				val = value.call( this, i, jQuery( this ).val() );
 
			} else {
 
				val = value;
 
			}
 

	
 
			// Treat null/undefined as ""; convert numbers to string
 
			if ( val == null ) {
 
				val = "";
 

	
 
			} else if ( typeof val === "number" ) {
 
				val += "";
 

	
 
			} else if ( jQuery.isArray( val ) ) {
 
				val = jQuery.map( val, function( value ) {
 
					return value == null ? "" : value + "";
 
				} );
 
			}
 

	
 
			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
 

	
 
			// If set returns undefined, fall back to normal setting
 
			if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
 
				this.value = val;
 
			}
 
		} );
 
	}
 
} );
 

	
 
jQuery.extend( {
 
	valHooks: {
 
		option: {
 
			get: function( elem ) {
 

	
 
				// Support: IE<11
 
				// option.value not trimmed (#14858)
 
				return jQuery.trim( elem.value );
 
			}
 
		},
 
		select: {
 
			get: function( elem ) {
 
				var value, option,
 
					options = elem.options,
 
					index = elem.selectedIndex,
 
					one = elem.type === "select-one" || index < 0,
 
					values = one ? null : [],
 
					max = one ? index + 1 : options.length,
 
					i = index < 0 ?
 
						max :
 
						one ? index : 0;
 

	
 
				// Loop through all the selected options
 
				for ( ; i < max; i++ ) {
 
					option = options[ i ];
 

	
 
					// IE8-9 doesn't update selected after form reset (#2551)
 
					if ( ( option.selected || i === index ) &&
 

	
 
							// Don't return options that are disabled or in a disabled optgroup
 
							( support.optDisabled ?
 
								!option.disabled : option.getAttribute( "disabled" ) === null ) &&
 
							( !option.parentNode.disabled ||
 
								!jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
 

	
 
						// Get the specific value for the option
 
						value = jQuery( option ).val();
 

	
 
						// We don't need an array for one selects
 
						if ( one ) {
 
							return value;
 
						}
 

	
 
						// Multi-Selects return an array
 
						values.push( value );
 
					}
 
				}
 

	
 
				return values;
 
			},
 

	
 
			set: function( elem, value ) {
 
				var optionSet, option,
 
					options = elem.options,
 
					values = jQuery.makeArray( value ),
 
					i = options.length;
 

	
 
				while ( i-- ) {
 
					option = options[ i ];
 
					if ( option.selected =
 
							jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
 
					) {
 
						optionSet = true;
 
					}
 
				}
 

	
 
				// Force browsers to behave consistently when non-matching value is set
 
				if ( !optionSet ) {
 
					elem.selectedIndex = -1;
 
				}
 
				return values;
 
			}
 
		}
 
	}
 
} );
 

	
 
// Radios and checkboxes getter/setter
 
jQuery.each( [ "radio", "checkbox" ], function() {
 
	jQuery.valHooks[ this ] = {
 
		set: function( elem, value ) {
 
			if ( jQuery.isArray( value ) ) {
 
				return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
 
			}
 
		}
 
	};
 
	if ( !support.checkOn ) {
 
		jQuery.valHooks[ this ].get = function( elem ) {
 
			return elem.getAttribute( "value" ) === null ? "on" : elem.value;
 
		};
 
	}
 
} );
 

	
 

	
 

	
 

	
 
// Return jQuery for attributes-only inclusion
 

	
 

	
 
var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;
 

	
 
jQuery.extend( jQuery.event, {
 

	
 
	trigger: function( event, data, elem, onlyHandlers ) {
 

	
 
		var i, cur, tmp, bubbleType, ontype, handle, special,
 
			eventPath = [ elem || document ],
 
			type = hasOwn.call( event, "type" ) ? event.type : event,
 
			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
 

	
 
		cur = tmp = elem = elem || document;
 

	
 
		// Don't do events on text and comment nodes
 
		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
 
			return;
 
		}
 

	
 
		// focus/blur morphs to focusin/out; ensure we're not firing them right now
 
		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
 
			return;
 
		}
 

	
 
		if ( type.indexOf( "." ) > -1 ) {
 

	
 
			// Namespaced trigger; create a regexp to match event type in handle()
 
			namespaces = type.split( "." );
 
			type = namespaces.shift();
 
			namespaces.sort();
 
		}
 
		ontype = type.indexOf( ":" ) < 0 && "on" + type;
 

	
 
		// Caller can pass in a jQuery.Event object, Object, or just an event type string
 
		event = event[ jQuery.expando ] ?
 
			event :
 
			new jQuery.Event( type, typeof event === "object" && event );
 

	
 
		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
 
		event.isTrigger = onlyHandlers ? 2 : 3;
 
		event.namespace = namespaces.join( "." );
 
		event.rnamespace = event.namespace ?
 
			new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
 
			null;
 

	
 
		// Clean up the event in case it is being reused
 
		event.result = undefined;
 
		if ( !event.target ) {
 
			event.target = elem;
 
		}
 

	
 
		// Clone any incoming data and prepend the event, creating the handler arg list
 
		data = data == null ?
 
			[ event ] :
 
			jQuery.makeArray( data, [ event ] );
 

	
 
		// Allow special events to draw outside the lines
 
		special = jQuery.event.special[ type ] || {};
 
		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
 
			return;
 
		}
 

	
 
		// Determine event propagation path in advance, per W3C events spec (#9951)
 
		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
 
		if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
 

	
 
			bubbleType = special.delegateType || type;
 
			if ( !rfocusMorph.test( bubbleType + type ) ) {
 
				cur = cur.parentNode;
 
			}
 
			for ( ; cur; cur = cur.parentNode ) {
 
				eventPath.push( cur );
 
				tmp = cur;
 
			}
 

	
 
			// Only add window if we got to document (e.g., not plain obj or detached DOM)
 
			if ( tmp === ( elem.ownerDocument || document ) ) {
 
				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
 
			}
 
		}
 

	
 
		// Fire handlers on the event path
 
		i = 0;
 
		while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
 

	
 
			event.type = i > 1 ?
 
				bubbleType :
 
				special.bindType || type;
 

	
 
			// jQuery handler
 
			handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
 
				dataPriv.get( cur, "handle" );
 
			if ( handle ) {
 
				handle.apply( cur, data );
 
			}
 

	
 
			// Native handler
 
			handle = ontype && cur[ ontype ];
 
			if ( handle && handle.apply && acceptData( cur ) ) {
 
				event.result = handle.apply( cur, data );
 
				if ( event.result === false ) {
 
					event.preventDefault();
 
				}
 
			}
 
		}
 
		event.type = type;
 

	
 
		// If nobody prevented the default action, do it now
 
		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
 

	
 
			if ( ( !special._default ||
 
				special._default.apply( eventPath.pop(), data ) === false ) &&
 
				acceptData( elem ) ) {
 

	
 
				// Call a native DOM method on the target with the same name name as the event.
 
				// Don't do default actions on window, that's where global variables be (#6170)
 
				if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
 

	
 
					// Don't re-trigger an onFOO event when we call its FOO() method
 
					tmp = elem[ ontype ];
 

	
 
					if ( tmp ) {
 
						elem[ ontype ] = null;
 
					}
 

	
 
					// Prevent re-triggering of the same event, since we already bubbled it above
 
					jQuery.event.triggered = type;
 
					elem[ type ]();
 
					jQuery.event.triggered = undefined;
 

	
 
					if ( tmp ) {
 
						elem[ ontype ] = tmp;
 
					}
 
				}
 
			}
 
		}
 

	
 
		return event.result;
 
	},
 

	
 
	// Piggyback on a donor event to simulate a different one
 
	simulate: function( type, elem, event ) {
 
		var e = jQuery.extend(
 
			new jQuery.Event(),
 
			event,
 
			{
 
				type: type,
 
				isSimulated: true
 

	
 
				// Previously, `originalEvent: {}` was set here, so stopPropagation call
 
				// would not be triggered on donor event, since in our own
 
				// jQuery.event.stopPropagation function we had a check for existence of
 
				// originalEvent.stopPropagation method, so, consequently it would be a noop.
 
				//
 
				// But now, this "simulate" function is used only for events
 
				// for which stopPropagation() is noop, so there is no need for that anymore.
 
				//
 
				// For the 1.x branch though, guard for "click" and "submit"
 
				// events is still used, but was moved to jQuery.event.stopPropagation function
 
				// because `originalEvent` should point to the original event for the constancy
 
				// with other events and for more focused logic
 
			}
 
		);
 

	
 
		jQuery.event.trigger( e, null, elem );
 

	
 
		if ( e.isDefaultPrevented() ) {
 
			event.preventDefault();
 
		}
 
	}
 

	
 
} );
 

	
 
jQuery.fn.extend( {
 

	
 
	trigger: function( type, data ) {
 
		return this.each( function() {
 
			jQuery.event.trigger( type, data, this );
 
		} );
 
	},
 
	triggerHandler: function( type, data ) {
 
		var elem = this[ 0 ];
 
		if ( elem ) {
 
			return jQuery.event.trigger( type, data, elem, true );
 
		}
 
	}
 
} );
 

	
 

	
 
jQuery.each( ( "blur focus focusin focusout load resize scroll unload click dblclick " +
 
	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
 
	"change select submit keydown keypress keyup error contextmenu" ).split( " " ),
 
	function( i, name ) {
 

	
 
	// Handle event binding
 
	jQuery.fn[ name ] = function( data, fn ) {
 
		return arguments.length > 0 ?
 
			this.on( name, null, data, fn ) :
 
			this.trigger( name );
 
	};
 
} );
 

	
 
jQuery.fn.extend( {
 
	hover: function( fnOver, fnOut ) {
 
		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
 
	}
 
} );
 

	
 

	
 

	
 

	
 
support.focusin = "onfocusin" in window;
 

	
 

	
 
// Support: Firefox
 
// Firefox doesn't have focus(in | out) events
 
// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
 
//
 
// Support: Chrome, Safari
 
// focus(in | out) events fire after focus & blur events,
 
// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
 
// Related ticket - https://code.google.com/p/chromium/issues/detail?id=449857
 
if ( !support.focusin ) {
 
	jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
 

	
 
		// Attach a single capturing handler on the document while someone wants focusin/focusout
 
		var handler = function( event ) {
 
			jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
 
		};
 

	
 
		jQuery.event.special[ fix ] = {
 
			setup: function() {
 
				var doc = this.ownerDocument || this,
 
					attaches = dataPriv.access( doc, fix );
 

	
 
				if ( !attaches ) {
 
					doc.addEventListener( orig, handler, true );
 
				}
 
				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
 
			},
 
			teardown: function() {
 
				var doc = this.ownerDocument || this,
 
					attaches = dataPriv.access( doc, fix ) - 1;
 

	
 
				if ( !attaches ) {
 
					doc.removeEventListener( orig, handler, true );
 
					dataPriv.remove( doc, fix );
 

	
 
				} else {
 
					dataPriv.access( doc, fix, attaches );
 
				}
 
			}
 
		};
 
	} );
 
}
 
var location = window.location;
 

	
 
var nonce = jQuery.now();
 

	
 
var rquery = ( /\?/ );
 

	
 

	
 

	
 
// Support: Android 2.3
 
// Workaround failure to string-cast null input
 
jQuery.parseJSON = function( data ) {
 
	return JSON.parse( data + "" );
 
};
 

	
 

	
 
// Cross-browser xml parsing
 
jQuery.parseXML = function( data ) {
 
	var xml;
 
	if ( !data || typeof data !== "string" ) {
 
		return null;
 
	}
 

	
 
	// Support: IE9
 
	try {
 
		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
 
	} catch ( e ) {
 
		xml = undefined;
 
	}
 

	
 
	if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
 
		jQuery.error( "Invalid XML: " + data );
 
	}
 
	return xml;
 
};
 

	
 

	
 
var
 
	rhash = /#.*$/,
 
	rts = /([?&])_=[^&]*/,
 
	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
 

	
 
	// #7653, #8125, #8152: local protocol detection
 
	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
 
	rnoContent = /^(?:GET|HEAD)$/,
 
	rprotocol = /^\/\//,
 

	
 
	/* Prefilters
 
	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
 
	 * 2) These are called:
 
	 *    - BEFORE asking for a transport
 
	 *    - AFTER param serialization (s.data is a string if s.processData is true)
 
	 * 3) key is the dataType
 
	 * 4) the catchall symbol "*" can be used
 
	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
 
	 */
 
	prefilters = {},
 

	
 
	/* Transports bindings
 
	 * 1) key is the dataType
 
	 * 2) the catchall symbol "*" can be used
 
	 * 3) selection will start with transport dataType and THEN go to "*" if needed
 
	 */
 
	transports = {},
 

	
 
	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
 
	allTypes = "*/".concat( "*" ),
 

	
 
	// Anchor tag for parsing the document origin
 
	originAnchor = document.createElement( "a" );
 
	originAnchor.href = location.href;
 

	
 
// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
 
function addToPrefiltersOrTransports( structure ) {
 

	
 
	// dataTypeExpression is optional and defaults to "*"
 
	return function( dataTypeExpression, func ) {
 

	
 
		if ( typeof dataTypeExpression !== "string" ) {
 
			func = dataTypeExpression;
 
			dataTypeExpression = "*";
 
		}
 

	
 
		var dataType,
 
			i = 0,
 
			dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];
 

	
 
		if ( jQuery.isFunction( func ) ) {
 

	
 
			// For each dataType in the dataTypeExpression
 
			while ( ( dataType = dataTypes[ i++ ] ) ) {
 

	
 
				// Prepend if requested
 
				if ( dataType[ 0 ] === "+" ) {
 
					dataType = dataType.slice( 1 ) || "*";
 
					( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
 

	
 
				// Otherwise append
 
				} else {
 
					( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
 
				}
 
			}
 
		}
 
	};
 
}
 

	
 
// Base inspection function for prefilters and transports
 
function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
 

	
 
	var inspected = {},
 
		seekingTransport = ( structure === transports );
 

	
 
	function inspect( dataType ) {
 
		var selected;
 
		inspected[ dataType ] = true;
 
		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
 
			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
 
			if ( typeof dataTypeOrTransport === "string" &&
 
				!seekingTransport && !inspected[ dataTypeOrTransport ] ) {
 

	
 
				options.dataTypes.unshift( dataTypeOrTransport );
 
				inspect( dataTypeOrTransport );
 
				return false;
 
			} else if ( seekingTransport ) {
 
				return !( selected = dataTypeOrTransport );
 
			}
 
		} );
 
		return selected;
 
	}
 

	
 
	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
 
}
 

	
 
// A special extend for ajax options
 
// that takes "flat" options (not to be deep extended)
 
// Fixes #9887
 
function ajaxExtend( target, src ) {
 
	var key, deep,
 
		flatOptions = jQuery.ajaxSettings.flatOptions || {};
 

	
 
	for ( key in src ) {
 
		if ( src[ key ] !== undefined ) {
 
			( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
 
		}
 
	}
 
	if ( deep ) {
 
		jQuery.extend( true, target, deep );
 
	}
 

	
 
	return target;
 
}
 

	
 
/* Handles responses to an ajax request:
 
 * - finds the right dataType (mediates between content-type and expected dataType)
 
 * - returns the corresponding response
 
 */
 
function ajaxHandleResponses( s, jqXHR, responses ) {
 

	
 
	var ct, type, finalDataType, firstDataType,
 
		contents = s.contents,
 
		dataTypes = s.dataTypes;
 

	
 
	// Remove auto dataType and get content-type in the process
 
	while ( dataTypes[ 0 ] === "*" ) {
 
		dataTypes.shift();
 
		if ( ct === undefined ) {
 
			ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
 
		}
 
	}
 

	
 
	// Check if we're dealing with a known content-type
 
	if ( ct ) {
 
		for ( type in contents ) {
 
			if ( contents[ type ] && contents[ type ].test( ct ) ) {
 
				dataTypes.unshift( type );
 
				break;
 
			}
 
		}
 
	}
 

	
 
	// Check to see if we have a response for the expected dataType
 
	if ( dataTypes[ 0 ] in responses ) {
 
		finalDataType = dataTypes[ 0 ];
 
	} else {
 

	
 
		// Try convertible dataTypes
 
		for ( type in responses ) {
 
			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
 
				finalDataType = type;
 
				break;
 
			}
 
			if ( !firstDataType ) {
 
				firstDataType = type;
 
			}
 
		}
 

	
 
		// Or just use first one
 
		finalDataType = finalDataType || firstDataType;
 
	}
 

	
 
	// If we found a dataType
 
	// We add the dataType to the list if needed
 
	// and return the corresponding response
 
	if ( finalDataType ) {
 
		if ( finalDataType !== dataTypes[ 0 ] ) {
 
			dataTypes.unshift( finalDataType );
 
		}
 
		return responses[ finalDataType ];
 
	}
 
}
 

	
 
/* Chain conversions given the request and the original response
 
 * Also sets the responseXXX fields on the jqXHR instance
 
 */
 
function ajaxConvert( s, response, jqXHR, isSuccess ) {
 
	var conv2, current, conv, tmp, prev,
 
		converters = {},
 

	
 
		// Work with a copy of dataTypes in case we need to modify it for conversion
 
		dataTypes = s.dataTypes.slice();
 

	
 
	// Create converters map with lowercased keys
 
	if ( dataTypes[ 1 ] ) {
 
		for ( conv in s.converters ) {
 
			converters[ conv.toLowerCase() ] = s.converters[ conv ];
 
		}
 
	}
 

	
 
	current = dataTypes.shift();
 

	
 
	// Convert to each sequential dataType
 
	while ( current ) {
 

	
 
		if ( s.responseFields[ current ] ) {
 
			jqXHR[ s.responseFields[ current ] ] = response;
 
		}
 

	
 
		// Apply the dataFilter if provided
 
		if ( !prev && isSuccess && s.dataFilter ) {
 
			response = s.dataFilter( response, s.dataType );
 
		}
 

	
 
		prev = current;
 
		current = dataTypes.shift();
 

	
 
		if ( current ) {
 

	
 
		// There's only work to do if current dataType is non-auto
 
			if ( current === "*" ) {
 

	
 
				current = prev;
 

	
 
			// Convert response if prev dataType is non-auto and differs from current
 
			} else if ( prev !== "*" && prev !== current ) {
 

	
 
				// Seek a direct converter
 
				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
 

	
 
				// If none found, seek a pair
 
				if ( !conv ) {
 
					for ( conv2 in converters ) {
 

	
 
						// If conv2 outputs current
 
						tmp = conv2.split( " " );
 
						if ( tmp[ 1 ] === current ) {
 

	
 
							// If prev can be converted to accepted input
 
							conv = converters[ prev + " " + tmp[ 0 ] ] ||
 
								converters[ "* " + tmp[ 0 ] ];
 
							if ( conv ) {
 

	
 
								// Condense equivalence converters
 
								if ( conv === true ) {
 
									conv = converters[ conv2 ];
 

	
 
								// Otherwise, insert the intermediate dataType
 
								} else if ( converters[ conv2 ] !== true ) {
 
									current = tmp[ 0 ];
 
									dataTypes.unshift( tmp[ 1 ] );
 
								}
 
								break;
 
							}
 
						}
 
					}
 
				}
 

	
 
				// Apply converter (if not an equivalence)
 
				if ( conv !== true ) {
 

	
 
					// Unless errors are allowed to bubble, catch and return them
 
					if ( conv && s.throws ) {
 
						response = conv( response );
 
					} else {
 
						try {
 
							response = conv( response );
 
						} catch ( e ) {
 
							return {
 
								state: "parsererror",
 
								error: conv ? e : "No conversion from " + prev + " to " + current
 
							};
 
						}
 
					}
 
				}
 
			}
 
		}
 
	}
 

	
 
	return { state: "success", data: response };
 
}
 

	
 
jQuery.extend( {
 

	
 
	// Counter for holding the number of active queries
 
	active: 0,
 

	
 
	// Last-Modified header cache for next request
 
	lastModified: {},
 
	etag: {},
 

	
 
	ajaxSettings: {
 
		url: location.href,
 
		type: "GET",
 
		isLocal: rlocalProtocol.test( location.protocol ),
 
		global: true,
 
		processData: true,
 
		async: true,
 
		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
 
		/*
 
		timeout: 0,
 
		data: null,
 
		dataType: null,
 
		username: null,
 
		password: null,
 
		cache: null,
 
		throws: false,
 
		traditional: false,
 
		headers: {},
 
		*/
 

	
 
		accepts: {
 
			"*": allTypes,
 
			text: "text/plain",
 
			html: "text/html",
 
			xml: "application/xml, text/xml",
 
			json: "application/json, text/javascript"
 
		},
 

	
 
		contents: {
 
			xml: /\bxml\b/,
 
			html: /\bhtml/,
 
			json: /\bjson\b/
 
		},
 

	
 
		responseFields: {
 
			xml: "responseXML",
 
			text: "responseText",
 
			json: "responseJSON"
 
		},
 

	
 
		// Data converters
 
		// Keys separate source (or catchall "*") and destination types with a single space
 
		converters: {
 

	
 
			// Convert anything to text
 
			"* text": String,
 

	
 
			// Text to html (true = no transformation)
 
			"text html": true,
 

	
 
			// Evaluate text as a json expression
 
			"text json": jQuery.parseJSON,
 

	
 
			// Parse text as xml
 
			"text xml": jQuery.parseXML
 
		},
 

	
 
		// For options that shouldn't be deep extended:
 
		// you can add your own custom options here if
 
		// and when you create one that shouldn't be
 
		// deep extended (see ajaxExtend)
 
		flatOptions: {
 
			url: true,
 
			context: true
 
		}
 
	},
 

	
 
	// Creates a full fledged settings object into target
 
	// with both ajaxSettings and settings fields.
 
	// If target is omitted, writes into ajaxSettings.
 
	ajaxSetup: function( target, settings ) {
 
		return settings ?
 

	
 
			// Building a settings object
 
			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
 

	
 
			// Extending ajaxSettings
 
			ajaxExtend( jQuery.ajaxSettings, target );
 
	},
 

	
 
	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
 
	ajaxTransport: addToPrefiltersOrTransports( transports ),
 

	
 
	// Main method
 
	ajax: function( url, options ) {
 

	
 
		// If url is an object, simulate pre-1.5 signature
 
		if ( typeof url === "object" ) {
 
			options = url;
 
			url = undefined;
 
		}
 

	
 
		// Force options to be an object
 
		options = options || {};
 

	
 
		var transport,
 

	
 
			// URL without anti-cache param
 
			cacheURL,
 

	
 
			// Response headers
 
			responseHeadersString,
 
			responseHeaders,
 

	
 
			// timeout handle
 
			timeoutTimer,
 

	
 
			// Url cleanup var
 
			urlAnchor,
 

	
 
			// To know if global events are to be dispatched
 
			fireGlobals,
 

	
 
			// Loop variable
 
			i,
 

	
 
			// Create the final options object
 
			s = jQuery.ajaxSetup( {}, options ),
 

	
 
			// Callbacks context
 
			callbackContext = s.context || s,
 

	
 
			// Context for global events is callbackContext if it is a DOM node or jQuery collection
 
			globalEventContext = s.context &&
 
				( callbackContext.nodeType || callbackContext.jquery ) ?
 
					jQuery( callbackContext ) :
 
					jQuery.event,
 

	
 
			// Deferreds
 
			deferred = jQuery.Deferred(),
 
			completeDeferred = jQuery.Callbacks( "once memory" ),
 

	
 
			// Status-dependent callbacks
 
			statusCode = s.statusCode || {},
 

	
 
			// Headers (they are sent all at once)
 
			requestHeaders = {},
 
			requestHeadersNames = {},
 

	
 
			// The jqXHR state
 
			state = 0,
 

	
 
			// Default abort message
 
			strAbort = "canceled",
 

	
 
			// Fake xhr
 
			jqXHR = {
 
				readyState: 0,
 

	
 
				// Builds headers hashtable if needed
 
				getResponseHeader: function( key ) {
 
					var match;
 
					if ( state === 2 ) {
 
						if ( !responseHeaders ) {
 
							responseHeaders = {};
 
							while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
 
								responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
 
							}
 
						}
 
						match = responseHeaders[ key.toLowerCase() ];
 
					}
 
					return match == null ? null : match;
 
				},
 

	
 
				// Raw string
 
				getAllResponseHeaders: function() {
 
					return state === 2 ? responseHeadersString : null;
 
				},
 

	
 
				// Caches the header
 
				setRequestHeader: function( name, value ) {
 
					var lname = name.toLowerCase();
 
					if ( !state ) {
 
						name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
 
						requestHeaders[ name ] = value;
 
					}
 
					return this;
 
				},
 

	
 
				// Overrides response content-type header
 
				overrideMimeType: function( type ) {
 
					if ( !state ) {
 
						s.mimeType = type;
 
					}
 
					return this;
 
				},
 

	
 
				// Status-dependent callbacks
 
				statusCode: function( map ) {
 
					var code;
 
					if ( map ) {
 
						if ( state < 2 ) {
 
							for ( code in map ) {
 

	
 
								// Lazy-add the new callback in a way that preserves old ones
 
								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
 
							}
 
						} else {
 

	
 
							// Execute the appropriate callbacks
 
							jqXHR.always( map[ jqXHR.status ] );
 
						}
 
					}
 
					return this;
 
				},
 

	
 
				// Cancel the request
 
				abort: function( statusText ) {
 
					var finalText = statusText || strAbort;
 
					if ( transport ) {
 
						transport.abort( finalText );
 
					}
 
					done( 0, finalText );
 
					return this;
 
				}
 
			};
 

	
 
		// Attach deferreds
 
		deferred.promise( jqXHR ).complete = completeDeferred.add;
 
		jqXHR.success = jqXHR.done;
 
		jqXHR.error = jqXHR.fail;
 

	
 
		// Remove hash character (#7531: and string promotion)
 
		// Add protocol if not provided (prefilters might expect it)
 
		// Handle falsy url in the settings object (#10093: consistency with old signature)
 
		// We also use the url parameter if available
 
		s.url = ( ( url || s.url || location.href ) + "" ).replace( rhash, "" )
 
			.replace( rprotocol, location.protocol + "//" );
 

	
 
		// Alias method option to type as per ticket #12004
 
		s.type = options.method || options.type || s.method || s.type;
 

	
 
		// Extract dataTypes list
 
		s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ];
 

	
 
		// A cross-domain request is in order when the origin doesn't match the current origin.
 
		if ( s.crossDomain == null ) {
 
			urlAnchor = document.createElement( "a" );
 

	
 
			// Support: IE8-11+
 
			// IE throws exception if url is malformed, e.g. http://example.com:80x/
 
			try {
 
				urlAnchor.href = s.url;
 

	
 
				// Support: IE8-11+
 
				// Anchor's host property isn't correctly set when s.url is relative
 
				urlAnchor.href = urlAnchor.href;
 
				s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
 
					urlAnchor.protocol + "//" + urlAnchor.host;
 
			} catch ( e ) {
 

	
 
				// If there is an error parsing the URL, assume it is crossDomain,
 
				// it can be rejected by the transport if it is invalid
 
				s.crossDomain = true;
 
			}
 
		}
 

	
 
		// Convert data if not already a string
 
		if ( s.data && s.processData && typeof s.data !== "string" ) {
 
			s.data = jQuery.param( s.data, s.traditional );
 
		}
 

	
 
		// Apply prefilters
 
		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
 

	
 
		// If request was aborted inside a prefilter, stop there
 
		if ( state === 2 ) {
 
			return jqXHR;
 
		}
 

	
 
		// We can fire global events as of now if asked to
 
		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
 
		fireGlobals = jQuery.event && s.global;
 

	
 
		// Watch for a new set of requests
 
		if ( fireGlobals && jQuery.active++ === 0 ) {
 
			jQuery.event.trigger( "ajaxStart" );
 
		}
 

	
 
		// Uppercase the type
 
		s.type = s.type.toUpperCase();
 

	
 
		// Determine if request has content
 
		s.hasContent = !rnoContent.test( s.type );
 

	
 
		// Save the URL in case we're toying with the If-Modified-Since
 
		// and/or If-None-Match header later on
 
		cacheURL = s.url;
 

	
 
		// More options handling for requests with no content
 
		if ( !s.hasContent ) {
 

	
 
			// If data is available, append data to url
 
			if ( s.data ) {
 
				cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
 

	
 
				// #9682: remove data so that it's not used in an eventual retry
 
				delete s.data;
 
			}
 

	
 
			// Add anti-cache in url if needed
 
			if ( s.cache === false ) {
 
				s.url = rts.test( cacheURL ) ?
 

	
 
					// If there is already a '_' parameter, set its value
 
					cacheURL.replace( rts, "$1_=" + nonce++ ) :
 

	
 
					// Otherwise add one to the end
 
					cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++;
 
			}
 
		}
 

	
 
		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
 
		if ( s.ifModified ) {
 
			if ( jQuery.lastModified[ cacheURL ] ) {
 
				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
 
			}
 
			if ( jQuery.etag[ cacheURL ] ) {
 
				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
 
			}
 
		}
 

	
 
		// Set the correct header, if data is being sent
 
		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
 
			jqXHR.setRequestHeader( "Content-Type", s.contentType );
 
		}
 

	
 
		// Set the Accepts header for the server, depending on the dataType
 
		jqXHR.setRequestHeader(
 
			"Accept",
 
			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
 
				s.accepts[ s.dataTypes[ 0 ] ] +
 
					( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
 
				s.accepts[ "*" ]
 
		);
 

	
 
		// Check for headers option
 
		for ( i in s.headers ) {
 
			jqXHR.setRequestHeader( i, s.headers[ i ] );
 
		}
 

	
 
		// Allow custom headers/mimetypes and early abort
 
		if ( s.beforeSend &&
 
			( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
 

	
 
			// Abort if not done already and return
 
			return jqXHR.abort();
 
		}
 

	
 
		// Aborting is no longer a cancellation
 
		strAbort = "abort";
 

	
 
		// Install callbacks on deferreds
 
		for ( i in { success: 1, error: 1, complete: 1 } ) {
 
			jqXHR[ i ]( s[ i ] );
 
		}
 

	
 
		// Get transport
 
		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
 

	
 
		// If no transport, we auto-abort
 
		if ( !transport ) {
 
			done( -1, "No Transport" );
 
		} else {
 
			jqXHR.readyState = 1;
 

	
 
			// Send global event
 
			if ( fireGlobals ) {
 
				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
 
			}
 

	
 
			// If request was aborted inside ajaxSend, stop there
 
			if ( state === 2 ) {
 
				return jqXHR;
 
			}
 

	
 
			// Timeout
 
			if ( s.async && s.timeout > 0 ) {
 
				timeoutTimer = window.setTimeout( function() {
 
					jqXHR.abort( "timeout" );
 
				}, s.timeout );
 
			}
 

	
 
			try {
 
				state = 1;
 
				transport.send( requestHeaders, done );
 
			} catch ( e ) {
 

	
 
				// Propagate exception as error if not done
 
				if ( state < 2 ) {
 
					done( -1, e );
 

	
 
				// Simply rethrow otherwise
 
				} else {
 
					throw e;
 
				}
 
			}
 
		}
 

	
 
		// Callback for when everything is done
 
		function done( status, nativeStatusText, responses, headers ) {
 
			var isSuccess, success, error, response, modified,
 
				statusText = nativeStatusText;
 

	
 
			// Called once
 
			if ( state === 2 ) {
 
				return;
 
			}
 

	
 
			// State is "done" now
 
			state = 2;
 

	
 
			// Clear timeout if it exists
 
			if ( timeoutTimer ) {
 
				window.clearTimeout( timeoutTimer );
 
			}
 

	
 
			// Dereference transport for early garbage collection
 
			// (no matter how long the jqXHR object will be used)
 
			transport = undefined;
 

	
 
			// Cache response headers
 
			responseHeadersString = headers || "";
 

	
 
			// Set readyState
 
			jqXHR.readyState = status > 0 ? 4 : 0;
 

	
 
			// Determine if successful
 
			isSuccess = status >= 200 && status < 300 || status === 304;
 

	
 
			// Get response data
 
			if ( responses ) {
 
				response = ajaxHandleResponses( s, jqXHR, responses );
 
			}
 

	
 
			// Convert no matter what (that way responseXXX fields are always set)
 
			response = ajaxConvert( s, response, jqXHR, isSuccess );
 

	
 
			// If successful, handle type chaining
 
			if ( isSuccess ) {
 

	
 
				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
 
				if ( s.ifModified ) {
 
					modified = jqXHR.getResponseHeader( "Last-Modified" );
 
					if ( modified ) {
 
						jQuery.lastModified[ cacheURL ] = modified;
 
					}
 
					modified = jqXHR.getResponseHeader( "etag" );
 
					if ( modified ) {
 
						jQuery.etag[ cacheURL ] = modified;
 
					}
 
				}
 

	
 
				// if no content
 
				if ( status === 204 || s.type === "HEAD" ) {
 
					statusText = "nocontent";
 

	
 
				// if not modified
 
				} else if ( status === 304 ) {
 
					statusText = "notmodified";
 

	
 
				// If we have data, let's convert it
 
				} else {
 
					statusText = response.state;
 
					success = response.data;
 
					error = response.error;
 
					isSuccess = !error;
 
				}
 
			} else {
 

	
 
				// Extract error from statusText and normalize for non-aborts
 
				error = statusText;
 
				if ( status || !statusText ) {
 
					statusText = "error";
 
					if ( status < 0 ) {
 
						status = 0;
 
					}
 
				}
 
			}
 

	
 
			// Set data for the fake xhr object
 
			jqXHR.status = status;
 
			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
 

	
 
			// Success/Error
 
			if ( isSuccess ) {
 
				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
 
			} else {
 
				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
 
			}
 

	
 
			// Status-dependent callbacks
 
			jqXHR.statusCode( statusCode );
 
			statusCode = undefined;
 

	
 
			if ( fireGlobals ) {
 
				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
 
					[ jqXHR, s, isSuccess ? success : error ] );
 
			}
 

	
 
			// Complete
 
			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
 

	
 
			if ( fireGlobals ) {
 
				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
 

	
 
				// Handle the global AJAX counter
 
				if ( !( --jQuery.active ) ) {
 
					jQuery.event.trigger( "ajaxStop" );
 
				}
 
			}
 
		}
 

	
 
		return jqXHR;
 
	},
 

	
 
	getJSON: function( url, data, callback ) {
 
		return jQuery.get( url, data, callback, "json" );
 
	},
 

	
 
	getScript: function( url, callback ) {
 
		return jQuery.get( url, undefined, callback, "script" );
 
	}
 
} );
 

	
 
jQuery.each( [ "get", "post" ], function( i, method ) {
 
	jQuery[ method ] = function( url, data, callback, type ) {
 

	
 
		// Shift arguments if data argument was omitted
 
		if ( jQuery.isFunction( data ) ) {
 
			type = type || callback;
 
			callback = data;
 
			data = undefined;
 
		}
 

	
 
		// The url can be an options object (which then must have .url)
 
		return jQuery.ajax( jQuery.extend( {
 
			url: url,
 
			type: method,
 
			dataType: type,
 
			data: data,
 
			success: callback
 
		}, jQuery.isPlainObject( url ) && url ) );
 
	};
 
} );
 

	
 

	
 
jQuery._evalUrl = function( url ) {
 
	return jQuery.ajax( {
 
		url: url,
 

	
 
		// Make this explicit, since user can override this through ajaxSetup (#11264)
 
		type: "GET",
 
		dataType: "script",
 
		async: false,
 
		global: false,
 
		"throws": true
 
	} );
 
};
 

	
 

	
 
jQuery.fn.extend( {
 
	wrapAll: function( html ) {
 
		var wrap;
 

	
 
		if ( jQuery.isFunction( html ) ) {
 
			return this.each( function( i ) {
 
				jQuery( this ).wrapAll( html.call( this, i ) );
 
			} );
 
		}
 

	
 
		if ( this[ 0 ] ) {
 

	
 
			// The elements to wrap the target around
 
			wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
 

	
 
			if ( this[ 0 ].parentNode ) {
 
				wrap.insertBefore( this[ 0 ] );
 
			}
 

	
 
			wrap.map( function() {
 
				var elem = this;
 

	
 
				while ( elem.firstElementChild ) {
 
					elem = elem.firstElementChild;
 
				}
 

	
 
				return elem;
 
			} ).append( this );
 
		}
 

	
 
		return this;
 
	},
 

	
 
	wrapInner: function( html ) {
 
		if ( jQuery.isFunction( html ) ) {
 
			return this.each( function( i ) {
 
				jQuery( this ).wrapInner( html.call( this, i ) );
 
			} );
 
		}
 

	
 
		return this.each( function() {
 
			var self = jQuery( this ),
 
				contents = self.contents();
 

	
 
			if ( contents.length ) {
 
				contents.wrapAll( html );
 

	
 
			} else {
 
				self.append( html );
 
			}
 
		} );
 
	},
 

	
 
	wrap: function( html ) {
 
		var isFunction = jQuery.isFunction( html );
 

	
 
		return this.each( function( i ) {
 
			jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
 
		} );
 
	},
 

	
 
	unwrap: function() {
 
		return this.parent().each( function() {
 
			if ( !jQuery.nodeName( this, "body" ) ) {
 
				jQuery( this ).replaceWith( this.childNodes );
 
			}
 
		} ).end();
 
	}
 
} );
 

	
 

	
 
jQuery.expr.filters.hidden = function( elem ) {
 
	return !jQuery.expr.filters.visible( elem );
 
};
 
jQuery.expr.filters.visible = function( elem ) {
 

	
 
	// Support: Opera <= 12.12
 
	// Opera reports offsetWidths and offsetHeights less than zero on some elements
 
	// Use OR instead of AND as the element is not visible if either is true
 
	// See tickets #10406 and #13132
 
	return elem.offsetWidth > 0 || elem.offsetHeight > 0 || elem.getClientRects().length > 0;
 
};
 

	
 

	
 

	
 

	
 
var r20 = /%20/g,
 
	rbracket = /\[\]$/,
 
	rCRLF = /\r?\n/g,
 
	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
 
	rsubmittable = /^(?:input|select|textarea|keygen)/i;
 

	
 
function buildParams( prefix, obj, traditional, add ) {
 
	var name;
 

	
 
	if ( jQuery.isArray( obj ) ) {
 

	
 
		// Serialize array item.
 
		jQuery.each( obj, function( i, v ) {
 
			if ( traditional || rbracket.test( prefix ) ) {
 

	
 
				// Treat each array item as a scalar.
 
				add( prefix, v );
 

	
 
			} else {
 

	
 
				// Item is non-scalar (array or object), encode its numeric index.
 
				buildParams(
 
					prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
 
					v,
 
					traditional,
 
					add
 
				);
 
			}
 
		} );
 

	
 
	} else if ( !traditional && jQuery.type( obj ) === "object" ) {
 

	
 
		// Serialize object item.
 
		for ( name in obj ) {
 
			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
 
		}
 

	
 
	} else {
 

	
 
		// Serialize scalar item.
 
		add( prefix, obj );
 
	}
 
}
 

	
 
// Serialize an array of form elements or a set of
 
// key/values into a query string
 
jQuery.param = function( a, traditional ) {
 
	var prefix,
 
		s = [],
 
		add = function( key, value ) {
 

	
 
			// If value is a function, invoke it and return its value
 
			value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
 
			s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
 
		};
 

	
 
	// Set traditional to true for jQuery <= 1.3.2 behavior.
 
	if ( traditional === undefined ) {
 
		traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
 
	}
 

	
 
	// If an array was passed in, assume that it is an array of form elements.
 
	if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
 

	
 
		// Serialize the form elements
 
		jQuery.each( a, function() {
 
			add( this.name, this.value );
 
		} );
 

	
 
	} else {
 

	
 
		// If traditional, encode the "old" way (the way 1.3.2 or older
 
		// did it), otherwise encode params recursively.
 
		for ( prefix in a ) {
 
			buildParams( prefix, a[ prefix ], traditional, add );
 
		}
 
	}
 

	
 
	// Return the resulting serialization
 
	return s.join( "&" ).replace( r20, "+" );
 
};
 

	
 
jQuery.fn.extend( {
 
	serialize: function() {
 
		return jQuery.param( this.serializeArray() );
 
	},
 
	serializeArray: function() {
 
		return this.map( function() {
 

	
 
			// Can add propHook for "elements" to filter or add form elements
 
			var elements = jQuery.prop( this, "elements" );
 
			return elements ? jQuery.makeArray( elements ) : this;
 
		} )
 
		.filter( function() {
 
			var type = this.type;
 

	
 
			// Use .is( ":disabled" ) so that fieldset[disabled] works
 
			return this.name && !jQuery( this ).is( ":disabled" ) &&
 
				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
 
				( this.checked || !rcheckableType.test( type ) );
 
		} )
 
		.map( function( i, elem ) {
 
			var val = jQuery( this ).val();
 

	
 
			return val == null ?
 
				null :
 
				jQuery.isArray( val ) ?
 
					jQuery.map( val, function( val ) {
 
						return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
 
					} ) :
 
					{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
 
		} ).get();
 
	}
 
} );
 

	
 

	
 
jQuery.ajaxSettings.xhr = function() {
 
	try {
 
		return new window.XMLHttpRequest();
 
	} catch ( e ) {}
 
};
 

	
 
var xhrSuccessStatus = {
 

	
 
		// File protocol always yields status code 0, assume 200
 
		0: 200,
 

	
 
		// Support: IE9
 
		// #1450: sometimes IE returns 1223 when it should be 204
 
		1223: 204
 
	},
 
	xhrSupported = jQuery.ajaxSettings.xhr();
 

	
 
support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
 
support.ajax = xhrSupported = !!xhrSupported;
 

	
 
jQuery.ajaxTransport( function( options ) {
 
	var callback, errorCallback;
 

	
 
	// Cross domain only allowed if supported through XMLHttpRequest
 
	if ( support.cors || xhrSupported && !options.crossDomain ) {
 
		return {
 
			send: function( headers, complete ) {
 
				var i,
 
					xhr = options.xhr();
 

	
 
				xhr.open(
 
					options.type,
 
					options.url,
 
					options.async,
 
					options.username,
 
					options.password
 
				);
 

	
 
				// Apply custom fields if provided
 
				if ( options.xhrFields ) {
 
					for ( i in options.xhrFields ) {
 
						xhr[ i ] = options.xhrFields[ i ];
 
					}
 
				}
 

	
 
				// Override mime type if needed
 
				if ( options.mimeType && xhr.overrideMimeType ) {
 
					xhr.overrideMimeType( options.mimeType );
 
				}
 

	
 
				// X-Requested-With header
 
				// For cross-domain requests, seeing as conditions for a preflight are
 
				// akin to a jigsaw puzzle, we simply never set it to be sure.
 
				// (it can always be set on a per-request basis or even using ajaxSetup)
 
				// For same-domain requests, won't change header if already provided.
 
				if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
 
					headers[ "X-Requested-With" ] = "XMLHttpRequest";
 
				}
 

	
 
				// Set headers
 
				for ( i in headers ) {
 
					xhr.setRequestHeader( i, headers[ i ] );
 
				}
 

	
 
				// Callback
 
				callback = function( type ) {
 
					return function() {
 
						if ( callback ) {
 
							callback = errorCallback = xhr.onload =
 
								xhr.onerror = xhr.onabort = xhr.onreadystatechange = null;
 

	
 
							if ( type === "abort" ) {
 
								xhr.abort();
 
							} else if ( type === "error" ) {
 

	
 
								// Support: IE9
 
								// On a manual native abort, IE9 throws
 
								// errors on any property access that is not readyState
 
								if ( typeof xhr.status !== "number" ) {
 
									complete( 0, "error" );
 
								} else {
 
									complete(
 

	
 
										// File: protocol always yields status 0; see #8605, #14207
 
										xhr.status,
 
										xhr.statusText
 
									);
 
								}
 
							} else {
 
								complete(
 
									xhrSuccessStatus[ xhr.status ] || xhr.status,
 
									xhr.statusText,
 

	
 
									// Support: IE9 only
 
									// IE9 has no XHR2 but throws on binary (trac-11426)
 
									// For XHR2 non-text, let the caller handle it (gh-2498)
 
									( xhr.responseType || "text" ) !== "text"  ||
 
									typeof xhr.responseText !== "string" ?
 
										{ binary: xhr.response } :
 
										{ text: xhr.responseText },
 
									xhr.getAllResponseHeaders()
 
								);
 
							}
 
						}
 
					};
 
				};
 

	
 
				// Listen to events
 
				xhr.onload = callback();
 
				errorCallback = xhr.onerror = callback( "error" );
 

	
 
				// Support: IE9
 
				// Use onreadystatechange to replace onabort
 
				// to handle uncaught aborts
 
				if ( xhr.onabort !== undefined ) {
 
					xhr.onabort = errorCallback;
 
				} else {
 
					xhr.onreadystatechange = function() {
 

	
 
						// Check readyState before timeout as it changes
 
						if ( xhr.readyState === 4 ) {
 

	
 
							// Allow onerror to be called first,
 
							// but that will not handle a native abort
 
							// Also, save errorCallback to a variable
 
							// as xhr.onerror cannot be accessed
 
							window.setTimeout( function() {
 
								if ( callback ) {
 
									errorCallback();
 
								}
 
							} );
 
						}
 
					};
 
				}
 

	
 
				// Create the abort callback
 
				callback = callback( "abort" );
 

	
 
				try {
 

	
 
					// Do send the request (this may raise an exception)
 
					xhr.send( options.hasContent && options.data || null );
 
				} catch ( e ) {
 

	
 
					// #14683: Only rethrow if this hasn't been notified as an error yet
 
					if ( callback ) {
 
						throw e;
 
					}
 
				}
 
			},
 

	
 
			abort: function() {
 
				if ( callback ) {
 
					callback();
 
				}
 
			}
 
		};
 
	}
 
} );
 

	
 

	
 

	
 

	
 
// Install script dataType
 
jQuery.ajaxSetup( {
 
	accepts: {
 
		script: "text/javascript, application/javascript, " +
 
			"application/ecmascript, application/x-ecmascript"
 
	},
 
	contents: {
 
		script: /\b(?:java|ecma)script\b/
 
	},
 
	converters: {
 
		"text script": function( text ) {
 
			jQuery.globalEval( text );
 
			return text;
 
		}
 
	}
 
} );
 

	
 
// Handle cache's special case and crossDomain
 
jQuery.ajaxPrefilter( "script", function( s ) {
 
	if ( s.cache === undefined ) {
 
		s.cache = false;
 
	}
 
	if ( s.crossDomain ) {
 
		s.type = "GET";
 
	}
 
} );
 

	
 
// Bind script tag hack transport
 
jQuery.ajaxTransport( "script", function( s ) {
 

	
 
	// This transport only deals with cross domain requests
 
	if ( s.crossDomain ) {
 
		var script, callback;
 
		return {
 
			send: function( _, complete ) {
 
				script = jQuery( "<script>" ).prop( {
 
					charset: s.scriptCharset,
 
					src: s.url
 
				} ).on(
 
					"load error",
 
					callback = function( evt ) {
 
						script.remove();
 
						callback = null;
 
						if ( evt ) {
 
							complete( evt.type === "error" ? 404 : 200, evt.type );
 
						}
 
					}
 
				);
 

	
 
				// Use native DOM manipulation to avoid our domManip AJAX trickery
 
				document.head.appendChild( script[ 0 ] );
 
			},
 
			abort: function() {
 
				if ( callback ) {
 
					callback();
 
				}
 
			}
 
		};
 
	}
 
} );
 

	
 

	
 

	
 

	
 
var oldCallbacks = [],
 
	rjsonp = /(=)\?(?=&|$)|\?\?/;
 

	
 
// Default jsonp settings
 
jQuery.ajaxSetup( {
 
	jsonp: "callback",
 
	jsonpCallback: function() {
 
		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
 
		this[ callback ] = true;
 
		return callback;
 
	}
 
} );
 

	
 
// Detect, normalize options and install callbacks for jsonp requests
 
jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
 

	
 
	var callbackName, overwritten, responseContainer,
 
		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
 
			"url" :
 
			typeof s.data === "string" &&
 
				( s.contentType || "" )
 
					.indexOf( "application/x-www-form-urlencoded" ) === 0 &&
 
				rjsonp.test( s.data ) && "data"
 
		);
 

	
 
	// Handle iff the expected data type is "jsonp" or we have a parameter to set
 
	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
 

	
 
		// Get callback name, remembering preexisting value associated with it
 
		callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
 
			s.jsonpCallback() :
 
			s.jsonpCallback;
 

	
 
		// Insert callback into url or form data
 
		if ( jsonProp ) {
 
			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
 
		} else if ( s.jsonp !== false ) {
 
			s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
 
		}
 

	
 
		// Use data converter to retrieve json after script execution
 
		s.converters[ "script json" ] = function() {
 
			if ( !responseContainer ) {
 
				jQuery.error( callbackName + " was not called" );
 
			}
 
			return responseContainer[ 0 ];
 
		};
 

	
 
		// Force json dataType
 
		s.dataTypes[ 0 ] = "json";
 

	
 
		// Install callback
 
		overwritten = window[ callbackName ];
 
		window[ callbackName ] = function() {
 
			responseContainer = arguments;
 
		};
 

	
 
		// Clean-up function (fires after converters)
 
		jqXHR.always( function() {
 

	
 
			// If previous value didn't exist - remove it
 
			if ( overwritten === undefined ) {
 
				jQuery( window ).removeProp( callbackName );
 

	
 
			// Otherwise restore preexisting value
 
			} else {
 
				window[ callbackName ] = overwritten;
 
			}
 

	
 
			// Save back as free
 
			if ( s[ callbackName ] ) {
 

	
 
				// Make sure that re-using the options doesn't screw things around
 
				s.jsonpCallback = originalSettings.jsonpCallback;
 

	
 
				// Save the callback name for future use
 
				oldCallbacks.push( callbackName );
 
			}
 

	
 
			// Call if it was a function and we have a response
 
			if ( responseContainer && jQuery.isFunction( overwritten ) ) {
 
				overwritten( responseContainer[ 0 ] );
 
			}
 

	
 
			responseContainer = overwritten = undefined;
 
		} );
 

	
 
		// Delegate to script
 
		return "script";
 
	}
 
} );
 

	
 

	
 

	
 

	
 
// Support: Safari 8+
 
// In Safari 8 documents created via document.implementation.createHTMLDocument
 
// collapse sibling forms: the second one becomes a child of the first one.
 
// Because of that, this security measure has to be disabled in Safari 8.
 
// https://bugs.webkit.org/show_bug.cgi?id=137337
 
support.createHTMLDocument = ( function() {
 
	var body = document.implementation.createHTMLDocument( "" ).body;
 
	body.innerHTML = "<form></form><form></form>";
 
	return body.childNodes.length === 2;
 
} )();
 

	
 

	
 
// Argument "data" should be string of html
 
// context (optional): If specified, the fragment will be created in this context,
 
// defaults to document
 
// keepScripts (optional): If true, will include scripts passed in the html string
 
jQuery.parseHTML = function( data, context, keepScripts ) {
 
	if ( !data || typeof data !== "string" ) {
 
		return null;
 
	}
 
	if ( typeof context === "boolean" ) {
 
		keepScripts = context;
 
		context = false;
 
	}
 

	
 
	// Stop scripts or inline event handlers from being executed immediately
 
	// by using document.implementation
 
	context = context || ( support.createHTMLDocument ?
 
		document.implementation.createHTMLDocument( "" ) :
 
		document );
 

	
 
	var parsed = rsingleTag.exec( data ),
 
		scripts = !keepScripts && [];
 

	
 
	// Single tag
 
	if ( parsed ) {
 
		return [ context.createElement( parsed[ 1 ] ) ];
 
	}
 

	
 
	parsed = buildFragment( [ data ], context, scripts );
 

	
 
	if ( scripts && scripts.length ) {
 
		jQuery( scripts ).remove();
 
	}
 

	
 
	return jQuery.merge( [], parsed.childNodes );
 
};
 

	
 

	
 
// Keep a copy of the old load method
 
var _load = jQuery.fn.load;
 

	
 
/**
 
 * Load a url into a page
 
 */
 
jQuery.fn.load = function( url, params, callback ) {
 
	if ( typeof url !== "string" && _load ) {
 
		return _load.apply( this, arguments );
 
	}
 

	
 
	var selector, type, response,
 
		self = this,
 
		off = url.indexOf( " " );
 

	
 
	if ( off > -1 ) {
 
		selector = jQuery.trim( url.slice( off ) );
 
		url = url.slice( 0, off );
 
	}
 

	
 
	// If it's a function
 
	if ( jQuery.isFunction( params ) ) {
 

	
 
		// We assume that it's the callback
 
		callback = params;
 
		params = undefined;
 

	
 
	// Otherwise, build a param string
 
	} else if ( params && typeof params === "object" ) {
 
		type = "POST";
 
	}
 

	
 
	// If we have elements to modify, make the request
 
	if ( self.length > 0 ) {
 
		jQuery.ajax( {
 
			url: url,
 

	
 
			// If "type" variable is undefined, then "GET" method will be used.
 
			// Make value of this field explicit since
 
			// user can override it through ajaxSetup method
 
			type: type || "GET",
 
			dataType: "html",
 
			data: params
 
		} ).done( function( responseText ) {
 

	
 
			// Save response for use in complete callback
 
			response = arguments;
 

	
 
			self.html( selector ?
 

	
 
				// If a selector was specified, locate the right elements in a dummy div
 
				// Exclude scripts to avoid IE 'Permission Denied' errors
 
				jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
 

	
 
				// Otherwise use the full result
 
				responseText );
 

	
 
		// If the request succeeds, this function gets "data", "status", "jqXHR"
 
		// but they are ignored because response was set above.
 
		// If it fails, this function gets "jqXHR", "status", "error"
 
		} ).always( callback && function( jqXHR, status ) {
 
			self.each( function() {
 
				callback.apply( self, response || [ jqXHR.responseText, status, jqXHR ] );
 
			} );
 
		} );
 
	}
 

	
 
	return this;
 
};
 

	
 

	
 

	
 

	
 
// Attach a bunch of functions for handling common AJAX events
 
jQuery.each( [
 
	"ajaxStart",
 
	"ajaxStop",
 
	"ajaxComplete",
 
	"ajaxError",
 
	"ajaxSuccess",
 
	"ajaxSend"
 
], function( i, type ) {
 
	jQuery.fn[ type ] = function( fn ) {
 
		return this.on( type, fn );
 
	};
 
} );
 

	
 

	
 

	
 

	
 
jQuery.expr.filters.animated = function( elem ) {
 
	return jQuery.grep( jQuery.timers, function( fn ) {
 
		return elem === fn.elem;
 
	} ).length;
 
};
 

	
 

	
 

	
 

	
 
/**
 
 * Gets a window from an element
 
 */
 
function getWindow( elem ) {
 
	return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;
 
}
 

	
 
jQuery.offset = {
 
	setOffset: function( elem, options, i ) {
 
		var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
 
			position = jQuery.css( elem, "position" ),
 
			curElem = jQuery( elem ),
 
			props = {};
 

	
 
		// Set position first, in-case top/left are set even on static elem
 
		if ( position === "static" ) {
 
			elem.style.position = "relative";
 
		}
 

	
 
		curOffset = curElem.offset();
 
		curCSSTop = jQuery.css( elem, "top" );
 
		curCSSLeft = jQuery.css( elem, "left" );
 
		calculatePosition = ( position === "absolute" || position === "fixed" ) &&
 
			( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
 

	
 
		// Need to be able to calculate position if either
 
		// top or left is auto and position is either absolute or fixed
 
		if ( calculatePosition ) {
 
			curPosition = curElem.position();
 
			curTop = curPosition.top;
 
			curLeft = curPosition.left;
 

	
 
		} else {
 
			curTop = parseFloat( curCSSTop ) || 0;
 
			curLeft = parseFloat( curCSSLeft ) || 0;
 
		}
 

	
 
		if ( jQuery.isFunction( options ) ) {
 

	
 
			// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
 
			options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
 
		}
 

	
 
		if ( options.top != null ) {
 
			props.top = ( options.top - curOffset.top ) + curTop;
 
		}
 
		if ( options.left != null ) {
 
			props.left = ( options.left - curOffset.left ) + curLeft;
 
		}
 

	
 
		if ( "using" in options ) {
 
			options.using.call( elem, props );
 

	
 
		} else {
 
			curElem.css( props );
 
		}
 
	}
 
};
 

	
 
jQuery.fn.extend( {
 
	offset: function( options ) {
 
		if ( arguments.length ) {
 
			return options === undefined ?
 
				this :
 
				this.each( function( i ) {
 
					jQuery.offset.setOffset( this, options, i );
 
				} );
 
		}
 

	
 
		var docElem, win,
 
			elem = this[ 0 ],
 
			box = { top: 0, left: 0 },
 
			doc = elem && elem.ownerDocument;
 

	
 
		if ( !doc ) {
 
			return;
 
		}
 

	
 
		docElem = doc.documentElement;
 

	
 
		// Make sure it's not a disconnected DOM node
 
		if ( !jQuery.contains( docElem, elem ) ) {
 
			return box;
 
		}
 

	
 
		box = elem.getBoundingClientRect();
 
		win = getWindow( doc );
 
		return {
 
			top: box.top + win.pageYOffset - docElem.clientTop,
 
			left: box.left + win.pageXOffset - docElem.clientLeft
 
		};
 
	},
 

	
 
	position: function() {
 
		if ( !this[ 0 ] ) {
 
			return;
 
		}
 

	
 
		var offsetParent, offset,
 
			elem = this[ 0 ],
 
			parentOffset = { top: 0, left: 0 };
 

	
 
		// Fixed elements are offset from window (parentOffset = {top:0, left: 0},
 
		// because it is its only offset parent
 
		if ( jQuery.css( elem, "position" ) === "fixed" ) {
 

	
 
			// Assume getBoundingClientRect is there when computed position is fixed
 
			offset = elem.getBoundingClientRect();
 

	
 
		} else {
 

	
 
			// Get *real* offsetParent
 
			offsetParent = this.offsetParent();
 

	
 
			// Get correct offsets
 
			offset = this.offset();
 
			if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
 
				parentOffset = offsetParent.offset();
 
			}
 

	
 
			// Add offsetParent borders
 
			parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
 
			parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
 
		}
 

	
 
		// Subtract parent offsets and element margins
 
		return {
 
			top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
 
			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
 
		};
 
	},
 

	
 
	// This method will return documentElement in the following cases:
 
	// 1) For the element inside the iframe without offsetParent, this method will return
 
	//    documentElement of the parent window
 
	// 2) For the hidden or detached element
 
	// 3) For body or html element, i.e. in case of the html node - it will return itself
 
	//
 
	// but those exceptions were never presented as a real life use-cases
 
	// and might be considered as more preferable results.
 
	//
 
	// This logic, however, is not guaranteed and can change at any point in the future
 
	offsetParent: function() {
 
		return this.map( function() {
 
			var offsetParent = this.offsetParent;
 

	
 
			while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
 
				offsetParent = offsetParent.offsetParent;
 
			}
 

	
 
			return offsetParent || documentElement;
 
		} );
 
	}
 
} );
 

	
 
// Create scrollLeft and scrollTop methods
 
jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
 
	var top = "pageYOffset" === prop;
 

	
 
	jQuery.fn[ method ] = function( val ) {
 
		return access( this, function( elem, method, val ) {
 
			var win = getWindow( elem );
 

	
 
			if ( val === undefined ) {
 
				return win ? win[ prop ] : elem[ method ];
 
			}
 

	
 
			if ( win ) {
 
				win.scrollTo(
 
					!top ? val : win.pageXOffset,
 
					top ? val : win.pageYOffset
 
				);
 

	
 
			} else {
 
				elem[ method ] = val;
 
			}
 
		}, method, val, arguments.length );
 
	};
 
} );
 

	
 
// Support: Safari<7-8+, Chrome<37-44+
 
// Add the top/left cssHooks using jQuery.fn.position
 
// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
 
// Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280
 
// getComputedStyle returns percent when specified for top/left/bottom/right;
 
// rather than make the css module depend on the offset module, just check for it here
 
jQuery.each( [ "top", "left" ], function( i, prop ) {
 
	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
 
		function( elem, computed ) {
 
			if ( computed ) {
 
				computed = curCSS( elem, prop );
 

	
 
				// If curCSS returns percentage, fallback to offset
 
				return rnumnonpx.test( computed ) ?
 
					jQuery( elem ).position()[ prop ] + "px" :
 
					computed;
 
			}
 
		}
 
	);
 
} );
 

	
 

	
 
// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
 
jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
 
	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
 
		function( defaultExtra, funcName ) {
 

	
 
		// Margin is only for outerHeight, outerWidth
 
		jQuery.fn[ funcName ] = function( margin, value ) {
 
			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
 
				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
 

	
 
			return access( this, function( elem, type, value ) {
 
				var doc;
 

	
 
				if ( jQuery.isWindow( elem ) ) {
 

	
 
					// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
 
					// isn't a whole lot we can do. See pull request at this URL for discussion:
 
					// https://github.com/jquery/jquery/pull/764
 
					return elem.document.documentElement[ "client" + name ];
 
				}
 

	
 
				// Get document width or height
 
				if ( elem.nodeType === 9 ) {
 
					doc = elem.documentElement;
 

	
 
					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
 
					// whichever is greatest
 
					return Math.max(
 
						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
 
						elem.body[ "offset" + name ], doc[ "offset" + name ],
 
						doc[ "client" + name ]
 
					);
 
				}
 

	
 
				return value === undefined ?
 

	
 
					// Get width or height on the element, requesting but not forcing parseFloat
 
					jQuery.css( elem, type, extra ) :
 

	
 
					// Set width or height on the element
 
					jQuery.style( elem, type, value, extra );
 
			}, type, chainable ? margin : undefined, chainable, null );
 
		};
 
	} );
 
} );
 

	
 

	
 
jQuery.fn.extend( {
 

	
 
	bind: function( types, data, fn ) {
 
		return this.on( types, null, data, fn );
 
	},
 
	unbind: function( types, fn ) {
 
		return this.off( types, null, fn );
 
	},
 

	
 
	delegate: function( selector, types, data, fn ) {
 
		return this.on( types, selector, data, fn );
 
	},
 
	undelegate: function( selector, types, fn ) {
 

	
 
		// ( namespace ) or ( selector, types [, fn] )
 
		return arguments.length === 1 ?
 
			this.off( selector, "**" ) :
 
			this.off( types, selector || "**", fn );
 
	},
 
	size: function() {
 
		return this.length;
 
	}
 
} );
 

	
 
jQuery.fn.andSelf = jQuery.fn.addBack;
 

	
 

	
 

	
 

	
 
// Register as a named AMD module, since jQuery can be concatenated with other
 
// files that may use define, but not via a proper concatenation script that
 
// understands anonymous AMD modules. A named AMD is safest and most robust
 
// way to register. Lowercase jquery is used because AMD module names are
 
// derived from file names, and jQuery is normally delivered in a lowercase
 
// file name. Do this after creating the global so that if an AMD module wants
 
// to call noConflict to hide this version of jQuery, it will work.
 

	
 
// Note that for maximum portability, libraries that are not jQuery should
 
// declare themselves as anonymous modules, and avoid setting a global if an
 
// AMD loader is present. jQuery is a special case. For more information, see
 
// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
 

	
 
if ( typeof define === "function" && define.amd ) {
 
	define( "jquery", [], function() {
 
		return jQuery;
 
	} );
 
}
 

	
 

	
 

	
 
var
 

	
 
	// Map over jQuery in case of overwrite
 
	_jQuery = window.jQuery,
 

	
 
	// Map over the $ in case of overwrite
 
	_$ = window.$;
 

	
 
jQuery.noConflict = function( deep ) {
 
	if ( window.$ === jQuery ) {
 
		window.$ = _$;
 
	}
 

	
 
	if ( deep && window.jQuery === jQuery ) {
 
		window.jQuery = _jQuery;
 
	}
 

	
 
	return jQuery;
 
};
 

	
 
// Expose jQuery and $ identifiers, even in AMD
 
// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
 
// and CommonJS for browser emulators (#13566)
 
if ( !noGlobal ) {
 
	window.jQuery = window.$ = jQuery;
 
}
 

	
 
return jQuery;
 
}));
 

	
 
},{}],15:[function(require,module,exports){
 
'use strict';
 

	
 
/* global window ace */
 
window.jQuery = window.$ = require('jquery');
 

	
 
var $ = window.$;
 

	
 
require('bootstrap');
 

	
 
var loadEditors = function loadEditors() {
 
    var $editors = $('.modal-body textarea, #id_body, #id_comment, #id_message, #id_text, #id_abstract, #id_additional_notes, #id_content_override, #id_description, #id_biography');
 
    $editors.each(function (i, el) {
 
        var editorId = 'markdown-editor-' + i;
 
        var reportDiv = $('<div>').attr('id', editorId);
 
        var setupEditor = function setupEditor(editor, textarea) {
 
            var session = editor.getSession();
 
            editor.setTheme('ace/theme/tomorrow');
 
            editor.$blockScrolling = Infinity;
 
            editor.setOption('scrollPastEnd', true);
 
            session.setMode('ace/mode/markdown');
 
            session.setValue(textarea.val());
 
            session.setUseWrapMode(true);
 
            session.on('change', function () {
 
                textarea.val(session.getValue());
 
            });
 
            editor.renderer.setShowGutter(false);
 
            session.setTabSize(4);
 
            session.setUseSoftTabs(true);
 
        };
 
        var $formGroup = $(el).closest('.form-group');
 
        var $textarea = $formGroup.find('textarea');
 
        $formGroup.append(reportDiv);
 
        setupEditor(ace.edit(editorId), $textarea);
 
    });
 
};
 

	
 
$(function () {
 
    loadEditors();
 
});
 

	
 
},{"bootstrap":1,"jquery":14}]},{},[15]);
static/_build/manifest.json
Show inline comments
 
new file 100644
 
{
 
  "css/site.css": "css/site-cf99a8bad7.css",
 
  "js/site.js": "js/site-92ae8d0d6c.js"
 
}
...
 
\ No newline at end of file
static/dist/css/site-cf99a8bad7.css
Show inline comments
 
new file 100644
 
/*!
 
 * Bootstrap v3.3.6 (http://getbootstrap.com)
 
 * Copyright 2011-2015 Twitter, Inc.
 
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 
 */
 
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}
 
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:Glyphicons Halflings;src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:Glyphicons Halflings;font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before,.glyphicon-btc:before,.glyphicon-xbt:before{content:"\e227"}.glyphicon-jpy:before,.glyphicon-yen:before{content:"\00a5"}.glyphicon-rub:before,.glyphicon-ruble:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*,:after,:before{box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail>img,.thumbnail a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,Courier New,monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}code,kbd{padding:2px 4px;font-size:90%}kbd{color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777}caption,th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{margin:0;min-width:0}fieldset,legend{padding:0;border:0}legend{display:block;width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{padding-top:7px}.form-control,output{display:block;font-size:14px;line-height:1.42857143;color:#555}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox-inline input[type=checkbox],.checkbox input[type=checkbox],.radio-inline input[type=radio],.radio input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .checkbox label,fieldset[disabled] .radio-inline,fieldset[disabled] .radio label,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:1;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success.checkbox-inline label,.has-success.checkbox label,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.radio-inline label,.has-success.radio label{color:#3c763d}.has-success .form-control{border-color:#3c763d;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning.checkbox-inline label,.has-warning.checkbox label,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.radio-inline label,.has-warning.radio label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error.checkbox-inline label,.has-error.checkbox label,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.radio-inline label,.has-error.radio label{color:#a94442}.has-error .form-control{border-color:#a94442;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#337ab7;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:7;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#337ab7}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:6}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio],[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:1;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:2}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group .form-control:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group .form-control:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{font-size:0;white-space:nowrap}.input-group-btn,.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:1}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:1;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li,.nav>li>a{position:relative;display:block}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:7;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:8}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container-fluid .navbar-brand,.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin:8px -15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.1),0 1px 0 hsla(0,0%,100%,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left!important;float:left}.navbar-right{float:right!important;float:right;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#337ab7;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:1;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;background-color:#eee}.jumbotron,.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container-fluid .jumbotron,.container .jumbotron{border-radius:6px;padding-left:15px;padding-right:15px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container-fluid .jumbotron,.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes a{0%{background-position:40px 0}to{background-position:0 0}}@keyframes a{0%{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:a 2s linear infinite;animation:a 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{text-decoration:none;color:#555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{background-color:#eee;color:#777;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:1;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle,.panel-title{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table-responsive>.table caption,.panel>.table caption{padding-left:15px;padding-right:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal,.modal-open{overflow:hidden}.modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translateY(-25%);transform:translateY(-25%);-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0);transform:translate(0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:12;display:block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px}.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{left:5px}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:11;display:none;max-width:276px;padding:1px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel,.carousel-inner{position:relative}.carousel-inner{overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media (-webkit-transform-3d),all and (transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-webkit-transform:translateZ(0);transform:translateZ(0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:transparent}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,.0001));background-image:linear-gradient(90deg,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001));background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#00000000',GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001),rgba(0,0,0,.5));background-image:linear-gradient(90deg,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5));background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000',endColorstr='#80000000',GradientType=1)}.carousel-control:focus,.carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;margin-top:-10px;z-index:3;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:5;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000\9;background-color:transparent}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:4;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.feature-columns:after,.feature-columns:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.feature-columns:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
 
/*!
 
 *  Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome
 
 *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
 
 */@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.5.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.5.0) format('embedded-opentype'),url(../fonts/fontawesome-webfont.woff2?v=4.5.0) format('woff2'),url(../fonts/fontawesome-webfont.woff?v=4.5.0) format('woff'),url(../fonts/fontawesome-webfont.ttf?v=4.5.0) format('truetype'),url(../fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular) format('svg');font-weight:400;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:b 2s infinite linear;animation:b 2s infinite linear}.fa-pulse{-webkit-animation:b 1s infinite steps(8);animation:b 1s infinite steps(8)}@-webkit-keyframes b{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes b{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1);-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1);-webkit-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}body.account-delete .account-delete,body.account-password .account-password,body.account-settings .account-settings{z-index:1;color:#fff;background-color:#337ab7;border-color:#337ab7}form #id_abstract,form #id_additional_notes,form #id_biography,form #id_body,form #id_comment,form #id_content_override,form #id_description,form #id_message,form #id_text,form .modal-body textarea{display:none}form .ace_editor{min-height:200px;width:100%;border:1px dotted #ccc}form .ace_content{padding:5px}body{padding-top:60px}label:not(.checkbox):not(.radio){font-weight:700}header{position:relative;margin-bottom:24px}header h1{margin-bottom:9px;font-size:48px;letter-spacing:-1px;line-height:1;-webkit-margin-before:0;-webkit-margin-after:0}header p{font-size:30px;line-height:36px}header a,header a:hover,header a:visited{color:#333;text-decoration:none}.content-box.editable{border:1px dashed #ccc;padding:1px;min-height:30px}.edit-toggle{position:relative;float:right}div.box-content .markItUpEditor{font-family:Menlo,Monaco,Consolas,Courier New,monospace;padding:5px;width:600px;height:320px;clear:both;display:block;overflow:auto}.modal div.markItUp{width:500px}.modal textarea.markItUpEditor{width:500px;height:250px}.titled-form{position:relative;clear:both;width:auto;margin-bottom:2em;overflow:hidden}.titled-form .titled-form-header{position:relative;height:40px;line-height:40px;background-color:#f8f8f8;border:1px solid #d5d5d5;border-radius:4px 4px 0 0;-webkit-background-clip:padding-box}.titled-form .titled-form-header h3{position:relative;top:2px;left:10px;display:inline-block;margin-right:3em;font-size:14px;font-weight:600;color:#333;line-height:18px;text-shadow:1px 1px 2px hsla(0,0%,100%,.5)}.titled-form .titled-form-content{background-color:#fff;padding-top:20px}.titled-form .form-actions,.titled-form .titled-form-content{border:1px solid #d5d5d5;box-shadow:0 1px 1px rgba(0,0,0,.1);border-top:none}.titled-form .form-actions{margin-top:0;border-radius:0 0 4px 4px}.footer{margin-top:45px;padding:25px 0 26px;border-top:1px solid #e5e5e5}.footer p{margin-bottom:0;color:#555}table.calendar{background-color:#fffff;table-layout:fixed;font-size:12px}table.calendar tr{min-height:36px}table.calendar th{text-align:center}table.calendar th.time{width:40px}table.calendar td{text-align:center;vertical-align:middle}table.calendar td.time{vertical-align:top;padding-top:0;margin-top:0;color:#444;font-size:11px}table.calendar td.slot{font-weight:700;text-shadow:#fff 0 1px 0}table.calendar td.slot.slot-break{background-color:#ecffff}table.calendar td.slot.slot-plenary{background-color:#ebebff}table.calendar td.slot p{padding:0;margin:0}table.calendar td span.title{font-weight:700;display:block}table.calendar td span.speaker{font-weight:400;display:block}body{padding-top:50px;position:relative}section{padding:20px 0}.modal form{margin-bottom:0}footer{padding-bottom:20px}p.login-signup{margin-top:20px}.feature-columns{margin-left:-15px;margin-right:-15px}.feature-columns>div{position:relative;min-height:1px;padding-left:15px;padding-right:15px;text-align:center;margin:2em 0}.feature-columns>div i.fa{margin-bottom:.2em}@media (min-width:768px){.feature-columns>div{float:left;width:33.33333333%}}
...
 
\ No newline at end of file
static/dist/css/site.css
Show inline comments
 
deleted file
static/dist/fonts/FontAwesome.otf
Show inline comments
 
new file 100644
 
binary diff not shown
static/dist/fonts/fontawesome-webfont.eot
Show inline comments
 
binary diff not shown
static/dist/fonts/fontawesome-webfont.svg
Show inline comments
...
 
@@ -2,3 +2,3 @@
 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
 
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
 
<svg xmlns="http://www.w3.org/2000/svg">
 
<metadata></metadata>
...
 
@@ -221,4 +221,4 @@
 
<glyph unicode="&#xf0d3;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5 t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" />
 
<glyph unicode="&#xf0d4;" d="M829 318q0 -76 -58.5 -112.5t-139.5 -36.5q-41 0 -80.5 9.5t-75.5 28.5t-58 53t-22 78q0 46 25 80t65.5 51.5t82 25t84.5 7.5q20 0 31 -2q2 -1 23 -16.5t26 -19t23 -18t24.5 -22t19 -22.5t17 -26t9 -26.5t4.5 -31.5zM755 863q0 -60 -33 -99.5t-92 -39.5q-53 0 -93 42.5 t-57.5 96.5t-17.5 106q0 61 32 104t92 43q53 0 93.5 -45t58 -101t17.5 -107zM861 1120l88 64h-265q-85 0 -161 -32t-127.5 -98t-51.5 -153q0 -93 64.5 -154.5t158.5 -61.5q22 0 43 3q-13 -29 -13 -54q0 -44 40 -94q-175 -12 -257 -63q-47 -29 -75.5 -73t-28.5 -95 q0 -43 18.5 -77.5t48.5 -56.5t69 -37t77.5 -21t76.5 -6q60 0 120.5 15.5t113.5 46t86 82.5t33 117q0 49 -20 89.5t-49 66.5t-58 47.5t-49 44t-20 44.5t15.5 42.5t37.5 39.5t44 42t37.5 59.5t15.5 82.5q0 60 -22.5 99.5t-72.5 90.5h83zM1152 672h128v64h-128v128h-64v-128 h-128v-64h128v-160h64v160zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
 
<glyph unicode="&#xf0d5;" horiz-adv-x="1664" d="M735 740q0 -36 32 -70.5t77.5 -68t90.5 -73.5t77 -104t32 -142q0 -90 -48 -173q-72 -122 -211 -179.5t-298 -57.5q-132 0 -246.5 41.5t-171.5 137.5q-37 60 -37 131q0 81 44.5 150t118.5 115q131 82 404 100q-32 42 -47.5 74t-15.5 73q0 36 21 85q-46 -4 -68 -4 q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q77 66 182.5 98t217.5 32h418l-138 -88h-131q74 -63 112 -133t38 -160q0 -72 -24.5 -129.5t-59 -93t-69.5 -65t-59.5 -61.5t-24.5 -66zM589 836q38 0 78 16.5t66 43.5q53 57 53 159q0 58 -17 125t-48.5 129.5 t-84.5 103.5t-117 41q-42 0 -82.5 -19.5t-65.5 -52.5q-47 -59 -47 -160q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26zM591 -37q58 0 111.5 13t99 39t73 73t27.5 109q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -48 2 q-53 0 -105 -7t-107.5 -25t-97 -46t-68.5 -74.5t-27 -105.5q0 -70 35 -123.5t91.5 -83t119 -44t127.5 -14.5zM1401 839h213v-108h-213v-219h-105v219h-212v108h212v217h105v-217z" />
 
<glyph unicode="&#xf0d4;" d="M917 631q0 26 -6 64h-362v-132h217q-3 -24 -16.5 -50t-37.5 -53t-66.5 -44.5t-96.5 -17.5q-99 0 -169 71t-70 171t70 171t169 71q92 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585 h109v110h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
 
<glyph unicode="&#xf0d5;" horiz-adv-x="2304" d="M1437 623q0 -208 -87 -370.5t-248 -254t-369 -91.5q-149 0 -285 58t-234 156t-156 234t-58 285t58 285t156 234t234 156t285 58q286 0 491 -192l-199 -191q-117 113 -292 113q-123 0 -227.5 -62t-165.5 -168.5t-61 -232.5t61 -232.5t165.5 -168.5t227.5 -62 q83 0 152.5 23t114.5 57.5t78.5 78.5t49 83t21.5 74h-416v252h692q12 -63 12 -122zM2304 745v-210h-209v-209h-210v209h-209v210h209v209h210v-209h209z" />
 
<glyph unicode="&#xf0d6;" horiz-adv-x="1920" d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" />
...
 
@@ -364,3 +364,3 @@
 
<glyph unicode="&#xf16b;" horiz-adv-x="1792" d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" />
 
<glyph unicode="&#xf16c;" horiz-adv-x="1408" d="M928 135v-151l-707 -1v151zM1169 481v-701l-1 -35v-1h-1132l-35 1h-1v736h121v-618h928v618h120zM241 393l704 -65l-13 -150l-705 65zM309 709l683 -183l-39 -146l-683 183zM472 1058l609 -360l-77 -130l-609 360zM832 1389l398 -585l-124 -85l-399 584zM1285 1536 l121 -697l-149 -26l-121 697z" />
 
<glyph unicode="&#xf16c;" d="M1289 -96h-1118v480h-160v-640h1438v640h-160v-480zM347 428l33 157l783 -165l-33 -156zM450 802l67 146l725 -339l-67 -145zM651 1158l102 123l614 -513l-102 -123zM1048 1536l477 -641l-128 -96l-477 641zM330 65v159h800v-159h-800z" />
 
<glyph unicode="&#xf16d;" d="M1362 110v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5zM1078 643q0 124 -90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5 t90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5zM1362 1003v165q0 28 -20 48.5t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165q0 -29 20 -49t49 -20h174q29 0 49 20t20 49zM1536 1211v-1142q0 -81 -58 -139t-139 -58h-1142q-81 0 -139 58t-58 139v1142q0 81 58 139 t139 58h1142q81 0 139 -58t58 -139z" />
...
 
@@ -412,3 +412,3 @@
 
<glyph unicode="&#xf19e;" d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q43 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0 q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" />
 
<glyph unicode="&#xf1a0;" horiz-adv-x="1280" d="M981 197q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -49 2q-53 0 -104.5 -7t-107 -25t-97 -46t-68.5 -74.5t-27 -105.5q0 -56 23.5 -102t61 -75.5t87 -50t100 -29t101.5 -8.5q58 0 111.5 13t99 39t73 73t27.5 109zM864 1055 q0 59 -17 125.5t-48 129t-84 103.5t-117 41q-42 0 -82.5 -19.5t-66.5 -52.5q-46 -59 -46 -160q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q37 0 77.5 16.5t65.5 43.5q53 56 53 159zM752 1536h417l-137 -88h-132q75 -63 113 -133t38 -160q0 -72 -24.5 -129.5 t-59.5 -93t-69.5 -65t-59 -61.5t-24.5 -66q0 -36 32 -70.5t77 -68t90.5 -73.5t77.5 -104t32 -142q0 -91 -49 -173q-71 -122 -209.5 -179.5t-298.5 -57.5q-132 0 -246.5 41.5t-172.5 137.5q-36 59 -36 131q0 81 44.5 150t118.5 115q131 82 404 100q-32 41 -47.5 73.5 t-15.5 73.5q0 40 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q76 66 182 98t218 32z" />
 
<glyph unicode="&#xf1a0;" d="M768 750h725q12 -67 12 -128q0 -217 -91 -387.5t-259.5 -266.5t-386.5 -96q-157 0 -299 60.5t-245 163.5t-163.5 245t-60.5 299t60.5 299t163.5 245t245 163.5t299 60.5q300 0 515 -201l-209 -201q-123 119 -306 119q-129 0 -238.5 -65t-173.5 -176.5t-64 -243.5 t64 -243.5t173.5 -176.5t238.5 -65q87 0 160 24t120 60t82 82t51.5 87t22.5 78h-436v264z" />
 
<glyph unicode="&#xf1a1;" horiz-adv-x="1792" d="M1095 369q16 -16 0 -31q-62 -62 -199 -62t-199 62q-16 15 0 31q6 6 15 6t15 -6q48 -49 169 -49q120 0 169 49q6 6 15 6t15 -6zM788 550q0 -37 -26 -63t-63 -26t-63.5 26t-26.5 63q0 38 26.5 64t63.5 26t63 -26.5t26 -63.5zM1183 550q0 -37 -26.5 -63t-63.5 -26t-63 26 t-26 63t26 63.5t63 26.5t63.5 -26t26.5 -64zM1434 670q0 49 -35 84t-85 35t-86 -36q-130 90 -311 96l63 283l200 -45q0 -37 26 -63t63 -26t63.5 26.5t26.5 63.5t-26.5 63.5t-63.5 26.5q-54 0 -80 -50l-221 49q-19 5 -25 -16l-69 -312q-180 -7 -309 -97q-35 37 -87 37 q-50 0 -85 -35t-35 -84q0 -35 18.5 -64t49.5 -44q-6 -27 -6 -56q0 -142 140 -243t337 -101q198 0 338 101t140 243q0 32 -7 57q30 15 48 43.5t18 63.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191 t348 71t348 -71t286 -191t191 -286t71 -348z" />
...
 
@@ -456,3 +456,3 @@
 
<glyph unicode="&#xf1cd;" horiz-adv-x="1792" d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194 q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5 t271.5 -112.5zM1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" />
 
<glyph unicode="&#xf1ce;" horiz-adv-x="1792" d="M1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348q0 222 101 414.5t276.5 317t390.5 155.5v-260q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 q0 230 -145.5 406t-366.5 221v260q215 -31 390.5 -155.5t276.5 -317t101 -414.5z" />
 
<glyph unicode="&#xf1ce;" horiz-adv-x="1792" d="M1760 640q0 -176 -68.5 -336t-184 -275.5t-275.5 -184t-336 -68.5t-336 68.5t-275.5 184t-184 275.5t-68.5 336q0 213 97 398.5t265 305.5t374 151v-228q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5 t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v228q206 -31 374 -151t265 -305.5t97 -398.5z" />
 
<glyph unicode="&#xf1d0;" horiz-adv-x="1792" d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" />
...
 
@@ -557,3 +557,3 @@
 
<glyph unicode="&#xf239;" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM288 224q66 0 113 47t47 113t-47 113t-113 47 t-113 -47t-47 -113t47 -113t113 -47zM704 768v512h-544v-512h544zM1248 224q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM1408 768v512h-576v-512h576z" />
 
<glyph unicode="&#xf23a;" horiz-adv-x="1792" d="M1792 204v-209h-642v209h134v926h-6l-314 -1135h-243l-310 1135h-8v-926h135v-209h-538v209h69q21 0 43 19.5t22 37.5v881q0 18 -22 40t-43 22h-69v209h672l221 -821h6l223 821h670v-209h-71q-19 0 -41 -22t-22 -40v-881q0 -18 21.5 -37.5t41.5 -19.5h71z" />
 
<glyph unicode="&#xf23a;" horiz-adv-x="1792" d="M597 1115v-1173q0 -25 -12.5 -42.5t-36.5 -17.5q-17 0 -33 8l-465 233q-21 10 -35.5 33.5t-14.5 46.5v1140q0 20 10 34t29 14q14 0 44 -15l511 -256q3 -3 3 -5zM661 1014l534 -866l-534 266v600zM1792 996v-1054q0 -25 -14 -40.5t-38 -15.5t-47 13l-441 220zM1789 1116 q0 -3 -256.5 -419.5t-300.5 -487.5l-390 634l324 527q17 28 52 28q14 0 26 -6l541 -270q4 -2 4 -6z" />
 
<glyph unicode="&#xf23b;" d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1408v-1536h-1536v1536h1536z" />
...
 
@@ -602,7 +602,7 @@
 
<glyph unicode="&#xf269;" horiz-adv-x="1792" d="M903 -256q-283 0 -504.5 150.5t-329.5 398.5q-58 131 -67 301t26 332.5t111 312t179 242.5l-11 -281q11 14 68 15.5t70 -15.5q42 81 160.5 138t234.5 59q-54 -45 -119.5 -148.5t-58.5 -163.5q25 -8 62.5 -13.5t63 -7.5t68 -4t50.5 -3q15 -5 9.5 -45.5t-30.5 -75.5 q-5 -7 -16.5 -18.5t-56.5 -35.5t-101 -34l15 -189l-139 67q-18 -43 -7.5 -81.5t36 -66.5t65.5 -41.5t81 -6.5q51 9 98 34.5t83.5 45t73.5 17.5q61 -4 89.5 -33t19.5 -65q-1 -2 -2.5 -5.5t-8.5 -12.5t-18 -15.5t-31.5 -10.5t-46.5 -1q-60 -95 -144.5 -135.5t-209.5 -29.5 q74 -61 162.5 -82.5t168.5 -6t154.5 52t128 87.5t80.5 104q43 91 39 192.5t-37.5 188.5t-78.5 125q87 -38 137 -79.5t77 -112.5q15 170 -57.5 343t-209.5 284q265 -77 412 -279.5t151 -517.5q2 -127 -40.5 -255t-123.5 -238t-189 -196t-247.5 -135.5t-288.5 -49.5z" />
 
<glyph unicode="&#xf26a;" d="M768 -92q77 0 139.5 63t100.5 166t59 234.5t21 268.5t-21 268.5t-59 234.5t-100.5 166t-139.5 63t-139.5 -63t-100.5 -166t-59 -234.5t-21 -268.5t21 -268.5t59 -234.5t100.5 -166t139.5 -63zM768 -256q-184 0 -333 77t-240 203t-141 287t-50 329t50 329t141 287t240 203 t333 77q148 0 274 -50t214.5 -136t151.5 -201t92.5 -244t29.5 -265t-29.5 -265t-92.5 -244t-151.5 -201t-214.5 -136t-274 -50z" />
 
<glyph unicode="&#xf26b;" horiz-adv-x="1792" d="M716 -69q-143 35 -261.5 114t-197.5 191q-139 -300 -17 -398q26 -21 85 -24.5t127.5 9.5t141 41.5t122.5 66.5zM693 762h452q0 108 -61.5 169t-168.5 61q-103 0 -162.5 -62.5t-59.5 -167.5zM1724 1137h-34q26 102 22.5 170t-25 110t-63.5 57t-93.5 11t-115 -26.5 t-128.5 -56.5t-134 -79q129 -37 238.5 -113.5t185 -179t110 -231.5t15.5 -262h-1005q0 -60 10 -106t34 -85t69.5 -60t112.5 -21q87 0 142.5 44t72.5 122h540q-71 -230 -281.5 -377t-477.5 -147q-83 0 -159 15q-35 -40 -151 -94t-248 -78t-219 35q-78 60 -100 159t7 214 t88 242t143.5 248t173.5 226.5t177.5 183.5t156.5 112v24q-120 -37 -258.5 -137.5t-240.5 -207t-159 -195.5q4 106 34 201t80 169t118 135.5t147.5 100.5t168 65.5t180.5 29.5t185 -8q310 186 503 189h7q57 0 103 -18q80 -30 98 -132.5t-30 -248.5z" />
 
<glyph unicode="&#xf26a;" horiz-adv-x="1792" d="M1493 1308q-165 110 -359 110q-155 0 -293 -73t-240 -200q-75 -93 -119.5 -218t-48.5 -266v-42q4 -141 48.5 -266t119.5 -218q102 -127 240 -200t293 -73q194 0 359 110q-121 -108 -274.5 -168t-322.5 -60q-29 0 -43 1q-175 8 -333 82t-272 193t-181 281t-67 339 q0 182 71 348t191 286t286 191t348 71h3q168 -1 320.5 -60.5t273.5 -167.5zM1792 640q0 -192 -77 -362.5t-213 -296.5q-104 -63 -222 -63q-137 0 -255 84q154 56 253.5 233t99.5 405q0 227 -99 404t-253 234q119 83 254 83q119 0 226 -65q135 -125 210.5 -295t75.5 -361z " />
 
<glyph unicode="&#xf26b;" horiz-adv-x="1792" d="M1792 599q0 -56 -7 -104h-1151q0 -146 109.5 -244.5t257.5 -98.5q99 0 185.5 46.5t136.5 130.5h423q-56 -159 -170.5 -281t-267.5 -188.5t-321 -66.5q-187 0 -356 83q-228 -116 -394 -116q-237 0 -237 263q0 115 45 275q17 60 109 229q199 360 475 606 q-184 -79 -427 -354q63 274 283.5 449.5t501.5 175.5q30 0 45 -1q255 117 433 117q64 0 116 -13t94.5 -40.5t66.5 -76.5t24 -115q0 -116 -75 -286q101 -182 101 -390zM1722 1239q0 83 -53 132t-137 49q-108 0 -254 -70q121 -47 222.5 -131.5t170.5 -195.5q51 135 51 216z M128 2q0 -86 48.5 -132.5t134.5 -46.5q115 0 266 83q-122 72 -213.5 183t-137.5 245q-98 -205 -98 -332zM632 715h728q-5 142 -113 237t-251 95q-144 0 -251.5 -95t-112.5 -237z" />
 
<glyph unicode="&#xf26c;" horiz-adv-x="2048" d="M1792 288v960q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1248v-960q0 -66 -47 -113t-113 -47h-736v-128h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23 v64q0 14 9 23t23 9h352v128h-736q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
 
<glyph unicode="&#xf26d;" horiz-adv-x="1792" d="M138 1408h197q-70 -64 -126 -149q-36 -56 -59 -115t-30 -125.5t-8.5 -120t10.5 -132t21 -126t28 -136.5q4 -19 6 -28q51 -238 81 -329q57 -171 152 -275h-272q-48 0 -82 34t-34 82v1304q0 48 34 82t82 34zM1346 1408h308q48 0 82 -34t34 -82v-1304q0 -48 -34 -82t-82 -34 h-178q212 210 196 565l-469 -101q-2 -45 -12 -82t-31 -72t-59.5 -59.5t-93.5 -36.5q-123 -26 -199 40q-32 27 -53 61t-51.5 129t-64.5 258q-35 163 -45.5 263t-5.5 139t23 77q20 41 62.5 73t102.5 45q45 12 83.5 6.5t67 -17t54 -35t43 -48t34.5 -56.5l468 100 q-68 175 -180 287z" />
 
<glyph unicode="&#xf26e;" horiz-adv-x="2304" d="M1391 390v0l-1 1q-15 18 -34.5 37.5t-62.5 57.5t-93.5 62t-95.5 24q-48 0 -83 -21.5t-51 -54t-23 -59t-7 -47.5v0v0q0 -21 7 -48t23 -59t51 -53.5t83 -21.5q45 0 95.5 24t94 62.5t62 57t34.5 37.5zM2103 390q0 21 -7 47.5t-23 59t-51 54t-83 21.5q-45 0 -95.5 -24 t-94 -62.5t-62 -57t-34.5 -37.5l-1 -1v0v0l1 -1q15 -18 34.5 -37.5t62.5 -57.5t93.5 -62t95.5 -24q48 0 83 21.5t51 53.5t23 59t7 48zM2304 393q0 -69 -24 -137.5t-68 -126t-116 -93.5t-159 -36q-68 0 -134 24t-113.5 58.5t-84.5 69.5t-59.5 59t-25.5 24t-22.5 -24 t-54.5 -58.5t-81.5 -69.5t-115 -59t-143.5 -24q-65 0 -123.5 22.5t-96.5 54t-66.5 66.5t-41 59.5t-12.5 32.5q0 -8 -8.5 -26.5t-25 -45.5t-47 -55t-69 -52.5t-96.5 -40t-125 -15.5q-71 0 -130 15.5t-98.5 39.5t-70.5 56.5t-48 63.5t-27.5 63.5t-14 54t-3.5 36.5h217 q0 -55 49 -107.5t126 -52.5q79 0 134.5 67t55.5 148q0 80 -52 136.5t-138 56.5q-5 0 -13 -0.5t-31 -5t-43 -12t-42 -24.5t-34 -40h-195l102 583h602v-174h-445q-27 -159 -41 -248q4 0 16.5 13t31.5 28.5t65 28.5t108 13t114 -20.5t82.5 -49.5t51.5 -58.5t31 -50t11 -20.5 t13 25t36.5 60.5t60.5 71.5t97 61t133 25t140.5 -25t115.5 -60.5t83.5 -71.5t56.5 -61t21 -25q2 0 22 25t56 60.5t83.5 71.5t115.5 61t140 25q92 0 164.5 -35t115.5 -93t65 -125t22 -137z" />
 
<glyph unicode="&#xf26e;" d="M1401 -11l-6 -6q-113 -114 -259 -175q-154 -64 -317 -64q-165 0 -317 64q-148 63 -259 175q-113 112 -175 258q-42 103 -54 189q-4 28 48 36q51 8 56 -20q1 -1 1 -4q18 -90 46 -159q50 -124 152 -226q98 -98 226 -152q132 -56 276 -56q143 0 276 56q128 55 225 152l6 6 q10 10 25 6q12 -3 33 -22q36 -37 17 -58zM929 604l-66 -66l63 -63q21 -21 -7 -49q-17 -17 -32 -17q-10 0 -19 10l-62 61l-66 -66q-5 -5 -15 -5q-15 0 -31 16l-2 2q-18 15 -18 29q0 7 8 17l66 65l-66 66q-16 16 14 45q18 18 31 18q6 0 13 -5l65 -66l65 65q18 17 48 -13 q27 -27 11 -44zM1400 547q0 -118 -46 -228q-45 -105 -126 -186q-80 -80 -187 -126t-228 -46t-228 46t-187 126q-82 82 -125 186q-15 32 -15 40h-1q-9 27 43 44q50 16 60 -12q37 -99 97 -167h1v339v2q3 136 102 232q105 103 253 103q147 0 251 -103t104 -249 q0 -147 -104.5 -251t-250.5 -104q-58 0 -112 16q-28 11 -13 61q16 51 44 43l14 -3q14 -3 32.5 -6t30.5 -3q104 0 176 71.5t72 174.5q0 101 -72 171q-71 71 -175 71q-107 0 -178 -80q-64 -72 -64 -160v-413q110 -67 242 -67q96 0 185 36.5t156 103.5t103.5 155t36.5 183 q0 198 -141 339q-140 140 -339 140q-200 0 -340 -140q-53 -53 -77 -87l-2 -2q-8 -11 -13 -15.5t-21.5 -9.5t-38.5 3q-21 5 -36.5 16.5t-15.5 26.5v680q0 15 10.5 26.5t27.5 11.5h877q30 0 30 -55t-30 -55h-811v-483h1q40 42 102 84t108 61q109 46 231 46q121 0 228 -46 t187 -126q81 -81 126 -186q46 -112 46 -229zM1369 1128q9 -8 9 -18t-5.5 -18t-16.5 -21q-26 -26 -39 -26q-9 0 -16 7q-106 91 -207 133q-128 56 -276 56q-133 0 -262 -49q-27 -10 -45 37q-9 25 -8 38q3 16 16 20q130 57 299 57q164 0 316 -64q137 -58 235 -152z" />
 
<glyph unicode="&#xf270;" horiz-adv-x="1792" d="M1551 60q15 6 26 3t11 -17.5t-15 -33.5q-13 -16 -44 -43.5t-95.5 -68t-141 -74t-188 -58t-229.5 -24.5q-119 0 -238 31t-209 76.5t-172.5 104t-132.5 105t-84 87.5q-8 9 -10 16.5t1 12t8 7t11.5 2t11.5 -4.5q192 -117 300 -166q389 -176 799 -90q190 40 391 135z M1758 175q11 -16 2.5 -69.5t-28.5 -102.5q-34 -83 -85 -124q-17 -14 -26 -9t0 24q21 45 44.5 121.5t6.5 98.5q-5 7 -15.5 11.5t-27 6t-29.5 2.5t-35 0t-31.5 -2t-31 -3t-22.5 -2q-6 -1 -13 -1.5t-11 -1t-8.5 -1t-7 -0.5h-5.5h-4.5t-3 0.5t-2 1.5l-1.5 3q-6 16 47 40t103 30 q46 7 108 1t76 -24zM1364 618q0 -31 13.5 -64t32 -58t37.5 -46t33 -32l13 -11l-227 -224q-40 37 -79 75.5t-58 58.5l-19 20q-11 11 -25 33q-38 -59 -97.5 -102.5t-127.5 -63.5t-140 -23t-137.5 21t-117.5 65.5t-83 113t-31 162.5q0 84 28 154t72 116.5t106.5 83t122.5 57 t130 34.5t119.5 18.5t99.5 6.5v127q0 65 -21 97q-34 53 -121 53q-6 0 -16.5 -1t-40.5 -12t-56 -29.5t-56 -59.5t-48 -96l-294 27q0 60 22 119t67 113t108 95t151.5 65.5t190.5 24.5q100 0 181 -25t129.5 -61.5t81 -83t45 -86t12.5 -73.5v-589zM692 597q0 -86 70 -133 q66 -44 139 -22q84 25 114 123q14 45 14 101v162q-59 -2 -111 -12t-106.5 -33.5t-87 -71t-32.5 -114.5z" />
...
 
@@ -623,16 +623,31 @@
 
<glyph unicode="&#xf280;" d="M0 1408h1536v-1536h-1536v1536zM908 1088l-12 -33l75 -83l-31 -114l25 -25l107 57l107 -57l25 25l-31 114l75 83l-12 33h-95l-53 96h-32l-53 -96h-95zM641 925q32 0 44.5 -16t11.5 -63l174 21q0 55 -17.5 92.5t-50.5 56t-69 25.5t-85 7q-133 0 -199 -57.5t-66 -182.5v-72 h-96v-128h76q20 0 20 -8v-382q0 -14 -5 -20t-18 -7l-73 -7v-88h448v86l-149 14q-6 1 -8.5 1.5t-3.5 2.5t-0.5 4t1 7t0.5 10v387h191l38 128h-231q-6 0 -2 6t4 9v80q0 27 1.5 40.5t7.5 28t19.5 20t36.5 5.5zM1248 96v86l-54 9q-7 1 -9.5 2.5t-2.5 3t1 7.5t1 12v520h-275 l-23 -101l83 -22q23 -7 23 -27v-370q0 -14 -6 -18.5t-20 -6.5l-70 -9v-86h352z" />
 
<glyph unicode="&#xf281;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf282;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf283;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf284;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf285;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf286;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf287;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf288;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf289;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf28a;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf28b;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf28c;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf28d;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf28e;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf281;" horiz-adv-x="1792" d="M1792 690q0 -58 -29.5 -105.5t-79.5 -72.5q12 -46 12 -96q0 -155 -106.5 -287t-290.5 -208.5t-400 -76.5t-399.5 76.5t-290 208.5t-106.5 287q0 47 11 94q-51 25 -82 73.5t-31 106.5q0 82 58 140.5t141 58.5q85 0 145 -63q218 152 515 162l116 521q3 13 15 21t26 5 l369 -81q18 37 54 59.5t79 22.5q62 0 106 -43.5t44 -105.5t-44 -106t-106 -44t-105.5 43.5t-43.5 105.5l-334 74l-104 -472q300 -9 519 -160q58 61 143 61q83 0 141 -58.5t58 -140.5zM418 491q0 -62 43.5 -106t105.5 -44t106 44t44 106t-44 105.5t-106 43.5q-61 0 -105 -44 t-44 -105zM1228 136q11 11 11 26t-11 26q-10 10 -25 10t-26 -10q-41 -42 -121 -62t-160 -20t-160 20t-121 62q-11 10 -26 10t-25 -10q-11 -10 -11 -25.5t11 -26.5q43 -43 118.5 -68t122.5 -29.5t91 -4.5t91 4.5t122.5 29.5t118.5 68zM1225 341q62 0 105.5 44t43.5 106 q0 61 -44 105t-105 44q-62 0 -106 -43.5t-44 -105.5t44 -106t106 -44z" />
 
<glyph unicode="&#xf282;" horiz-adv-x="1792" d="M69 741h1q16 126 58.5 241.5t115 217t167.5 176t223.5 117.5t276.5 43q231 0 414 -105.5t294 -303.5q104 -187 104 -442v-188h-1125q1 -111 53.5 -192.5t136.5 -122.5t189.5 -57t213 -3t208 46.5t173.5 84.5v-377q-92 -55 -229.5 -92t-312.5 -38t-316 53 q-189 73 -311.5 249t-124.5 372q-3 242 111 412t325 268q-48 -60 -78 -125.5t-46 -159.5h635q8 77 -8 140t-47 101.5t-70.5 66.5t-80.5 41t-75 20.5t-56 8.5l-22 1q-135 -5 -259.5 -44.5t-223.5 -104.5t-176 -140.5t-138 -163.5z" />
 
<glyph unicode="&#xf283;" horiz-adv-x="2304" d="M0 32v608h2304v-608q0 -66 -47 -113t-113 -47h-1984q-66 0 -113 47t-47 113zM640 256v-128h384v128h-384zM256 256v-128h256v128h-256zM2144 1408q66 0 113 -47t47 -113v-224h-2304v224q0 66 47 113t113 47h1984z" />
 
<glyph unicode="&#xf284;" horiz-adv-x="1792" d="M1549 857q55 0 85.5 -28.5t30.5 -83.5t-34 -82t-91 -27h-136v-177h-25v398h170zM1710 267l-4 -11l-5 -10q-113 -230 -330.5 -366t-474.5 -136q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71q244 0 454.5 -124t329.5 -338l2 -4l8 -16 q-30 -15 -136.5 -68.5t-163.5 -84.5q-6 -3 -479 -268q384 -183 799 -366zM896 -234q250 0 462.5 132.5t322.5 357.5l-287 129q-72 -140 -206 -222t-292 -82q-151 0 -280 75t-204 204t-75 280t75 280t204 204t280 75t280 -73.5t204 -204.5l280 143q-116 208 -321 329 t-443 121q-119 0 -232.5 -31.5t-209 -87.5t-176.5 -137t-137 -176.5t-87.5 -209t-31.5 -232.5t31.5 -232.5t87.5 -209t137 -176.5t176.5 -137t209 -87.5t232.5 -31.5z" />
 
<glyph unicode="&#xf285;" horiz-adv-x="1792" d="M1427 827l-614 386l92 151h855zM405 562l-184 116v858l1183 -743zM1424 697l147 -95v-858l-532 335zM1387 718l-500 -802h-855l356 571z" />
 
<glyph unicode="&#xf286;" horiz-adv-x="1792" d="M640 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1152 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1664 496v-752h-640v320q0 80 -56 136t-136 56t-136 -56t-56 -136v-320h-640v752q0 16 16 16h96 q16 0 16 -16v-112h128v624q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h16v393q-32 19 -32 55q0 26 19 45t45 19t45 -19t19 -45q0 -36 -32 -55v-9h272q16 0 16 -16v-224q0 -16 -16 -16h-272v-128h16q16 0 16 -16v-112h128 v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-624h128v112q0 16 16 16h96q16 0 16 -16z" />
 
<glyph unicode="&#xf287;" horiz-adv-x="2304" d="M2288 731q16 -8 16 -27t-16 -27l-320 -192q-8 -5 -16 -5q-9 0 -16 4q-16 10 -16 28v128h-858q37 -58 83 -165q16 -37 24.5 -55t24 -49t27 -47t27 -34t31.5 -26t33 -8h96v96q0 14 9 23t23 9h320q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v96h-96 q-32 0 -61 10t-51 23.5t-45 40.5t-37 46t-33.5 57t-28.5 57.5t-28 60.5q-23 53 -37 81.5t-36 65t-44.5 53.5t-46.5 17h-360q-22 -84 -91 -138t-157 -54q-106 0 -181 75t-75 181t75 181t181 75q88 0 157 -54t91 -138h104q24 0 46.5 17t44.5 53.5t36 65t37 81.5q19 41 28 60.5 t28.5 57.5t33.5 57t37 46t45 40.5t51 23.5t61 10h107q21 57 70 92.5t111 35.5q80 0 136 -56t56 -136t-56 -136t-136 -56q-62 0 -111 35.5t-70 92.5h-107q-17 0 -33 -8t-31.5 -26t-27 -34t-27 -47t-24 -49t-24.5 -55q-46 -107 -83 -165h1114v128q0 18 16 28t32 -1z" />
 
<glyph unicode="&#xf288;" horiz-adv-x="1792" d="M1150 774q0 -56 -39.5 -95t-95.5 -39h-253v269h253q56 0 95.5 -39.5t39.5 -95.5zM1329 774q0 130 -91.5 222t-222.5 92h-433v-896h180v269h253q130 0 222 91.5t92 221.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348 t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
 
<glyph unicode="&#xf289;" horiz-adv-x="2304" d="M1645 438q0 59 -34 106.5t-87 68.5q-7 -45 -23 -92q-7 -24 -27.5 -38t-44.5 -14q-12 0 -24 3q-31 10 -45 38.5t-4 58.5q23 71 23 143q0 123 -61 227.5t-166 165.5t-228 61q-134 0 -247 -73t-167 -194q108 -28 188 -106q22 -23 22 -55t-22 -54t-54 -22t-55 22 q-75 75 -180 75q-106 0 -181 -74.5t-75 -180.5t75 -180.5t181 -74.5h1046q79 0 134.5 55.5t55.5 133.5zM1798 438q0 -142 -100.5 -242t-242.5 -100h-1046q-169 0 -289 119.5t-120 288.5q0 153 100 267t249 136q62 184 221 298t354 114q235 0 408.5 -158.5t196.5 -389.5 q116 -25 192.5 -118.5t76.5 -214.5zM2048 438q0 -175 -97 -319q-23 -33 -64 -33q-24 0 -43 13q-26 17 -32 48.5t12 57.5q71 104 71 233t-71 233q-18 26 -12 57t32 49t57.5 11.5t49.5 -32.5q97 -142 97 -318zM2304 438q0 -244 -134 -443q-23 -34 -64 -34q-23 0 -42 13 q-26 18 -32.5 49t11.5 57q108 164 108 358q0 195 -108 357q-18 26 -11.5 57.5t32.5 48.5q26 18 57 12t49 -33q134 -198 134 -442z" />
 
<glyph unicode="&#xf28a;" d="M1500 -13q0 -89 -63 -152.5t-153 -63.5t-153.5 63.5t-63.5 152.5q0 90 63.5 153.5t153.5 63.5t153 -63.5t63 -153.5zM1267 268q-115 -15 -192.5 -102.5t-77.5 -205.5q0 -74 33 -138q-146 -78 -379 -78q-109 0 -201 21t-153.5 54.5t-110.5 76.5t-76 85t-44.5 83 t-23.5 66.5t-6 39.5q0 19 4.5 42.5t18.5 56t36.5 58t64 43.5t94.5 18t94 -17.5t63 -41t35.5 -53t17.5 -49t4 -33.5q0 -34 -23 -81q28 -27 82 -42t93 -17l40 -1q115 0 190 51t75 133q0 26 -9 48.5t-31.5 44.5t-49.5 41t-74 44t-93.5 47.5t-119.5 56.5q-28 13 -43 20 q-116 55 -187 100t-122.5 102t-72 125.5t-20.5 162.5q0 78 20.5 150t66 137.5t112.5 114t166.5 77t221.5 28.5q120 0 220 -26t164.5 -67t109.5 -94t64 -105.5t19 -103.5q0 -46 -15 -82.5t-36.5 -58t-48.5 -36t-49 -19.5t-39 -5h-8h-32t-39 5t-44 14t-41 28t-37 46t-24 70.5 t-10 97.5q-15 16 -59 25.5t-81 10.5l-37 1q-68 0 -117.5 -31t-70.5 -70t-21 -76q0 -24 5 -43t24 -46t53 -51t97 -53.5t150 -58.5q76 -25 138.5 -53.5t109 -55.5t83 -59t60.5 -59.5t41 -62.5t26.5 -62t14.5 -63.5t6 -62t1 -62.5z" />
 
<glyph unicode="&#xf28b;" d="M704 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1152 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103 t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
 
<glyph unicode="&#xf28c;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 t73 -273t198 -198t273 -73zM864 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192z" />
 
<glyph unicode="&#xf28d;" d="M1088 352v576q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
 
<glyph unicode="&#xf28e;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 t73 -273t198 -198t273 -73zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h576q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-576z" />
 
<glyph unicode="&#xf290;" horiz-adv-x="1792" d="M1757 128l35 -313q3 -28 -16 -50q-19 -21 -48 -21h-1664q-29 0 -48 21q-19 22 -16 50l35 313h1722zM1664 967l86 -775h-1708l86 775q3 24 21 40.5t43 16.5h256v-128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5v128h384v-128q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5v128h256q25 0 43 -16.5t21 -40.5zM1280 1152v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
 
<glyph unicode="&#xf291;" horiz-adv-x="2048" d="M1920 768q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-15l-115 -662q-8 -46 -44 -76t-82 -30h-1280q-46 0 -82 30t-44 76l-115 662h-15q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5h1792zM485 -32q26 2 43.5 22.5t15.5 46.5l-32 416q-2 26 -22.5 43.5 t-46.5 15.5t-43.5 -22.5t-15.5 -46.5l32 -416q2 -25 20.5 -42t43.5 -17h5zM896 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1280 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1632 27l32 416 q2 26 -15.5 46.5t-43.5 22.5t-46.5 -15.5t-22.5 -43.5l-32 -416q-2 -26 15.5 -46.5t43.5 -22.5h5q25 0 43.5 17t20.5 42zM476 1244l-93 -412h-132l101 441q19 88 89 143.5t160 55.5h167q0 26 19 45t45 19h384q26 0 45 -19t19 -45h167q90 0 160 -55.5t89 -143.5l101 -441 h-132l-93 412q-11 44 -45.5 72t-79.5 28h-167q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45h-167q-45 0 -79.5 -28t-45.5 -72z" />
 
<glyph unicode="&#xf292;" horiz-adv-x="1792" d="M991 512l64 256h-254l-64 -256h254zM1759 1016l-56 -224q-7 -24 -31 -24h-327l-64 -256h311q15 0 25 -12q10 -14 6 -28l-56 -224q-5 -24 -31 -24h-327l-81 -328q-7 -24 -31 -24h-224q-16 0 -26 12q-9 12 -6 28l78 312h-254l-81 -328q-7 -24 -31 -24h-225q-15 0 -25 12 q-9 12 -6 28l78 312h-311q-15 0 -25 12q-9 12 -6 28l56 224q7 24 31 24h327l64 256h-311q-15 0 -25 12q-10 14 -6 28l56 224q5 24 31 24h327l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h254l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h311 q15 0 25 -12q9 -12 6 -28z" />
 
<glyph unicode="&#xf293;" d="M841 483l148 -148l-149 -149zM840 1094l149 -149l-148 -148zM710 -130l464 464l-306 306l306 306l-464 464v-611l-255 255l-93 -93l320 -321l-320 -321l93 -93l255 255v-611zM1429 640q0 -209 -32 -365.5t-87.5 -257t-140.5 -162.5t-181.5 -86.5t-219.5 -24.5 t-219.5 24.5t-181.5 86.5t-140.5 162.5t-87.5 257t-32 365.5t32 365.5t87.5 257t140.5 162.5t181.5 86.5t219.5 24.5t219.5 -24.5t181.5 -86.5t140.5 -162.5t87.5 -257t32 -365.5z" />
 
<glyph unicode="&#xf294;" horiz-adv-x="1024" d="M596 113l173 172l-173 172v-344zM596 823l173 172l-173 172v-344zM628 640l356 -356l-539 -540v711l-297 -296l-108 108l372 373l-372 373l108 108l297 -296v711l539 -540z" />
 
<glyph unicode="&#xf295;" d="M1280 256q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM512 1024q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5 t112.5 -271.5zM1440 1344q0 -20 -13 -38l-1056 -1408q-19 -26 -51 -26h-160q-26 0 -45 19t-19 45q0 20 13 38l1056 1408q19 26 51 26h160q26 0 45 -19t19 -45zM768 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 t271.5 -112.5t112.5 -271.5z" />
 
<glyph unicode="&#xf296;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf297;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf298;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf299;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf29a;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf29b;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf29c;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf29d;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf29e;" horiz-adv-x="1792" />
 
<glyph unicode="&#xf500;" horiz-adv-x="1792" />
static/dist/fonts/fontawesome-webfont.ttf
Show inline comments
 
binary diff not shown
static/dist/fonts/fontawesome-webfont.woff
Show inline comments
 
binary diff not shown
static/dist/fonts/fontawesome-webfont.woff2
Show inline comments
 
binary diff not shown
static/dist/js/site-92ae8d0d6c.js
Show inline comments
 
new file 100644
 
!function t(e,n,i){function o(s,a){if(!n[s]){if(!e[s]){var l="function"==typeof require&&require;if(!a&&l)return l(s,!0);if(r)return r(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[s]={exports:{}};e[s][0].call(c.exports,function(t){var n=e[s][1][t];return o(n?n:t)},c,c.exports,t,e,n,i)}return n[s].exports}for(var r="function"==typeof require&&require,s=0;s<i.length;s++)o(i[s]);return o}({1:[function(t,e,n){t("../../js/transition.js"),t("../../js/alert.js"),t("../../js/button.js"),t("../../js/carousel.js"),t("../../js/collapse.js"),t("../../js/dropdown.js"),t("../../js/modal.js"),t("../../js/tooltip.js"),t("../../js/popover.js"),t("../../js/scrollspy.js"),t("../../js/tab.js"),t("../../js/affix.js")},{"../../js/affix.js":2,"../../js/alert.js":3,"../../js/button.js":4,"../../js/carousel.js":5,"../../js/collapse.js":6,"../../js/dropdown.js":7,"../../js/modal.js":8,"../../js/popover.js":9,"../../js/scrollspy.js":10,"../../js/tab.js":11,"../../js/tooltip.js":12,"../../js/transition.js":13}],2:[function(t,e,n){+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),o=i.data("bs.affix"),r="object"==typeof e&&e;o||i.data("bs.affix",o=new n(this,r)),"string"==typeof e&&o[e]()})}var n=function(e,i){this.options=t.extend({},n.DEFAULTS,i),this.$target=t(this.options.target).on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(e),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};n.VERSION="3.3.6",n.RESET="affix affix-top affix-bottom",n.DEFAULTS={offset:0,target:window},n.prototype.getState=function(t,e,n,i){var o=this.$target.scrollTop(),r=this.$element.offset(),s=this.$target.height();if(null!=n&&"top"==this.affixed)return n>o?"top":!1;if("bottom"==this.affixed)return null!=n?o+this.unpin<=r.top?!1:"bottom":t-i>=o+s?!1:"bottom";var a=null==this.affixed,l=a?o:r.top,u=a?s:e;return null!=n&&n>=o?"top":null!=i&&l+u>=t-i?"bottom":!1},n.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(n.RESET).addClass("affix");var t=this.$target.scrollTop(),e=this.$element.offset();return this.pinnedOffset=e.top-t},n.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},n.prototype.checkPosition=function(){if(this.$element.is(":visible")){var e=this.$element.height(),i=this.options.offset,o=i.top,r=i.bottom,s=Math.max(t(document).height(),t(document.body).height());"object"!=typeof i&&(r=o=i),"function"==typeof o&&(o=i.top(this.$element)),"function"==typeof r&&(r=i.bottom(this.$element));var a=this.getState(s,e,o,r);if(this.affixed!=a){null!=this.unpin&&this.$element.css("top","");var l="affix"+(a?"-"+a:""),u=t.Event(l+".bs.affix");if(this.$element.trigger(u),u.isDefaultPrevented())return;this.affixed=a,this.unpin="bottom"==a?this.getPinnedOffset():null,this.$element.removeClass(n.RESET).addClass(l).trigger(l.replace("affix","affixed")+".bs.affix")}"bottom"==a&&this.$element.offset({top:s-e-r})}};var i=t.fn.affix;t.fn.affix=e,t.fn.affix.Constructor=n,t.fn.affix.noConflict=function(){return t.fn.affix=i,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var n=t(this),i=n.data();i.offset=i.offset||{},null!=i.offsetBottom&&(i.offset.bottom=i.offsetBottom),null!=i.offsetTop&&(i.offset.top=i.offsetTop),e.call(n,i)})})}(jQuery)},{}],3:[function(t,e,n){+function(t){"use strict";function e(e){return this.each(function(){var n=t(this),o=n.data("bs.alert");o||n.data("bs.alert",o=new i(this)),"string"==typeof e&&o[e].call(n)})}var n='[data-dismiss="alert"]',i=function(e){t(e).on("click",n,this.close)};i.VERSION="3.3.6",i.TRANSITION_DURATION=150,i.prototype.close=function(e){function n(){s.detach().trigger("closed.bs.alert").remove()}var o=t(this),r=o.attr("data-target");r||(r=o.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));var s=t(r);e&&e.preventDefault(),s.length||(s=o.closest(".alert")),s.trigger(e=t.Event("close.bs.alert")),e.isDefaultPrevented()||(s.removeClass("in"),t.support.transition&&s.hasClass("fade")?s.one("bsTransitionEnd",n).emulateTransitionEnd(i.TRANSITION_DURATION):n())};var o=t.fn.alert;t.fn.alert=e,t.fn.alert.Constructor=i,t.fn.alert.noConflict=function(){return t.fn.alert=o,this},t(document).on("click.bs.alert.data-api",n,i.prototype.close)}(jQuery)},{}],4:[function(t,e,n){+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),o=i.data("bs.button"),r="object"==typeof e&&e;o||i.data("bs.button",o=new n(this,r)),"toggle"==e?o.toggle():e&&o.setState(e)})}var n=function(e,i){this.$element=t(e),this.options=t.extend({},n.DEFAULTS,i),this.isLoading=!1};n.VERSION="3.3.6",n.DEFAULTS={loadingText:"loading..."},n.prototype.setState=function(e){var n="disabled",i=this.$element,o=i.is("input")?"val":"html",r=i.data();e+="Text",null==r.resetText&&i.data("resetText",i[o]()),setTimeout(t.proxy(function(){i[o](null==r[e]?this.options[e]:r[e]),"loadingText"==e?(this.isLoading=!0,i.addClass(n).attr(n,n)):this.isLoading&&(this.isLoading=!1,i.removeClass(n).removeAttr(n))},this),0)},n.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var n=this.$element.find("input");"radio"==n.prop("type")?(n.prop("checked")&&(t=!1),e.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==n.prop("type")&&(n.prop("checked")!==this.$element.hasClass("active")&&(t=!1),this.$element.toggleClass("active")),n.prop("checked",this.$element.hasClass("active")),t&&n.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var i=t.fn.button;t.fn.button=e,t.fn.button.Constructor=n,t.fn.button.noConflict=function(){return t.fn.button=i,this},t(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(n){var i=t(n.target);i.hasClass("btn")||(i=i.closest(".btn")),e.call(i,"toggle"),t(n.target).is('input[type="radio"]')||t(n.target).is('input[type="checkbox"]')||n.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(e){t(e.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(e.type))})}(jQuery)},{}],5:[function(t,e,n){+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),o=i.data("bs.carousel"),r=t.extend({},n.DEFAULTS,i.data(),"object"==typeof e&&e),s="string"==typeof e?e:r.slide;o||i.data("bs.carousel",o=new n(this,r)),"number"==typeof e?o.to(e):s?o[s]():r.interval&&o.pause().cycle()})}var n=function(e,n){this.$element=t(e),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",t.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",t.proxy(this.pause,this)).on("mouseleave.bs.carousel",t.proxy(this.cycle,this))};n.VERSION="3.3.6",n.TRANSITION_DURATION=600,n.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},n.prototype.keydown=function(t){if(!/input|textarea/i.test(t.target.tagName)){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()}},n.prototype.cycle=function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},n.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},n.prototype.getItemForDirection=function(t,e){var n=this.getItemIndex(e),i="prev"==t&&0===n||"next"==t&&n==this.$items.length-1;if(i&&!this.options.wrap)return e;var o="prev"==t?-1:1,r=(n+o)%this.$items.length;return this.$items.eq(r)},n.prototype.to=function(t){var e=this,n=this.getItemIndex(this.$active=this.$element.find(".item.active"));return t>this.$items.length-1||0>t?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){e.to(t)}):n==t?this.pause().cycle():this.slide(t>n?"next":"prev",this.$items.eq(t))},n.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},n.prototype.next=function(){return this.sliding?void 0:this.slide("next")},n.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},n.prototype.slide=function(e,i){var o=this.$element.find(".item.active"),r=i||this.getItemForDirection(e,o),s=this.interval,a="next"==e?"left":"right",l=this;if(r.hasClass("active"))return this.sliding=!1;var u=r[0],c=t.Event("slide.bs.carousel",{relatedTarget:u,direction:a});if(this.$element.trigger(c),!c.isDefaultPrevented()){if(this.sliding=!0,s&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var f=t(this.$indicators.children()[this.getItemIndex(r)]);f&&f.addClass("active")}var p=t.Event("slid.bs.carousel",{relatedTarget:u,direction:a});return t.support.transition&&this.$element.hasClass("slide")?(r.addClass(e),r[0].offsetWidth,o.addClass(a),r.addClass(a),o.one("bsTransitionEnd",function(){r.removeClass([e,a].join(" ")).addClass("active"),o.removeClass(["active",a].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger(p)},0)}).emulateTransitionEnd(n.TRANSITION_DURATION)):(o.removeClass("active"),r.addClass("active"),this.sliding=!1,this.$element.trigger(p)),s&&this.cycle(),this}};var i=t.fn.carousel;t.fn.carousel=e,t.fn.carousel.Constructor=n,t.fn.carousel.noConflict=function(){return t.fn.carousel=i,this};var o=function(n){var i,o=t(this),r=t(o.attr("data-target")||(i=o.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,""));if(r.hasClass("carousel")){var s=t.extend({},r.data(),o.data()),a=o.attr("data-slide-to");a&&(s.interval=!1),e.call(r,s),a&&r.data("bs.carousel").to(a),n.preventDefault()}};t(document).on("click.bs.carousel.data-api","[data-slide]",o).on("click.bs.carousel.data-api","[data-slide-to]",o),t(window).on("load",function(){t('[data-ride="carousel"]').each(function(){var n=t(this);e.call(n,n.data())})})}(jQuery)},{}],6:[function(t,e,n){+function(t){"use strict";function e(e){var n,i=e.attr("data-target")||(n=e.attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"");return t(i)}function n(e){return this.each(function(){var n=t(this),o=n.data("bs.collapse"),r=t.extend({},i.DEFAULTS,n.data(),"object"==typeof e&&e);!o&&r.toggle&&/show|hide/.test(e)&&(r.toggle=!1),o||n.data("bs.collapse",o=new i(this,r)),"string"==typeof e&&o[e]()})}var i=function(e,n){this.$element=t(e),this.options=t.extend({},i.DEFAULTS,n),this.$trigger=t('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};i.VERSION="3.3.6",i.TRANSITION_DURATION=350,i.DEFAULTS={toggle:!0},i.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},i.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var e,o=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(o&&o.length&&(e=o.data("bs.collapse"),e&&e.transitioning))){var r=t.Event("show.bs.collapse");if(this.$element.trigger(r),!r.isDefaultPrevented()){o&&o.length&&(n.call(o,"hide"),e||o.data("bs.collapse",null));var s=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[s](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var a=function(){this.$element.removeClass("collapsing").addClass("collapse in")[s](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return a.call(this);var l=t.camelCase(["scroll",s].join("-"));this.$element.one("bsTransitionEnd",t.proxy(a,this)).emulateTransitionEnd(i.TRANSITION_DURATION)[s](this.$element[0][l])}}}},i.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var n=this.dimension();this.$element[n](this.$element[n]())[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 o=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return t.support.transition?void this.$element[n](0).one("bsTransitionEnd",t.proxy(o,this)).emulateTransitionEnd(i.TRANSITION_DURATION):o.call(this)}}},i.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},i.prototype.getParent=function(){return t(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(t.proxy(function(n,i){var o=t(i);this.addAriaAndCollapsedClass(e(o),o)},this)).end()},i.prototype.addAriaAndCollapsedClass=function(t,e){var n=t.hasClass("in");t.attr("aria-expanded",n),e.toggleClass("collapsed",!n).attr("aria-expanded",n)};var o=t.fn.collapse;t.fn.collapse=n,t.fn.collapse.Constructor=i,t.fn.collapse.noConflict=function(){return t.fn.collapse=o,this},t(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(i){var o=t(this);o.attr("data-target")||i.preventDefault();var r=e(o),s=r.data("bs.collapse"),a=s?"toggle":o.data();n.call(r,a)})}(jQuery)},{}],7:[function(t,e,n){+function(t){"use strict";function e(e){var n=e.attr("data-target");n||(n=e.attr("href"),n=n&&/#[A-Za-z]/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var i=n&&t(n);return i&&i.length?i:e.parent()}function n(n){n&&3===n.which||(t(o).remove(),t(r).each(function(){var i=t(this),o=e(i),r={relatedTarget:this};o.hasClass("open")&&(n&&"click"==n.type&&/input|textarea/i.test(n.target.tagName)&&t.contains(o[0],n.target)||(o.trigger(n=t.Event("hide.bs.dropdown",r)),n.isDefaultPrevented()||(i.attr("aria-expanded","false"),o.removeClass("open").trigger(t.Event("hidden.bs.dropdown",r)))))}))}function i(e){return this.each(function(){var n=t(this),i=n.data("bs.dropdown");i||n.data("bs.dropdown",i=new s(this)),"string"==typeof e&&i[e].call(n)})}var o=".dropdown-backdrop",r='[data-toggle="dropdown"]',s=function(e){t(e).on("click.bs.dropdown",this.toggle)};s.VERSION="3.3.6",s.prototype.toggle=function(i){var o=t(this);if(!o.is(".disabled, :disabled")){var r=e(o),s=r.hasClass("open");if(n(),!s){"ontouchstart"in document.documentElement&&!r.closest(".navbar-nav").length&&t(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(t(this)).on("click",n);var a={relatedTarget:this};if(r.trigger(i=t.Event("show.bs.dropdown",a)),i.isDefaultPrevented())return;o.trigger("focus").attr("aria-expanded","true"),r.toggleClass("open").trigger(t.Event("shown.bs.dropdown",a))}return!1}},s.prototype.keydown=function(n){if(/(38|40|27|32)/.test(n.which)&&!/input|textarea/i.test(n.target.tagName)){var i=t(this);if(n.preventDefault(),n.stopPropagation(),!i.is(".disabled, :disabled")){var o=e(i),s=o.hasClass("open");if(!s&&27!=n.which||s&&27==n.which)return 27==n.which&&o.find(r).trigger("focus"),i.trigger("click");var a=" li:not(.disabled):visible a",l=o.find(".dropdown-menu"+a);if(l.length){var u=l.index(n.target);38==n.which&&u>0&&u--,40==n.which&&u<l.length-1&&u++,~u||(u=0),l.eq(u).trigger("focus")}}}};var a=t.fn.dropdown;t.fn.dropdown=i,t.fn.dropdown.Constructor=s,t.fn.dropdown.noConflict=function(){return t.fn.dropdown=a,this},t(document).on("click.bs.dropdown.data-api",n).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.bs.dropdown.data-api",r,s.prototype.toggle).on("keydown.bs.dropdown.data-api",r,s.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",s.prototype.keydown)}(jQuery)},{}],8:[function(t,e,n){+function(t){"use strict";function e(e,i){return this.each(function(){var o=t(this),r=o.data("bs.modal"),s=t.extend({},n.DEFAULTS,o.data(),"object"==typeof e&&e);r||o.data("bs.modal",r=new n(this,s)),"string"==typeof e?r[e](i):s.show&&r.show(i)})}var n=function(e,n){this.options=n,this.$body=t(document.body),this.$element=t(e),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,t.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};n.VERSION="3.3.6",n.TRANSITION_DURATION=300,n.BACKDROP_TRANSITION_DURATION=150,n.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},n.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},n.prototype.show=function(e){var i=this,o=t.Event("show.bs.modal",{relatedTarget:e});this.$element.trigger(o),this.isShown||o.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"]',t.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){i.$element.one("mouseup.dismiss.bs.modal",function(e){t(e.target).is(i.$element)&&(i.ignoreBackdropClick=!0)})}),this.backdrop(function(){var o=t.support.transition&&i.$element.hasClass("fade");i.$element.parent().length||i.$element.appendTo(i.$body),i.$element.show().scrollTop(0),i.adjustDialog(),o&&i.$element[0].offsetWidth,i.$element.addClass("in"),i.enforceFocus();var r=t.Event("shown.bs.modal",{relatedTarget:e});o?i.$dialog.one("bsTransitionEnd",function(){i.$element.trigger("focus").trigger(r)}).emulateTransitionEnd(n.TRANSITION_DURATION):i.$element.trigger("focus").trigger(r)}))},n.prototype.hide=function(e){e&&e.preventDefault(),e=t.Event("hide.bs.modal"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),t(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),t.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",t.proxy(this.hideModal,this)).emulateTransitionEnd(n.TRANSITION_DURATION):this.hideModal())},n.prototype.enforceFocus=function(){t(document).off("focusin.bs.modal").on("focusin.bs.modal",t.proxy(function(t){this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},n.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",t.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},n.prototype.resize=function(){this.isShown?t(window).on("resize.bs.modal",t.proxy(this.handleUpdate,this)):t(window).off("resize.bs.modal")},n.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.bs.modal")})},n.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},n.prototype.backdrop=function(e){var i=this,o=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var r=t.support.transition&&o;if(this.$backdrop=t(document.createElement("div")).addClass("modal-backdrop "+o).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",t.proxy(function(t){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),r&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!e)return;r?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(n.BACKDROP_TRANSITION_DURATION):e()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var s=function(){i.removeBackdrop(),e&&e()};t.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",s).emulateTransitionEnd(n.BACKDROP_TRANSITION_DURATION):s()}else e&&e()},n.prototype.handleUpdate=function(){this.adjustDialog()},n.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},n.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},n.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth<t,this.scrollbarWidth=this.measureScrollbar()},n.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",t+this.scrollbarWidth)},n.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},n.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var i=t.fn.modal;t.fn.modal=e,t.fn.modal.Constructor=n,t.fn.modal.noConflict=function(){return t.fn.modal=i,this},t(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(n){var i=t(this),o=i.attr("href"),r=t(i.attr("data-target")||o&&o.replace(/.*(?=#[^\s]+$)/,"")),s=r.data("bs.modal")?"toggle":t.extend({remote:!/#/.test(o)&&o},r.data(),i.data());i.is("a")&&n.preventDefault(),r.one("show.bs.modal",function(t){t.isDefaultPrevented()||r.one("hidden.bs.modal",function(){i.is(":visible")&&i.trigger("focus")})}),e.call(r,s,this)})}(jQuery)},{}],9:[function(t,e,n){+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),o=i.data("bs.popover"),r="object"==typeof e&&e;!o&&/destroy|hide/.test(e)||(o||i.data("bs.popover",o=new n(this,r)),"string"==typeof e&&o[e]())})}var n=function(t,e){this.init("popover",t,e)};if(!t.fn.tooltip)throw new Error("Popover requires tooltip.js");n.VERSION="3.3.6",n.DEFAULTS=t.extend({},t.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>'}),n.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),n.prototype.constructor=n,n.prototype.getDefaults=function(){return n.DEFAULTS},n.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),n=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](e),t.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof n?"html":"append":"text"](n),t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},n.prototype.hasContent=function(){return this.getTitle()||this.getContent()},n.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},n.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var i=t.fn.popover;t.fn.popover=e,t.fn.popover.Constructor=n,t.fn.popover.noConflict=function(){return t.fn.popover=i,this}}(jQuery)},{}],10:[function(t,e,n){+function(t){"use strict";function e(n,i){this.$body=t(document.body),this.$scrollElement=t(t(n).is(document.body)?window:n),this.options=t.extend({},e.DEFAULTS,i),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",t.proxy(this.process,this)),this.refresh(),this.process()}function n(n){return this.each(function(){var i=t(this),o=i.data("bs.scrollspy"),r="object"==typeof n&&n;o||i.data("bs.scrollspy",o=new e(this,r)),"string"==typeof n&&o[n]()})}e.VERSION="3.3.6",e.DEFAULTS={offset:10},e.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},e.prototype.refresh=function(){var e=this,n="offset",i=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),t.isWindow(this.$scrollElement[0])||(n="position",i=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var e=t(this),o=e.data("target")||e.attr("href"),r=/^#./.test(o)&&t(o);return r&&r.length&&r.is(":visible")&&[[r[n]().top+i,o]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){e.offsets.push(this[0]),e.targets.push(this[1])})},e.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,n=this.getScrollHeight(),i=this.options.offset+n-this.$scrollElement.height(),o=this.offsets,r=this.targets,s=this.activeTarget;if(this.scrollHeight!=n&&this.refresh(),e>=i)return s!=(t=r[r.length-1])&&this.activate(t);if(s&&e<o[0])return this.activeTarget=null,this.clear();for(t=o.length;t--;)s!=r[t]&&e>=o[t]&&(void 0===o[t+1]||e<o[t+1])&&this.activate(r[t])},e.prototype.activate=function(e){this.activeTarget=e,this.clear();var n=this.selector+'[data-target="'+e+'"],'+this.selector+'[href="'+e+'"]',i=t(n).parents("li").addClass("active");i.parent(".dropdown-menu").length&&(i=i.closest("li.dropdown").addClass("active")),i.trigger("activate.bs.scrollspy")},e.prototype.clear=function(){t(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var i=t.fn.scrollspy;t.fn.scrollspy=n,t.fn.scrollspy.Constructor=e,t.fn.scrollspy.noConflict=function(){return t.fn.scrollspy=i,this},t(window).on("load.bs.scrollspy.data-api",function(){t('[data-spy="scroll"]').each(function(){var e=t(this);n.call(e,e.data())})})}(jQuery)},{}],11:[function(t,e,n){+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),o=i.data("bs.tab");o||i.data("bs.tab",o=new n(this)),"string"==typeof e&&o[e]()})}var n=function(e){this.element=t(e)};n.VERSION="3.3.6",n.TRANSITION_DURATION=150,n.prototype.show=function(){var e=this.element,n=e.closest("ul:not(.dropdown-menu)"),i=e.data("target");if(i||(i=e.attr("href"),i=i&&i.replace(/.*(?=#[^\s]*$)/,"")),!e.parent("li").hasClass("active")){var o=n.find(".active:last a"),r=t.Event("hide.bs.tab",{relatedTarget:e[0]}),s=t.Event("show.bs.tab",{relatedTarget:o[0]});if(o.trigger(r),e.trigger(s),!s.isDefaultPrevented()&&!r.isDefaultPrevented()){var a=t(i);this.activate(e.closest("li"),n),this.activate(a,a.parent(),function(){o.trigger({type:"hidden.bs.tab",relatedTarget:e[0]}),e.trigger({type:"shown.bs.tab",relatedTarget:o[0]})})}}},n.prototype.activate=function(e,i,o){function r(){s.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),e.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),a?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu").length&&e.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),o&&o()}var s=i.find("> .active"),a=o&&t.support.transition&&(s.length&&s.hasClass("fade")||!!i.find("> .fade").length);s.length&&a?s.one("bsTransitionEnd",r).emulateTransitionEnd(n.TRANSITION_DURATION):r(),s.removeClass("in")};var i=t.fn.tab;t.fn.tab=e,t.fn.tab.Constructor=n,t.fn.tab.noConflict=function(){return t.fn.tab=i,this};var o=function(n){n.preventDefault(),e.call(t(this),"show")};t(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',o).on("click.bs.tab.data-api",'[data-toggle="pill"]',o)}(jQuery)},{}],12:[function(t,e,n){+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),o=i.data("bs.tooltip"),r="object"==typeof e&&e;!o&&/destroy|hide/.test(e)||(o||i.data("bs.tooltip",o=new n(this,r)),"string"==typeof e&&o[e]())})}var n=function(t,e){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",t,e)};n.VERSION="3.3.6",n.TRANSITION_DURATION=150,n.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}},n.prototype.init=function(e,n,i){if(this.enabled=!0,this.type=e,this.$element=t(n),this.options=this.getOptions(i),this.$viewport=this.options.viewport&&t(t.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var o=this.options.trigger.split(" "),r=o.length;r--;){var s=o[r];if("click"==s)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=s){var a="hover"==s?"mouseenter":"focusin",l="hover"==s?"mouseleave":"focusout";this.$element.on(a+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},n.prototype.getDefaults=function(){return n.DEFAULTS},n.prototype.getOptions=function(e){return e=t.extend({},this.getDefaults(),this.$element.data(),e),e.delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},n.prototype.getDelegateOptions=function(){var e={},n=this.getDefaults();return this._options&&t.each(this._options,function(t,i){n[t]!=i&&(e[t]=i)}),e},n.prototype.enter=function(e){var n=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return n||(n=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,n)),e instanceof t.Event&&(n.inState["focusin"==e.type?"focus":"hover"]=!0),n.tip().hasClass("in")||"in"==n.hoverState?void(n.hoverState="in"):(clearTimeout(n.timeout),n.hoverState="in",n.options.delay&&n.options.delay.show?void(n.timeout=setTimeout(function(){"in"==n.hoverState&&n.show()},n.options.delay.show)):n.show())},n.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},n.prototype.leave=function(e){var n=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return n||(n=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,n)),e instanceof t.Event&&(n.inState["focusout"==e.type?"focus":"hover"]=!1),n.isInStateTrue()?void 0:(clearTimeout(n.timeout),n.hoverState="out",n.options.delay&&n.options.delay.hide?void(n.timeout=setTimeout(function(){"out"==n.hoverState&&n.hide()},n.options.delay.hide)):n.hide())},n.prototype.show=function(){var e=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var i=t.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!i)return;var o=this,r=this.tip(),s=this.getUID(this.type);this.setContent(),r.attr("id",s),this.$element.attr("aria-describedby",s),this.options.animation&&r.addClass("fade");var a="function"==typeof this.options.placement?this.options.placement.call(this,r[0],this.$element[0]):this.options.placement,l=/\s?auto?\s?/i,u=l.test(a);u&&(a=a.replace(l,"")||"top"),
 
r.detach().css({top:0,left:0,display:"block"}).addClass(a).data("bs."+this.type,this),this.options.container?r.appendTo(this.options.container):r.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var c=this.getPosition(),f=r[0].offsetWidth,p=r[0].offsetHeight;if(u){var d=a,h=this.getPosition(this.$viewport);a="bottom"==a&&c.bottom+p>h.bottom?"top":"top"==a&&c.top-p<h.top?"bottom":"right"==a&&c.right+f>h.width?"left":"left"==a&&c.left-f<h.left?"right":a,r.removeClass(d).addClass(a)}var g=this.getCalculatedOffset(a,c,f,p);this.applyPlacement(g,a);var v=function(){var t=o.hoverState;o.$element.trigger("shown.bs."+o.type),o.hoverState=null,"out"==t&&o.leave(o)};t.support.transition&&this.$tip.hasClass("fade")?r.one("bsTransitionEnd",v).emulateTransitionEnd(n.TRANSITION_DURATION):v()}},n.prototype.applyPlacement=function(e,n){var i=this.tip(),o=i[0].offsetWidth,r=i[0].offsetHeight,s=parseInt(i.css("margin-top"),10),a=parseInt(i.css("margin-left"),10);isNaN(s)&&(s=0),isNaN(a)&&(a=0),e.top+=s,e.left+=a,t.offset.setOffset(i[0],t.extend({using:function(t){i.css({top:Math.round(t.top),left:Math.round(t.left)})}},e),0),i.addClass("in");var l=i[0].offsetWidth,u=i[0].offsetHeight;"top"==n&&u!=r&&(e.top=e.top+r-u);var c=this.getViewportAdjustedDelta(n,e,l,u);c.left?e.left+=c.left:e.top+=c.top;var f=/top|bottom/.test(n),p=f?2*c.left-o+l:2*c.top-r+u,d=f?"offsetWidth":"offsetHeight";i.offset(e),this.replaceArrow(p,i[0][d],f)},n.prototype.replaceArrow=function(t,e,n){this.arrow().css(n?"left":"top",50*(1-t/e)+"%").css(n?"top":"left","")},n.prototype.setContent=function(){var t=this.tip(),e=this.getTitle();t.find(".tooltip-inner")[this.options.html?"html":"text"](e),t.removeClass("fade in top bottom left right")},n.prototype.hide=function(e){function i(){"in"!=o.hoverState&&r.detach(),o.$element.removeAttr("aria-describedby").trigger("hidden.bs."+o.type),e&&e()}var o=this,r=t(this.$tip),s=t.Event("hide.bs."+this.type);return this.$element.trigger(s),s.isDefaultPrevented()?void 0:(r.removeClass("in"),t.support.transition&&r.hasClass("fade")?r.one("bsTransitionEnd",i).emulateTransitionEnd(n.TRANSITION_DURATION):i(),this.hoverState=null,this)},n.prototype.fixTitle=function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("data-original-title"))&&t.attr("data-original-title",t.attr("title")||"").attr("title","")},n.prototype.hasContent=function(){return this.getTitle()},n.prototype.getPosition=function(e){e=e||this.$element;var n=e[0],i="BODY"==n.tagName,o=n.getBoundingClientRect();null==o.width&&(o=t.extend({},o,{width:o.right-o.left,height:o.bottom-o.top}));var r=i?{top:0,left:0}:e.offset(),s={scroll:i?document.documentElement.scrollTop||document.body.scrollTop:e.scrollTop()},a=i?{width:t(window).width(),height:t(window).height()}:null;return t.extend({},o,s,a,r)},n.prototype.getCalculatedOffset=function(t,e,n,i){return"bottom"==t?{top:e.top+e.height,left:e.left+e.width/2-n/2}:"top"==t?{top:e.top-i,left:e.left+e.width/2-n/2}:"left"==t?{top:e.top+e.height/2-i/2,left:e.left-n}:{top:e.top+e.height/2-i/2,left:e.left+e.width}},n.prototype.getViewportAdjustedDelta=function(t,e,n,i){var o={top:0,left:0};if(!this.$viewport)return o;var r=this.options.viewport&&this.options.viewport.padding||0,s=this.getPosition(this.$viewport);if(/right|left/.test(t)){var a=e.top-r-s.scroll,l=e.top+r-s.scroll+i;a<s.top?o.top=s.top-a:l>s.top+s.height&&(o.top=s.top+s.height-l)}else{var u=e.left-r,c=e.left+r+n;u<s.left?o.left=s.left-u:c>s.right&&(o.left=s.left+s.width-c)}return o},n.prototype.getTitle=function(){var t,e=this.$element,n=this.options;return t=e.attr("data-original-title")||("function"==typeof n.title?n.title.call(e[0]):n.title)},n.prototype.getUID=function(t){do t+=~~(1e6*Math.random());while(document.getElementById(t));return t},n.prototype.tip=function(){if(!this.$tip&&(this.$tip=t(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},n.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},n.prototype.enable=function(){this.enabled=!0},n.prototype.disable=function(){this.enabled=!1},n.prototype.toggleEnabled=function(){this.enabled=!this.enabled},n.prototype.toggle=function(e){var n=this;e&&(n=t(e.currentTarget).data("bs."+this.type),n||(n=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,n))),e?(n.inState.click=!n.inState.click,n.isInStateTrue()?n.enter(n):n.leave(n)):n.tip().hasClass("in")?n.leave(n):n.enter(n)},n.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null})};var i=t.fn.tooltip;t.fn.tooltip=e,t.fn.tooltip.Constructor=n,t.fn.tooltip.noConflict=function(){return t.fn.tooltip=i,this}}(jQuery)},{}],13:[function(t,e,n){+function(t){"use strict";function e(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in e)if(void 0!==t.style[n])return{end:e[n]};return!1}t.fn.emulateTransitionEnd=function(e){var n=!1,i=this;t(this).one("bsTransitionEnd",function(){n=!0});var o=function(){n||t(i).trigger(t.support.transition.end)};return setTimeout(o,e),this},t(function(){t.support.transition=e(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.support.transition.end,delegateType:t.support.transition.end,handle:function(e){return t(e.target).is(this)?e.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery)},{}],14:[function(t,e,n){!function(t,n){"object"==typeof e&&"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return n(t)}:n(t)}("undefined"!=typeof window?window:this,function(t,e){function n(t){var e=!!t&&"length"in t&&t.length,n=rt.type(t);return"function"===n||rt.isWindow(t)?!1:"array"===n||0===e||"number"==typeof e&&e>0&&e-1 in t}function i(t,e,n){if(rt.isFunction(e))return rt.grep(t,function(t,i){return!!e.call(t,i,t)!==n});if(e.nodeType)return rt.grep(t,function(t){return t===e!==n});if("string"==typeof e){if(gt.test(e))return rt.filter(e,t,n);e=rt.filter(e,t)}return rt.grep(t,function(t){return Z.call(e,t)>-1!==n})}function o(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}function r(t){var e={};return rt.each(t.match(wt)||[],function(t,n){e[n]=!0}),e}function s(){Y.removeEventListener("DOMContentLoaded",s),t.removeEventListener("load",s),rt.ready()}function a(){this.expando=rt.expando+a.uid++}function l(t,e,n){var i;if(void 0===n&&1===t.nodeType)if(i="data-"+e.replace(Nt,"-$&").toLowerCase(),n=t.getAttribute(i),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:St.test(n)?rt.parseJSON(n):n}catch(o){}$t.set(t,e,n)}else n=void 0;return n}function u(t,e,n,i){var o,r=1,s=20,a=i?function(){return i.cur()}:function(){return rt.css(t,e,"")},l=a(),u=n&&n[3]||(rt.cssNumber[e]?"":"px"),c=(rt.cssNumber[e]||"px"!==u&&+l)&&jt.exec(rt.css(t,e));if(c&&c[3]!==u){u=u||c[3],n=n||[],c=+l||1;do r=r||".5",c/=r,rt.style(t,e,c+u);while(r!==(r=a()/l)&&1!==r&&--s)}return n&&(c=+c||+l||0,o=n[1]?c+(n[1]+1)*n[2]:+n[2],i&&(i.unit=u,i.start=c,i.end=o)),o}function c(t,e){var n="undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e||"*"):"undefined"!=typeof t.querySelectorAll?t.querySelectorAll(e||"*"):[];return void 0===e||e&&rt.nodeName(t,e)?rt.merge([t],n):n}function f(t,e){for(var n=0,i=t.length;i>n;n++)kt.set(t[n],"globalEval",!e||kt.get(e[n],"globalEval"))}function p(t,e,n,i,o){for(var r,s,a,l,u,p,d=e.createDocumentFragment(),h=[],g=0,v=t.length;v>g;g++)if(r=t[g],r||0===r)if("object"===rt.type(r))rt.merge(h,r.nodeType?[r]:r);else if(Ht.test(r)){for(s=s||d.appendChild(e.createElement("div")),a=(Lt.exec(r)||["",""])[1].toLowerCase(),l=qt[a]||qt._default,s.innerHTML=l[1]+rt.htmlPrefilter(r)+l[2],p=l[0];p--;)s=s.lastChild;rt.merge(h,s.childNodes),s=d.firstChild,s.textContent=""}else h.push(e.createTextNode(r));for(d.textContent="",g=0;r=h[g++];)if(i&&rt.inArray(r,i)>-1)o&&o.push(r);else if(u=rt.contains(r.ownerDocument,r),s=c(d.appendChild(r),"script"),u&&f(s),n)for(p=0;r=s[p++];)Rt.test(r.type||"")&&n.push(r);return d}function d(){return!0}function h(){return!1}function g(){try{return Y.activeElement}catch(t){}}function v(t,e,n,i,o,r){var s,a;if("object"==typeof e){"string"!=typeof n&&(i=i||n,n=void 0);for(a in e)v(t,a,n,i,e[a],r);return t}if(null==i&&null==o?(o=n,i=n=void 0):null==o&&("string"==typeof n?(o=i,i=void 0):(o=i,i=n,n=void 0)),o===!1)o=h;else if(!o)return t;return 1===r&&(s=o,o=function(t){return rt().off(t),s.apply(this,arguments)},o.guid=s.guid||(s.guid=rt.guid++)),t.each(function(){rt.event.add(this,e,o,i,n)})}function m(t,e){return rt.nodeName(t,"table")&&rt.nodeName(11!==e.nodeType?e:e.firstChild,"tr")?t.getElementsByTagName("tbody")[0]||t.appendChild(t.ownerDocument.createElement("tbody")):t}function y(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function b(t){var e=Ut.exec(t.type);return e?t.type=e[1]:t.removeAttribute("type"),t}function x(t,e){var n,i,o,r,s,a,l,u;if(1===e.nodeType){if(kt.hasData(t)&&(r=kt.access(t),s=kt.set(e,r),u=r.events)){delete s.handle,s.events={};for(o in u)for(n=0,i=u[o].length;i>n;n++)rt.event.add(e,o,u[o][n])}$t.hasData(t)&&(a=$t.access(t),l=rt.extend({},a),$t.set(e,l))}}function w(t,e){var n=e.nodeName.toLowerCase();"input"===n&&It.test(t.type)?e.checked=t.checked:"input"!==n&&"textarea"!==n||(e.defaultValue=t.defaultValue)}function T(t,e,n,i){e=K.apply([],e);var o,r,s,a,l,u,f=0,d=t.length,h=d-1,g=e[0],v=rt.isFunction(g);if(v||d>1&&"string"==typeof g&&!it.checkClone&&Bt.test(g))return t.each(function(o){var r=t.eq(o);v&&(e[0]=g.call(this,o,r.html())),T(r,e,n,i)});if(d&&(o=p(e,t[0].ownerDocument,!1,t,i),r=o.firstChild,1===o.childNodes.length&&(o=r),r||i)){for(s=rt.map(c(o,"script"),y),a=s.length;d>f;f++)l=o,f!==h&&(l=rt.clone(l,!0,!0),a&&rt.merge(s,c(l,"script"))),n.call(t[f],l,f);if(a)for(u=s[s.length-1].ownerDocument,rt.map(s,b),f=0;a>f;f++)l=s[f],Rt.test(l.type||"")&&!kt.access(l,"globalEval")&&rt.contains(u,l)&&(l.src?rt._evalUrl&&rt._evalUrl(l.src):rt.globalEval(l.textContent.replace(zt,"")))}return t}function C(t,e,n){for(var i,o=e?rt.filter(e,t):t,r=0;null!=(i=o[r]);r++)n||1!==i.nodeType||rt.cleanData(c(i)),i.parentNode&&(n&&rt.contains(i.ownerDocument,i)&&f(c(i,"script")),i.parentNode.removeChild(i));return t}function E(t,e){var n=rt(e.createElement(t)).appendTo(e.body),i=rt.css(n[0],"display");return n.detach(),i}function k(t){var e=Y,n=Xt[t];return n||(n=E(t,e),"none"!==n&&n||(Vt=(Vt||rt("<iframe frameborder='0' width='0' height='0'/>")).appendTo(e.documentElement),e=Vt[0].contentDocument,e.write(),e.close(),n=E(t,e),Vt.detach()),Xt[t]=n),n}function $(t,e,n){var i,o,r,s,a=t.style;return n=n||Gt(t),s=n?n.getPropertyValue(e)||n[e]:void 0,""!==s&&void 0!==s||rt.contains(t.ownerDocument,t)||(s=rt.style(t,e)),n&&!it.pixelMarginRight()&&Yt.test(s)&&Qt.test(e)&&(i=a.width,o=a.minWidth,r=a.maxWidth,a.minWidth=a.maxWidth=a.width=s,s=n.width,a.width=i,a.minWidth=o,a.maxWidth=r),void 0!==s?s+"":s}function S(t,e){return{get:function(){return t()?void delete this.get:(this.get=e).apply(this,arguments)}}}function N(t){if(t in ie)return t;for(var e=t[0].toUpperCase()+t.slice(1),n=ne.length;n--;)if(t=ne[n]+e,t in ie)return t}function D(t,e,n){var i=jt.exec(e);return i?Math.max(0,i[2]-(n||0))+(i[3]||"px"):e}function j(t,e,n,i,o){for(var r=n===(i?"border":"content")?4:"width"===e?1:0,s=0;4>r;r+=2)"margin"===n&&(s+=rt.css(t,n+At[r],!0,o)),i?("content"===n&&(s-=rt.css(t,"padding"+At[r],!0,o)),"margin"!==n&&(s-=rt.css(t,"border"+At[r]+"Width",!0,o))):(s+=rt.css(t,"padding"+At[r],!0,o),"padding"!==n&&(s+=rt.css(t,"border"+At[r]+"Width",!0,o)));return s}function A(e,n,i){var o=!0,r="width"===n?e.offsetWidth:e.offsetHeight,s=Gt(e),a="border-box"===rt.css(e,"boxSizing",!1,s);if(Y.msFullscreenElement&&t.top!==t&&e.getClientRects().length&&(r=Math.round(100*e.getBoundingClientRect()[n])),0>=r||null==r){if(r=$(e,n,s),(0>r||null==r)&&(r=e.style[n]),Yt.test(r))return r;o=a&&(it.boxSizingReliable()||r===e.style[n]),r=parseFloat(r)||0}return r+j(e,n,i||(a?"border":"content"),o,s)+"px"}function O(t,e){for(var n,i,o,r=[],s=0,a=t.length;a>s;s++)i=t[s],i.style&&(r[s]=kt.get(i,"olddisplay"),n=i.style.display,e?(r[s]||"none"!==n||(i.style.display=""),""===i.style.display&&Ot(i)&&(r[s]=kt.access(i,"olddisplay",k(i.nodeName)))):(o=Ot(i),"none"===n&&o||kt.set(i,"olddisplay",o?n:rt.css(i,"display"))));for(s=0;a>s;s++)i=t[s],i.style&&(e&&"none"!==i.style.display&&""!==i.style.display||(i.style.display=e?r[s]||"":"none"));return t}function I(t,e,n,i,o){return new I.prototype.init(t,e,n,i,o)}function L(){return t.setTimeout(function(){oe=void 0}),oe=rt.now()}function R(t,e){var n,i=0,o={height:t};for(e=e?1:0;4>i;i+=2-e)n=At[i],o["margin"+n]=o["padding"+n]=t;return e&&(o.opacity=o.width=t),o}function q(t,e,n){for(var i,o=(F.tweeners[e]||[]).concat(F.tweeners["*"]),r=0,s=o.length;s>r;r++)if(i=o[r].call(n,e,t))return i}function H(t,e,n){var i,o,r,s,a,l,u,c,f=this,p={},d=t.style,h=t.nodeType&&Ot(t),g=kt.get(t,"fxshow");n.queue||(a=rt._queueHooks(t,"fx"),null==a.unqueued&&(a.unqueued=0,l=a.empty.fire,a.empty.fire=function(){a.unqueued||l()}),a.unqueued++,f.always(function(){f.always(function(){a.unqueued--,rt.queue(t,"fx").length||a.empty.fire()})})),1===t.nodeType&&("height"in e||"width"in e)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],u=rt.css(t,"display"),c="none"===u?kt.get(t,"olddisplay")||k(t.nodeName):u,"inline"===c&&"none"===rt.css(t,"float")&&(d.display="inline-block")),n.overflow&&(d.overflow="hidden",f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(i in e)if(o=e[i],se.exec(o)){if(delete e[i],r=r||"toggle"===o,o===(h?"hide":"show")){if("show"!==o||!g||void 0===g[i])continue;h=!0}p[i]=g&&g[i]||rt.style(t,i)}else u=void 0;if(rt.isEmptyObject(p))"inline"===("none"===u?k(t.nodeName):u)&&(d.display=u);else{g?"hidden"in g&&(h=g.hidden):g=kt.access(t,"fxshow",{}),r&&(g.hidden=!h),h?rt(t).show():f.done(function(){rt(t).hide()}),f.done(function(){var e;kt.remove(t,"fxshow");for(e in p)rt.style(t,e,p[e])});for(i in p)s=q(h?g[i]:0,i,f),i in g||(g[i]=s.start,h&&(s.end=s.start,s.start="width"===i||"height"===i?1:0))}}function P(t,e){var n,i,o,r,s;for(n in t)if(i=rt.camelCase(n),o=e[i],r=t[n],rt.isArray(r)&&(o=r[1],r=t[n]=r[0]),n!==i&&(t[i]=r,delete t[n]),s=rt.cssHooks[i],s&&"expand"in s){r=s.expand(r),delete t[i];for(n in r)n in t||(t[n]=r[n],e[n]=o)}else e[i]=o}function F(t,e,n){var i,o,r=0,s=F.prefilters.length,a=rt.Deferred().always(function(){delete l.elem}),l=function(){if(o)return!1;for(var e=oe||L(),n=Math.max(0,u.startTime+u.duration-e),i=n/u.duration||0,r=1-i,s=0,l=u.tweens.length;l>s;s++)u.tweens[s].run(r);return a.notifyWith(t,[u,r,n]),1>r&&l?n:(a.resolveWith(t,[u]),!1)},u=a.promise({elem:t,props:rt.extend({},e),opts:rt.extend(!0,{specialEasing:{},easing:rt.easing._default},n),originalProperties:e,originalOptions:n,startTime:oe||L(),duration:n.duration,tweens:[],createTween:function(e,n){var i=rt.Tween(t,u.opts,e,n,u.opts.specialEasing[e]||u.opts.easing);return u.tweens.push(i),i},stop:function(e){var n=0,i=e?u.tweens.length:0;if(o)return this;for(o=!0;i>n;n++)u.tweens[n].run(1);return e?(a.notifyWith(t,[u,1,0]),a.resolveWith(t,[u,e])):a.rejectWith(t,[u,e]),this}}),c=u.props;for(P(c,u.opts.specialEasing);s>r;r++)if(i=F.prefilters[r].call(u,t,c,u.opts))return rt.isFunction(i.stop)&&(rt._queueHooks(u.elem,u.opts.queue).stop=rt.proxy(i.stop,i)),i;return rt.map(c,q,u),rt.isFunction(u.opts.start)&&u.opts.start.call(t,u),rt.fx.timer(rt.extend(l,{elem:t,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function M(t){return t.getAttribute&&t.getAttribute("class")||""}function W(t){return function(e,n){"string"!=typeof e&&(n=e,e="*");var i,o=0,r=e.toLowerCase().match(wt)||[];if(rt.isFunction(n))for(;i=r[o++];)"+"===i[0]?(i=i.slice(1)||"*",(t[i]=t[i]||[]).unshift(n)):(t[i]=t[i]||[]).push(n)}}function _(t,e,n,i){function o(a){var l;return r[a]=!0,rt.each(t[a]||[],function(t,a){var u=a(e,n,i);return"string"!=typeof u||s||r[u]?s?!(l=u):void 0:(e.dataTypes.unshift(u),o(u),!1)}),l}var r={},s=t===ke;return o(e.dataTypes[0])||!r["*"]&&o("*")}function B(t,e){var n,i,o=rt.ajaxSettings.flatOptions||{};for(n in e)void 0!==e[n]&&((o[n]?t:i||(i={}))[n]=e[n]);return i&&rt.extend(!0,t,i),t}function U(t,e,n){for(var i,o,r,s,a=t.contents,l=t.dataTypes;"*"===l[0];)l.shift(),void 0===i&&(i=t.mimeType||e.getResponseHeader("Content-Type"));if(i)for(o in a)if(a[o]&&a[o].test(i)){l.unshift(o);break}if(l[0]in n)r=l[0];else{for(o in n){if(!l[0]||t.converters[o+" "+l[0]]){r=o;break}s||(s=o)}r=r||s}return r?(r!==l[0]&&l.unshift(r),n[r]):void 0}function z(t,e,n,i){var o,r,s,a,l,u={},c=t.dataTypes.slice();if(c[1])for(s in t.converters)u[s.toLowerCase()]=t.converters[s];for(r=c.shift();r;)if(t.responseFields[r]&&(n[t.responseFields[r]]=e),!l&&i&&t.dataFilter&&(e=t.dataFilter(e,t.dataType)),l=r,r=c.shift())if("*"===r)r=l;else if("*"!==l&&l!==r){if(s=u[l+" "+r]||u["* "+r],!s)for(o in u)if(a=o.split(" "),a[1]===r&&(s=u[l+" "+a[0]]||u["* "+a[0]])){s===!0?s=u[o]:u[o]!==!0&&(r=a[0],c.unshift(a[1]));break}if(s!==!0)if(s&&t["throws"])e=s(e);else try{e=s(e)}catch(f){return{state:"parsererror",error:s?f:"No conversion from "+l+" to "+r}}}return{state:"success",data:e}}function V(t,e,n,i){var o;if(rt.isArray(e))rt.each(e,function(e,o){n||De.test(t)?i(t,o):V(t+"["+("object"==typeof o&&null!=o?e:"")+"]",o,n,i)});else if(n||"object"!==rt.type(e))i(t,e);else for(o in e)V(t+"["+o+"]",e[o],n,i)}function X(t){return rt.isWindow(t)?t:9===t.nodeType&&t.defaultView}var Q=[],Y=t.document,G=Q.slice,K=Q.concat,J=Q.push,Z=Q.indexOf,tt={},et=tt.toString,nt=tt.hasOwnProperty,it={},ot="2.2.1",rt=function(t,e){return new rt.fn.init(t,e)},st=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,at=/^-ms-/,lt=/-([\da-z])/gi,ut=function(t,e){return e.toUpperCase()};rt.fn=rt.prototype={jquery:ot,constructor:rt,selector:"",length:0,toArray:function(){return G.call(this)},get:function(t){return null!=t?0>t?this[t+this.length]:this[t]:G.call(this)},pushStack:function(t){var e=rt.merge(this.constructor(),t);return e.prevObject=this,e.context=this.context,e},each:function(t){return rt.each(this,t)},map:function(t){return this.pushStack(rt.map(this,function(e,n){return t.call(e,n,e)}))},slice:function(){return this.pushStack(G.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(t){var e=this.length,n=+t+(0>t?e:0);return this.pushStack(n>=0&&e>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:J,sort:Q.sort,splice:Q.splice},rt.extend=rt.fn.extend=function(){var t,e,n,i,o,r,s=arguments[0]||{},a=1,l=arguments.length,u=!1;for("boolean"==typeof s&&(u=s,s=arguments[a]||{},a++),"object"==typeof s||rt.isFunction(s)||(s={}),a===l&&(s=this,a--);l>a;a++)if(null!=(t=arguments[a]))for(e in t)n=s[e],i=t[e],s!==i&&(u&&i&&(rt.isPlainObject(i)||(o=rt.isArray(i)))?(o?(o=!1,r=n&&rt.isArray(n)?n:[]):r=n&&rt.isPlainObject(n)?n:{},s[e]=rt.extend(u,r,i)):void 0!==i&&(s[e]=i));return s},rt.extend({expando:"jQuery"+(ot+Math.random()).replace(/\D/g,""),isReady:!0,error:function(t){throw new Error(t)},noop:function(){},isFunction:function(t){return"function"===rt.type(t)},isArray:Array.isArray,isWindow:function(t){return null!=t&&t===t.window},isNumeric:function(t){var e=t&&t.toString();return!rt.isArray(t)&&e-parseFloat(e)+1>=0},isPlainObject:function(t){return"object"!==rt.type(t)||t.nodeType||rt.isWindow(t)?!1:!t.constructor||nt.call(t.constructor.prototype,"isPrototypeOf")},isEmptyObject:function(t){var e;for(e in t)return!1;return!0},type:function(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?tt[et.call(t)]||"object":typeof t},globalEval:function(t){var e,n=eval;t=rt.trim(t),t&&(1===t.indexOf("use strict")?(e=Y.createElement("script"),e.text=t,Y.head.appendChild(e).parentNode.removeChild(e)):n(t))},camelCase:function(t){return t.replace(at,"ms-").replace(lt,ut)},nodeName:function(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()},each:function(t,e){var i,o=0;if(n(t))for(i=t.length;i>o&&e.call(t[o],o,t[o])!==!1;o++);else for(o in t)if(e.call(t[o],o,t[o])===!1)break;return t},trim:function(t){return null==t?"":(t+"").replace(st,"")},makeArray:function(t,e){var i=e||[];return null!=t&&(n(Object(t))?rt.merge(i,"string"==typeof t?[t]:t):J.call(i,t)),i},inArray:function(t,e,n){return null==e?-1:Z.call(e,t,n)},merge:function(t,e){for(var n=+e.length,i=0,o=t.length;n>i;i++)t[o++]=e[i];return t.length=o,t},grep:function(t,e,n){for(var i,o=[],r=0,s=t.length,a=!n;s>r;r++)i=!e(t[r],r),i!==a&&o.push(t[r]);return o},map:function(t,e,i){var o,r,s=0,a=[];if(n(t))for(o=t.length;o>s;s++)r=e(t[s],s,i),null!=r&&a.push(r);else for(s in t)r=e(t[s],s,i),null!=r&&a.push(r);return K.apply([],a)},guid:1,proxy:function(t,e){var n,i,o;return"string"==typeof e&&(n=t[e],e=t,t=n),rt.isFunction(t)?(i=G.call(arguments,2),o=function(){return t.apply(e||this,i.concat(G.call(arguments)))},o.guid=t.guid=t.guid||rt.guid++,o):void 0},now:Date.now,support:it}),"function"==typeof Symbol&&(rt.fn[Symbol.iterator]=Q[Symbol.iterator]),rt.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(t,e){tt["[object "+e+"]"]=e.toLowerCase()});var ct=function(t){function e(t,e,n,i){var o,r,s,a,l,u,f,d,h=e&&e.ownerDocument,g=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==g&&9!==g&&11!==g)return n;if(!i&&((e?e.ownerDocument||e:M)!==O&&A(e),e=e||O,L)){if(11!==g&&(u=mt.exec(t)))if(o=u[1]){if(9===g){if(!(s=e.getElementById(o)))return n;if(s.id===o)return n.push(s),n}else if(h&&(s=h.getElementById(o))&&P(e,s)&&s.id===o)return n.push(s),n}else{if(u[2])return J.apply(n,e.getElementsByTagName(t)),n;if((o=u[3])&&w.getElementsByClassName&&e.getElementsByClassName)return J.apply(n,e.getElementsByClassName(o)),n}if(w.qsa&&!z[t+" "]&&(!R||!R.test(t))){if(1!==g)h=e,d=t;else if("object"!==e.nodeName.toLowerCase()){for((a=e.getAttribute("id"))?a=a.replace(bt,"\\$&"):e.setAttribute("id",a=F),f=k(t),r=f.length,l=pt.test(a)?"#"+a:"[id='"+a+"']";r--;)f[r]=l+" "+p(f[r]);d=f.join(","),h=yt.test(t)&&c(e.parentNode)||e}if(d)try{return J.apply(n,h.querySelectorAll(d)),n}catch(v){}finally{a===F&&e.removeAttribute("id")}}}return S(t.replace(at,"$1"),e,n,i)}function n(){function t(n,i){return e.push(n+" ")>T.cacheLength&&delete t[e.shift()],t[n+" "]=i}var e=[];return t}function i(t){return t[F]=!0,t}function o(t){var e=O.createElement("div");try{return!!t(e)}catch(n){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function r(t,e){for(var n=t.split("|"),i=n.length;i--;)T.attrHandle[n[i]]=e}function s(t,e){var n=e&&t,i=n&&1===t.nodeType&&1===e.nodeType&&(~e.sourceIndex||X)-(~t.sourceIndex||X);if(i)return i;if(n)for(;n=n.nextSibling;)if(n===e)return-1;return t?1:-1}function a(t){return function(e){var n=e.nodeName.toLowerCase();return"input"===n&&e.type===t}}function l(t){return function(e){var n=e.nodeName.toLowerCase();return("input"===n||"button"===n)&&e.type===t}}function u(t){return i(function(e){return e=+e,i(function(n,i){for(var o,r=t([],n.length,e),s=r.length;s--;)n[o=r[s]]&&(n[o]=!(i[o]=n[o]))})})}function c(t){return t&&"undefined"!=typeof t.getElementsByTagName&&t}function f(){}function p(t){for(var e=0,n=t.length,i="";n>e;e++)i+=t[e].value;return i}function d(t,e,n){var i=e.dir,o=n&&"parentNode"===i,r=_++;return e.first?function(e,n,r){for(;e=e[i];)if(1===e.nodeType||o)return t(e,n,r)}:function(e,n,s){var a,l,u,c=[W,r];if(s){for(;e=e[i];)if((1===e.nodeType||o)&&t(e,n,s))return!0}else for(;e=e[i];)if(1===e.nodeType||o){if(u=e[F]||(e[F]={}),l=u[e.uniqueID]||(u[e.uniqueID]={}),(a=l[i])&&a[0]===W&&a[1]===r)return c[2]=a[2];if(l[i]=c,c[2]=t(e,n,s))return!0}}}function h(t){return t.length>1?function(e,n,i){for(var o=t.length;o--;)if(!t[o](e,n,i))return!1;return!0}:t[0]}function g(t,n,i){for(var o=0,r=n.length;r>o;o++)e(t,n[o],i);return i}function v(t,e,n,i,o){for(var r,s=[],a=0,l=t.length,u=null!=e;l>a;a++)(r=t[a])&&(n&&!n(r,i,o)||(s.push(r),u&&e.push(a)));return s}function m(t,e,n,o,r,s){return o&&!o[F]&&(o=m(o)),r&&!r[F]&&(r=m(r,s)),i(function(i,s,a,l){var u,c,f,p=[],d=[],h=s.length,m=i||g(e||"*",a.nodeType?[a]:a,[]),y=!t||!i&&e?m:v(m,p,t,a,l),b=n?r||(i?t:h||o)?[]:s:y;if(n&&n(y,b,a,l),o)for(u=v(b,d),o(u,[],a,l),c=u.length;c--;)(f=u[c])&&(b[d[c]]=!(y[d[c]]=f));if(i){if(r||t){if(r){for(u=[],c=b.length;c--;)(f=b[c])&&u.push(y[c]=f);r(null,b=[],u,l)}for(c=b.length;c--;)(f=b[c])&&(u=r?tt(i,f):p[c])>-1&&(i[u]=!(s[u]=f))}}else b=v(b===s?b.splice(h,b.length):b),r?r(null,s,b,l):J.apply(s,b)})}function y(t){for(var e,n,i,o=t.length,r=T.relative[t[0].type],s=r||T.relative[" "],a=r?1:0,l=d(function(t){return t===e},s,!0),u=d(function(t){return tt(e,t)>-1},s,!0),c=[function(t,n,i){var o=!r&&(i||n!==N)||((e=n).nodeType?l(t,n,i):u(t,n,i));return e=null,o}];o>a;a++)if(n=T.relative[t[a].type])c=[d(h(c),n)];else{if(n=T.filter[t[a].type].apply(null,t[a].matches),n[F]){for(i=++a;o>i&&!T.relative[t[i].type];i++);return m(a>1&&h(c),a>1&&p(t.slice(0,a-1).concat({value:" "===t[a-2].type?"*":""})).replace(at,"$1"),n,i>a&&y(t.slice(a,i)),o>i&&y(t=t.slice(i)),o>i&&p(t))}c.push(n)}return h(c)}function b(t,n){var o=n.length>0,r=t.length>0,s=function(i,s,a,l,u){var c,f,p,d=0,h="0",g=i&&[],m=[],y=N,b=i||r&&T.find.TAG("*",u),x=W+=null==y?1:Math.random()||.1,w=b.length;for(u&&(N=s===O||s||u);h!==w&&null!=(c=b[h]);h++){if(r&&c){for(f=0,s||c.ownerDocument===O||(A(c),a=!L);p=t[f++];)if(p(c,s||O,a)){l.push(c);break}u&&(W=x)}o&&((c=!p&&c)&&d--,i&&g.push(c))}if(d+=h,o&&h!==d){for(f=0;p=n[f++];)p(g,m,s,a);if(i){if(d>0)for(;h--;)g[h]||m[h]||(m[h]=G.call(l));m=v(m)}J.apply(l,m),u&&!i&&m.length>0&&d+n.length>1&&e.uniqueSort(l)}return u&&(W=x,N=y),g};return o?i(s):s}var x,w,T,C,E,k,$,S,N,D,j,A,O,I,L,R,q,H,P,F="sizzle"+1*new Date,M=t.document,W=0,_=0,B=n(),U=n(),z=n(),V=function(t,e){return t===e&&(j=!0),0},X=1<<31,Q={}.hasOwnProperty,Y=[],G=Y.pop,K=Y.push,J=Y.push,Z=Y.slice,tt=function(t,e){for(var n=0,i=t.length;i>n;n++)if(t[n]===e)return n;return-1},et="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",nt="[\\x20\\t\\r\\n\\f]",it="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ot="\\["+nt+"*("+it+")(?:"+nt+"*([*^$|!~]?=)"+nt+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+it+"))|)"+nt+"*\\]",rt=":("+it+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ot+")*)|.*)\\)|)",st=new RegExp(nt+"+","g"),at=new RegExp("^"+nt+"+|((?:^|[^\\\\])(?:\\\\.)*)"+nt+"+$","g"),lt=new RegExp("^"+nt+"*,"+nt+"*"),ut=new RegExp("^"+nt+"*([>+~]|"+nt+")"+nt+"*"),ct=new RegExp("="+nt+"*([^\\]'\"]*?)"+nt+"*\\]","g"),ft=new RegExp(rt),pt=new RegExp("^"+it+"$"),dt={ID:new RegExp("^#("+it+")"),CLASS:new RegExp("^\\.("+it+")"),TAG:new RegExp("^("+it+"|[*])"),ATTR:new RegExp("^"+ot),PSEUDO:new RegExp("^"+rt),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+nt+"*(even|odd|(([+-]|)(\\d*)n|)"+nt+"*(?:([+-]|)"+nt+"*(\\d+)|))"+nt+"*\\)|)","i"),bool:new RegExp("^(?:"+et+")$","i"),needsContext:new RegExp("^"+nt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+nt+"*((?:-\\d)?\\d*)"+nt+"*\\)|)(?=[^-]|$)","i")},ht=/^(?:input|select|textarea|button)$/i,gt=/^h\d$/i,vt=/^[^{]+\{\s*\[native \w/,mt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,yt=/[+~]/,bt=/'|\\/g,xt=new RegExp("\\\\([\\da-f]{1,6}"+nt+"?|("+nt+")|.)","ig"),wt=function(t,e,n){var i="0x"+e-65536;return i!==i||n?e:0>i?String.fromCharCode(i+65536):String.fromCharCode(i>>10|55296,1023&i|56320)},Tt=function(){A()};try{J.apply(Y=Z.call(M.childNodes),M.childNodes),Y[M.childNodes.length].nodeType}catch(Ct){J={apply:Y.length?function(t,e){K.apply(t,Z.call(e))}:function(t,e){for(var n=t.length,i=0;t[n++]=e[i++];);t.length=n-1}}}w=e.support={},E=e.isXML=function(t){var e=t&&(t.ownerDocument||t).documentElement;return e?"HTML"!==e.nodeName:!1},A=e.setDocument=function(t){var e,n,i=t?t.ownerDocument||t:M;return i!==O&&9===i.nodeType&&i.documentElement?(O=i,I=O.documentElement,L=!E(O),(n=O.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Tt,!1):n.attachEvent&&n.attachEvent("onunload",Tt)),w.attributes=o(function(t){return t.className="i",!t.getAttribute("className")}),w.getElementsByTagName=o(function(t){return t.appendChild(O.createComment("")),!t.getElementsByTagName("*").length}),w.getElementsByClassName=vt.test(O.getElementsByClassName),w.getById=o(function(t){return I.appendChild(t).id=F,!O.getElementsByName||!O.getElementsByName(F).length}),w.getById?(T.find.ID=function(t,e){if("undefined"!=typeof e.getElementById&&L){var n=e.getElementById(t);return n?[n]:[]}},T.filter.ID=function(t){var e=t.replace(xt,wt);return function(t){return t.getAttribute("id")===e}}):(delete T.find.ID,T.filter.ID=function(t){var e=t.replace(xt,wt);return function(t){var n="undefined"!=typeof t.getAttributeNode&&t.getAttributeNode("id");return n&&n.value===e}}),T.find.TAG=w.getElementsByTagName?function(t,e){return"undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t):w.qsa?e.querySelectorAll(t):void 0}:function(t,e){var n,i=[],o=0,r=e.getElementsByTagName(t);if("*"===t){for(;n=r[o++];)1===n.nodeType&&i.push(n);return i}return r},T.find.CLASS=w.getElementsByClassName&&function(t,e){return"undefined"!=typeof e.getElementsByClassName&&L?e.getElementsByClassName(t):void 0},q=[],R=[],(w.qsa=vt.test(O.querySelectorAll))&&(o(function(t){I.appendChild(t).innerHTML="<a id='"+F+"'></a><select id='"+F+"-\r\\' msallowcapture=''><option selected=''></option></select>",t.querySelectorAll("[msallowcapture^='']").length&&R.push("[*^$]="+nt+"*(?:''|\"\")"),t.querySelectorAll("[selected]").length||R.push("\\["+nt+"*(?:value|"+et+")"),t.querySelectorAll("[id~="+F+"-]").length||R.push("~="),t.querySelectorAll(":checked").length||R.push(":checked"),t.querySelectorAll("a#"+F+"+*").length||R.push(".#.+[+~]")}),o(function(t){var e=O.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&R.push("name"+nt+"*[*^$|!~]?="),t.querySelectorAll(":enabled").length||R.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),R.push(",.*:")})),(w.matchesSelector=vt.test(H=I.matches||I.webkitMatchesSelector||I.mozMatchesSelector||I.oMatchesSelector||I.msMatchesSelector))&&o(function(t){w.disconnectedMatch=H.call(t,"div"),H.call(t,"[s!='']:x"),q.push("!=",rt)}),R=R.length&&new RegExp(R.join("|")),q=q.length&&new RegExp(q.join("|")),e=vt.test(I.compareDocumentPosition),P=e||vt.test(I.contains)?function(t,e){var n=9===t.nodeType?t.documentElement:t,i=e&&e.parentNode;return t===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):t.compareDocumentPosition&&16&t.compareDocumentPosition(i)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},V=e?function(t,e){if(t===e)return j=!0,0;var n=!t.compareDocumentPosition-!e.compareDocumentPosition;return n?n:(n=(t.ownerDocument||t)===(e.ownerDocument||e)?t.compareDocumentPosition(e):1,1&n||!w.sortDetached&&e.compareDocumentPosition(t)===n?t===O||t.ownerDocument===M&&P(M,t)?-1:e===O||e.ownerDocument===M&&P(M,e)?1:D?tt(D,t)-tt(D,e):0:4&n?-1:1)}:function(t,e){if(t===e)return j=!0,0;var n,i=0,o=t.parentNode,r=e.parentNode,a=[t],l=[e];if(!o||!r)return t===O?-1:e===O?1:o?-1:r?1:D?tt(D,t)-tt(D,e):0;if(o===r)return s(t,e);for(n=t;n=n.parentNode;)a.unshift(n);for(n=e;n=n.parentNode;)l.unshift(n);for(;a[i]===l[i];)i++;return i?s(a[i],l[i]):a[i]===M?-1:l[i]===M?1:0},O):O},e.matches=function(t,n){return e(t,null,null,n)},e.matchesSelector=function(t,n){if((t.ownerDocument||t)!==O&&A(t),n=n.replace(ct,"='$1']"),
 
w.matchesSelector&&L&&!z[n+" "]&&(!q||!q.test(n))&&(!R||!R.test(n)))try{var i=H.call(t,n);if(i||w.disconnectedMatch||t.document&&11!==t.document.nodeType)return i}catch(o){}return e(n,O,null,[t]).length>0},e.contains=function(t,e){return(t.ownerDocument||t)!==O&&A(t),P(t,e)},e.attr=function(t,e){(t.ownerDocument||t)!==O&&A(t);var n=T.attrHandle[e.toLowerCase()],i=n&&Q.call(T.attrHandle,e.toLowerCase())?n(t,e,!L):void 0;return void 0!==i?i:w.attributes||!L?t.getAttribute(e):(i=t.getAttributeNode(e))&&i.specified?i.value:null},e.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},e.uniqueSort=function(t){var e,n=[],i=0,o=0;if(j=!w.detectDuplicates,D=!w.sortStable&&t.slice(0),t.sort(V),j){for(;e=t[o++];)e===t[o]&&(i=n.push(o));for(;i--;)t.splice(n[i],1)}return D=null,t},C=e.getText=function(t){var e,n="",i=0,o=t.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)n+=C(t)}else if(3===o||4===o)return t.nodeValue}else for(;e=t[i++];)n+=C(e);return n},T=e.selectors={cacheLength:50,createPseudo:i,match:dt,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(xt,wt),t[3]=(t[3]||t[4]||t[5]||"").replace(xt,wt),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(t){var e,n=!t[6]&&t[2];return dt.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":n&&ft.test(n)&&(e=k(n,!0))&&(e=n.indexOf(")",n.length-e)-n.length)&&(t[0]=t[0].slice(0,e),t[2]=n.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(xt,wt).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=B[t+" "];return e||(e=new RegExp("(^|"+nt+")"+t+"("+nt+"|$)"))&&B(t,function(t){return e.test("string"==typeof t.className&&t.className||"undefined"!=typeof t.getAttribute&&t.getAttribute("class")||"")})},ATTR:function(t,n,i){return function(o){var r=e.attr(o,t);return null==r?"!="===n:n?(r+="","="===n?r===i:"!="===n?r!==i:"^="===n?i&&0===r.indexOf(i):"*="===n?i&&r.indexOf(i)>-1:"$="===n?i&&r.slice(-i.length)===i:"~="===n?(" "+r.replace(st," ")+" ").indexOf(i)>-1:"|="===n?r===i||r.slice(0,i.length+1)===i+"-":!1):!0}},CHILD:function(t,e,n,i,o){var r="nth"!==t.slice(0,3),s="last"!==t.slice(-4),a="of-type"===e;return 1===i&&0===o?function(t){return!!t.parentNode}:function(e,n,l){var u,c,f,p,d,h,g=r!==s?"nextSibling":"previousSibling",v=e.parentNode,m=a&&e.nodeName.toLowerCase(),y=!l&&!a,b=!1;if(v){if(r){for(;g;){for(p=e;p=p[g];)if(a?p.nodeName.toLowerCase()===m:1===p.nodeType)return!1;h=g="only"===t&&!h&&"nextSibling"}return!0}if(h=[s?v.firstChild:v.lastChild],s&&y){for(p=v,f=p[F]||(p[F]={}),c=f[p.uniqueID]||(f[p.uniqueID]={}),u=c[t]||[],d=u[0]===W&&u[1],b=d&&u[2],p=d&&v.childNodes[d];p=++d&&p&&p[g]||(b=d=0)||h.pop();)if(1===p.nodeType&&++b&&p===e){c[t]=[W,d,b];break}}else if(y&&(p=e,f=p[F]||(p[F]={}),c=f[p.uniqueID]||(f[p.uniqueID]={}),u=c[t]||[],d=u[0]===W&&u[1],b=d),b===!1)for(;(p=++d&&p&&p[g]||(b=d=0)||h.pop())&&((a?p.nodeName.toLowerCase()!==m:1!==p.nodeType)||!++b||(y&&(f=p[F]||(p[F]={}),c=f[p.uniqueID]||(f[p.uniqueID]={}),c[t]=[W,b]),p!==e)););return b-=o,b===i||b%i===0&&b/i>=0}}},PSEUDO:function(t,n){var o,r=T.pseudos[t]||T.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return r[F]?r(n):r.length>1?(o=[t,t,"",n],T.setFilters.hasOwnProperty(t.toLowerCase())?i(function(t,e){for(var i,o=r(t,n),s=o.length;s--;)i=tt(t,o[s]),t[i]=!(e[i]=o[s])}):function(t){return r(t,0,o)}):r}},pseudos:{not:i(function(t){var e=[],n=[],o=$(t.replace(at,"$1"));return o[F]?i(function(t,e,n,i){for(var r,s=o(t,null,i,[]),a=t.length;a--;)(r=s[a])&&(t[a]=!(e[a]=r))}):function(t,i,r){return e[0]=t,o(e,null,r,n),e[0]=null,!n.pop()}}),has:i(function(t){return function(n){return e(t,n).length>0}}),contains:i(function(t){return t=t.replace(xt,wt),function(e){return(e.textContent||e.innerText||C(e)).indexOf(t)>-1}}),lang:i(function(t){return pt.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(xt,wt).toLowerCase(),function(e){var n;do if(n=L?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return n=n.toLowerCase(),n===t||0===n.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var n=t.location&&t.location.hash;return n&&n.slice(1)===e.id},root:function(t){return t===I},focus:function(t){return t===O.activeElement&&(!O.hasFocus||O.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:function(t){return t.disabled===!1},disabled:function(t){return t.disabled===!0},checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,t.selected===!0},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!T.pseudos.empty(t)},header:function(t){return gt.test(t.nodeName)},input:function(t){return ht.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:u(function(){return[0]}),last:u(function(t,e){return[e-1]}),eq:u(function(t,e,n){return[0>n?n+e:n]}),even:u(function(t,e){for(var n=0;e>n;n+=2)t.push(n);return t}),odd:u(function(t,e){for(var n=1;e>n;n+=2)t.push(n);return t}),lt:u(function(t,e,n){for(var i=0>n?n+e:n;--i>=0;)t.push(i);return t}),gt:u(function(t,e,n){for(var i=0>n?n+e:n;++i<e;)t.push(i);return t})}},T.pseudos.nth=T.pseudos.eq;for(x in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})T.pseudos[x]=a(x);for(x in{submit:!0,reset:!0})T.pseudos[x]=l(x);return f.prototype=T.filters=T.pseudos,T.setFilters=new f,k=e.tokenize=function(t,n){var i,o,r,s,a,l,u,c=U[t+" "];if(c)return n?0:c.slice(0);for(a=t,l=[],u=T.preFilter;a;){i&&!(o=lt.exec(a))||(o&&(a=a.slice(o[0].length)||a),l.push(r=[])),i=!1,(o=ut.exec(a))&&(i=o.shift(),r.push({value:i,type:o[0].replace(at," ")}),a=a.slice(i.length));for(s in T.filter)!(o=dt[s].exec(a))||u[s]&&!(o=u[s](o))||(i=o.shift(),r.push({value:i,type:s,matches:o}),a=a.slice(i.length));if(!i)break}return n?a.length:a?e.error(t):U(t,l).slice(0)},$=e.compile=function(t,e){var n,i=[],o=[],r=z[t+" "];if(!r){for(e||(e=k(t)),n=e.length;n--;)r=y(e[n]),r[F]?i.push(r):o.push(r);r=z(t,b(o,i)),r.selector=t}return r},S=e.select=function(t,e,n,i){var o,r,s,a,l,u="function"==typeof t&&t,f=!i&&k(t=u.selector||t);if(n=n||[],1===f.length){if(r=f[0]=f[0].slice(0),r.length>2&&"ID"===(s=r[0]).type&&w.getById&&9===e.nodeType&&L&&T.relative[r[1].type]){if(e=(T.find.ID(s.matches[0].replace(xt,wt),e)||[])[0],!e)return n;u&&(e=e.parentNode),t=t.slice(r.shift().value.length)}for(o=dt.needsContext.test(t)?0:r.length;o--&&(s=r[o],!T.relative[a=s.type]);)if((l=T.find[a])&&(i=l(s.matches[0].replace(xt,wt),yt.test(r[0].type)&&c(e.parentNode)||e))){if(r.splice(o,1),t=i.length&&p(r),!t)return J.apply(n,i),n;break}}return(u||$(t,f))(i,e,!L,n,!e||yt.test(t)&&c(e.parentNode)||e),n},w.sortStable=F.split("").sort(V).join("")===F,w.detectDuplicates=!!j,A(),w.sortDetached=o(function(t){return 1&t.compareDocumentPosition(O.createElement("div"))}),o(function(t){return t.innerHTML="<a href='#'></a>","#"===t.firstChild.getAttribute("href")})||r("type|href|height|width",function(t,e,n){return n?void 0:t.getAttribute(e,"type"===e.toLowerCase()?1:2)}),w.attributes&&o(function(t){return t.innerHTML="<input/>",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")})||r("value",function(t,e,n){return n||"input"!==t.nodeName.toLowerCase()?void 0:t.defaultValue}),o(function(t){return null==t.getAttribute("disabled")})||r(et,function(t,e,n){var i;return n?void 0:t[e]===!0?e.toLowerCase():(i=t.getAttributeNode(e))&&i.specified?i.value:null}),e}(t);rt.find=ct,rt.expr=ct.selectors,rt.expr[":"]=rt.expr.pseudos,rt.uniqueSort=rt.unique=ct.uniqueSort,rt.text=ct.getText,rt.isXMLDoc=ct.isXML,rt.contains=ct.contains;var ft=function(t,e,n){for(var i=[],o=void 0!==n;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(o&&rt(t).is(n))break;i.push(t)}return i},pt=function(t,e){for(var n=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&n.push(t);return n},dt=rt.expr.match.needsContext,ht=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,gt=/^.[^:#\[\.,]*$/;rt.filter=function(t,e,n){var i=e[0];return n&&(t=":not("+t+")"),1===e.length&&1===i.nodeType?rt.find.matchesSelector(i,t)?[i]:[]:rt.find.matches(t,rt.grep(e,function(t){return 1===t.nodeType}))},rt.fn.extend({find:function(t){var e,n=this.length,i=[],o=this;if("string"!=typeof t)return this.pushStack(rt(t).filter(function(){for(e=0;n>e;e++)if(rt.contains(o[e],this))return!0}));for(e=0;n>e;e++)rt.find(t,o[e],i);return i=this.pushStack(n>1?rt.unique(i):i),i.selector=this.selector?this.selector+" "+t:t,i},filter:function(t){return this.pushStack(i(this,t||[],!1))},not:function(t){return this.pushStack(i(this,t||[],!0))},is:function(t){return!!i(this,"string"==typeof t&&dt.test(t)?rt(t):t||[],!1).length}});var vt,mt=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,yt=rt.fn.init=function(t,e,n){var i,o;if(!t)return this;if(n=n||vt,"string"==typeof t){if(i="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:mt.exec(t),!i||!i[1]&&e)return!e||e.jquery?(e||n).find(t):this.constructor(e).find(t);if(i[1]){if(e=e instanceof rt?e[0]:e,rt.merge(this,rt.parseHTML(i[1],e&&e.nodeType?e.ownerDocument||e:Y,!0)),ht.test(i[1])&&rt.isPlainObject(e))for(i in e)rt.isFunction(this[i])?this[i](e[i]):this.attr(i,e[i]);return this}return o=Y.getElementById(i[2]),o&&o.parentNode&&(this.length=1,this[0]=o),this.context=Y,this.selector=t,this}return t.nodeType?(this.context=this[0]=t,this.length=1,this):rt.isFunction(t)?void 0!==n.ready?n.ready(t):t(rt):(void 0!==t.selector&&(this.selector=t.selector,this.context=t.context),rt.makeArray(t,this))};yt.prototype=rt.fn,vt=rt(Y);var bt=/^(?:parents|prev(?:Until|All))/,xt={children:!0,contents:!0,next:!0,prev:!0};rt.fn.extend({has:function(t){var e=rt(t,this),n=e.length;return this.filter(function(){for(var t=0;n>t;t++)if(rt.contains(this,e[t]))return!0})},closest:function(t,e){for(var n,i=0,o=this.length,r=[],s=dt.test(t)||"string"!=typeof t?rt(t,e||this.context):0;o>i;i++)for(n=this[i];n&&n!==e;n=n.parentNode)if(n.nodeType<11&&(s?s.index(n)>-1:1===n.nodeType&&rt.find.matchesSelector(n,t))){r.push(n);break}return this.pushStack(r.length>1?rt.uniqueSort(r):r)},index:function(t){return t?"string"==typeof t?Z.call(rt(t),this[0]):Z.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(rt.uniqueSort(rt.merge(this.get(),rt(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),rt.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return ft(t,"parentNode")},parentsUntil:function(t,e,n){return ft(t,"parentNode",n)},next:function(t){return o(t,"nextSibling")},prev:function(t){return o(t,"previousSibling")},nextAll:function(t){return ft(t,"nextSibling")},prevAll:function(t){return ft(t,"previousSibling")},nextUntil:function(t,e,n){return ft(t,"nextSibling",n)},prevUntil:function(t,e,n){return ft(t,"previousSibling",n)},siblings:function(t){return pt((t.parentNode||{}).firstChild,t)},children:function(t){return pt(t.firstChild)},contents:function(t){return t.contentDocument||rt.merge([],t.childNodes)}},function(t,e){rt.fn[t]=function(n,i){var o=rt.map(this,e,n);return"Until"!==t.slice(-5)&&(i=n),i&&"string"==typeof i&&(o=rt.filter(i,o)),this.length>1&&(xt[t]||rt.uniqueSort(o),bt.test(t)&&o.reverse()),this.pushStack(o)}});var wt=/\S+/g;rt.Callbacks=function(t){t="string"==typeof t?r(t):rt.extend({},t);var e,n,i,o,s=[],a=[],l=-1,u=function(){for(o=t.once,i=e=!0;a.length;l=-1)for(n=a.shift();++l<s.length;)s[l].apply(n[0],n[1])===!1&&t.stopOnFalse&&(l=s.length,n=!1);t.memory||(n=!1),e=!1,o&&(s=n?[]:"")},c={add:function(){return s&&(n&&!e&&(l=s.length-1,a.push(n)),function i(e){rt.each(e,function(e,n){rt.isFunction(n)?t.unique&&c.has(n)||s.push(n):n&&n.length&&"string"!==rt.type(n)&&i(n)})}(arguments),n&&!e&&u()),this},remove:function(){return rt.each(arguments,function(t,e){for(var n;(n=rt.inArray(e,s,n))>-1;)s.splice(n,1),l>=n&&l--}),this},has:function(t){return t?rt.inArray(t,s)>-1:s.length>0},empty:function(){return s&&(s=[]),this},disable:function(){return o=a=[],s=n="",this},disabled:function(){return!s},lock:function(){return o=a=[],n||(s=n=""),this},locked:function(){return!!o},fireWith:function(t,n){return o||(n=n||[],n=[t,n.slice?n.slice():n],a.push(n),e||u()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!i}};return c},rt.extend({Deferred:function(t){var e=[["resolve","done",rt.Callbacks("once memory"),"resolved"],["reject","fail",rt.Callbacks("once memory"),"rejected"],["notify","progress",rt.Callbacks("memory")]],n="pending",i={state:function(){return n},always:function(){return o.done(arguments).fail(arguments),this},then:function(){var t=arguments;return rt.Deferred(function(n){rt.each(e,function(e,r){var s=rt.isFunction(t[e])&&t[e];o[r[1]](function(){var t=s&&s.apply(this,arguments);t&&rt.isFunction(t.promise)?t.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+"With"](this===i?n.promise():this,s?[t]:arguments)})}),t=null}).promise()},promise:function(t){return null!=t?rt.extend(t,i):i}},o={};return i.pipe=i.then,rt.each(e,function(t,r){var s=r[2],a=r[3];i[r[1]]=s.add,a&&s.add(function(){n=a},e[1^t][2].disable,e[2][2].lock),o[r[0]]=function(){return o[r[0]+"With"](this===o?i:this,arguments),this},o[r[0]+"With"]=s.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(t){var e,n,i,o=0,r=G.call(arguments),s=r.length,a=1!==s||t&&rt.isFunction(t.promise)?s:0,l=1===a?t:rt.Deferred(),u=function(t,n,i){return function(o){n[t]=this,i[t]=arguments.length>1?G.call(arguments):o,i===e?l.notifyWith(n,i):--a||l.resolveWith(n,i)}};if(s>1)for(e=new Array(s),n=new Array(s),i=new Array(s);s>o;o++)r[o]&&rt.isFunction(r[o].promise)?r[o].promise().progress(u(o,n,e)).done(u(o,i,r)).fail(l.reject):--a;return a||l.resolveWith(i,r),l.promise()}});var Tt;rt.fn.ready=function(t){return rt.ready.promise().done(t),this},rt.extend({isReady:!1,readyWait:1,holdReady:function(t){t?rt.readyWait++:rt.ready(!0)},ready:function(t){(t===!0?--rt.readyWait:rt.isReady)||(rt.isReady=!0,t!==!0&&--rt.readyWait>0||(Tt.resolveWith(Y,[rt]),rt.fn.triggerHandler&&(rt(Y).triggerHandler("ready"),rt(Y).off("ready"))))}}),rt.ready.promise=function(e){return Tt||(Tt=rt.Deferred(),"complete"===Y.readyState||"loading"!==Y.readyState&&!Y.documentElement.doScroll?t.setTimeout(rt.ready):(Y.addEventListener("DOMContentLoaded",s),t.addEventListener("load",s))),Tt.promise(e)},rt.ready.promise();var Ct=function(t,e,n,i,o,r,s){var a=0,l=t.length,u=null==n;if("object"===rt.type(n)){o=!0;for(a in n)Ct(t,e,a,n[a],!0,r,s)}else if(void 0!==i&&(o=!0,rt.isFunction(i)||(s=!0),u&&(s?(e.call(t,i),e=null):(u=e,e=function(t,e,n){return u.call(rt(t),n)})),e))for(;l>a;a++)e(t[a],n,s?i:i.call(t[a],a,e(t[a],n)));return o?t:u?e.call(t):l?e(t[0],n):r},Et=function(t){return 1===t.nodeType||9===t.nodeType||!+t.nodeType};a.uid=1,a.prototype={register:function(t,e){var n=e||{};return t.nodeType?t[this.expando]=n:Object.defineProperty(t,this.expando,{value:n,writable:!0,configurable:!0}),t[this.expando]},cache:function(t){if(!Et(t))return{};var e=t[this.expando];return e||(e={},Et(t)&&(t.nodeType?t[this.expando]=e:Object.defineProperty(t,this.expando,{value:e,configurable:!0}))),e},set:function(t,e,n){var i,o=this.cache(t);if("string"==typeof e)o[e]=n;else for(i in e)o[i]=e[i];return o},get:function(t,e){return void 0===e?this.cache(t):t[this.expando]&&t[this.expando][e]},access:function(t,e,n){var i;return void 0===e||e&&"string"==typeof e&&void 0===n?(i=this.get(t,e),void 0!==i?i:this.get(t,rt.camelCase(e))):(this.set(t,e,n),void 0!==n?n:e)},remove:function(t,e){var n,i,o,r=t[this.expando];if(void 0!==r){if(void 0===e)this.register(t);else{rt.isArray(e)?i=e.concat(e.map(rt.camelCase)):(o=rt.camelCase(e),e in r?i=[e,o]:(i=o,i=i in r?[i]:i.match(wt)||[])),n=i.length;for(;n--;)delete r[i[n]]}(void 0===e||rt.isEmptyObject(r))&&(t.nodeType?t[this.expando]=void 0:delete t[this.expando])}},hasData:function(t){var e=t[this.expando];return void 0!==e&&!rt.isEmptyObject(e)}};var kt=new a,$t=new a,St=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Nt=/[A-Z]/g;rt.extend({hasData:function(t){return $t.hasData(t)||kt.hasData(t)},data:function(t,e,n){return $t.access(t,e,n)},removeData:function(t,e){$t.remove(t,e)},_data:function(t,e,n){return kt.access(t,e,n)},_removeData:function(t,e){kt.remove(t,e)}}),rt.fn.extend({data:function(t,e){var n,i,o,r=this[0],s=r&&r.attributes;if(void 0===t){if(this.length&&(o=$t.get(r),1===r.nodeType&&!kt.get(r,"hasDataAttrs"))){for(n=s.length;n--;)s[n]&&(i=s[n].name,0===i.indexOf("data-")&&(i=rt.camelCase(i.slice(5)),l(r,i,o[i])));kt.set(r,"hasDataAttrs",!0)}return o}return"object"==typeof t?this.each(function(){$t.set(this,t)}):Ct(this,function(e){var n,i;if(r&&void 0===e){if(n=$t.get(r,t)||$t.get(r,t.replace(Nt,"-$&").toLowerCase()),void 0!==n)return n;if(i=rt.camelCase(t),n=$t.get(r,i),void 0!==n)return n;if(n=l(r,i,void 0),void 0!==n)return n}else i=rt.camelCase(t),this.each(function(){var n=$t.get(this,i);$t.set(this,i,e),t.indexOf("-")>-1&&void 0!==n&&$t.set(this,t,e)})},null,e,arguments.length>1,null,!0)},removeData:function(t){return this.each(function(){$t.remove(this,t)})}}),rt.extend({queue:function(t,e,n){var i;return t?(e=(e||"fx")+"queue",i=kt.get(t,e),n&&(!i||rt.isArray(n)?i=kt.access(t,e,rt.makeArray(n)):i.push(n)),i||[]):void 0},dequeue:function(t,e){e=e||"fx";var n=rt.queue(t,e),i=n.length,o=n.shift(),r=rt._queueHooks(t,e),s=function(){rt.dequeue(t,e)};"inprogress"===o&&(o=n.shift(),i--),o&&("fx"===e&&n.unshift("inprogress"),delete r.stop,o.call(t,s,r)),!i&&r&&r.empty.fire()},_queueHooks:function(t,e){var n=e+"queueHooks";return kt.get(t,n)||kt.access(t,n,{empty:rt.Callbacks("once memory").add(function(){kt.remove(t,[e+"queue",n])})})}}),rt.fn.extend({queue:function(t,e){var n=2;return"string"!=typeof t&&(e=t,t="fx",n--),arguments.length<n?rt.queue(this[0],t):void 0===e?this:this.each(function(){var n=rt.queue(this,t,e);rt._queueHooks(this,t),"fx"===t&&"inprogress"!==n[0]&&rt.dequeue(this,t)})},dequeue:function(t){return this.each(function(){rt.dequeue(this,t)})},clearQueue:function(t){return this.queue(t||"fx",[])},promise:function(t,e){var n,i=1,o=rt.Deferred(),r=this,s=this.length,a=function(){--i||o.resolveWith(r,[r])};for("string"!=typeof t&&(e=t,t=void 0),t=t||"fx";s--;)n=kt.get(r[s],t+"queueHooks"),n&&n.empty&&(i++,n.empty.add(a));return a(),o.promise(e)}});var Dt=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,jt=new RegExp("^(?:([+-])=|)("+Dt+")([a-z%]*)$","i"),At=["Top","Right","Bottom","Left"],Ot=function(t,e){return t=e||t,"none"===rt.css(t,"display")||!rt.contains(t.ownerDocument,t)},It=/^(?:checkbox|radio)$/i,Lt=/<([\w:-]+)/,Rt=/^$|\/(?:java|ecma)script/i,qt={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};qt.optgroup=qt.option,qt.tbody=qt.tfoot=qt.colgroup=qt.caption=qt.thead,qt.th=qt.td;var Ht=/<|&#?\w+;/;!function(){var t=Y.createDocumentFragment(),e=t.appendChild(Y.createElement("div")),n=Y.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),it.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",it.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var Pt=/^key/,Ft=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Mt=/^([^.]*)(?:\.(.+)|)/;rt.event={global:{},add:function(t,e,n,i,o){var r,s,a,l,u,c,f,p,d,h,g,v=kt.get(t);if(v)for(n.handler&&(r=n,n=r.handler,o=r.selector),n.guid||(n.guid=rt.guid++),(l=v.events)||(l=v.events={}),(s=v.handle)||(s=v.handle=function(e){return"undefined"!=typeof rt&&rt.event.triggered!==e.type?rt.event.dispatch.apply(t,arguments):void 0}),e=(e||"").match(wt)||[""],u=e.length;u--;)a=Mt.exec(e[u])||[],d=g=a[1],h=(a[2]||"").split(".").sort(),d&&(f=rt.event.special[d]||{},d=(o?f.delegateType:f.bindType)||d,f=rt.event.special[d]||{},c=rt.extend({type:d,origType:g,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&&rt.expr.match.needsContext.test(o),namespace:h.join(".")},r),(p=l[d])||(p=l[d]=[],p.delegateCount=0,f.setup&&f.setup.call(t,i,h,s)!==!1||t.addEventListener&&t.addEventListener(d,s)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),o?p.splice(p.delegateCount++,0,c):p.push(c),rt.event.global[d]=!0)},remove:function(t,e,n,i,o){var r,s,a,l,u,c,f,p,d,h,g,v=kt.hasData(t)&&kt.get(t);if(v&&(l=v.events)){for(e=(e||"").match(wt)||[""],u=e.length;u--;)if(a=Mt.exec(e[u])||[],d=g=a[1],h=(a[2]||"").split(".").sort(),d){for(f=rt.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,p=l[d]||[],a=a[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=r=p.length;r--;)c=p[r],!o&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||i&&i!==c.selector&&("**"!==i||!c.selector)||(p.splice(r,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(t,c));s&&!p.length&&(f.teardown&&f.teardown.call(t,h,v.handle)!==!1||rt.removeEvent(t,d,v.handle),delete l[d])}else for(d in l)rt.event.remove(t,d+e[u],n,i,!0);rt.isEmptyObject(l)&&kt.remove(t,"handle events")}},dispatch:function(t){t=rt.event.fix(t);var e,n,i,o,r,s=[],a=G.call(arguments),l=(kt.get(this,"events")||{})[t.type]||[],u=rt.event.special[t.type]||{};if(a[0]=t,t.delegateTarget=this,!u.preDispatch||u.preDispatch.call(this,t)!==!1){for(s=rt.event.handlers.call(this,t,l),e=0;(o=s[e++])&&!t.isPropagationStopped();)for(t.currentTarget=o.elem,n=0;(r=o.handlers[n++])&&!t.isImmediatePropagationStopped();)t.rnamespace&&!t.rnamespace.test(r.namespace)||(t.handleObj=r,t.data=r.data,i=((rt.event.special[r.origType]||{}).handle||r.handler).apply(o.elem,a),void 0!==i&&(t.result=i)===!1&&(t.preventDefault(),t.stopPropagation()));return u.postDispatch&&u.postDispatch.call(this,t),t.result}},handlers:function(t,e){var n,i,o,r,s=[],a=e.delegateCount,l=t.target;if(a&&l.nodeType&&("click"!==t.type||isNaN(t.button)||t.button<1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==t.type)){for(i=[],n=0;a>n;n++)r=e[n],o=r.selector+" ",void 0===i[o]&&(i[o]=r.needsContext?rt(o,this).index(l)>-1:rt.find(o,this,null,[l]).length),i[o]&&i.push(r);i.length&&s.push({elem:l,handlers:i})}return a<e.length&&s.push({elem:this,handlers:e.slice(a)}),s},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(t,e){return null==t.which&&(t.which=null!=e.charCode?e.charCode:e.keyCode),t}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(t,e){var n,i,o,r=e.button;return null==t.pageX&&null!=e.clientX&&(n=t.target.ownerDocument||Y,i=n.documentElement,o=n.body,t.pageX=e.clientX+(i&&i.scrollLeft||o&&o.scrollLeft||0)-(i&&i.clientLeft||o&&o.clientLeft||0),t.pageY=e.clientY+(i&&i.scrollTop||o&&o.scrollTop||0)-(i&&i.clientTop||o&&o.clientTop||0)),t.which||void 0===r||(t.which=1&r?1:2&r?3:4&r?2:0),t}},fix:function(t){if(t[rt.expando])return t;var e,n,i,o=t.type,r=t,s=this.fixHooks[o];for(s||(this.fixHooks[o]=s=Ft.test(o)?this.mouseHooks:Pt.test(o)?this.keyHooks:{}),i=s.props?this.props.concat(s.props):this.props,t=new rt.Event(r),e=i.length;e--;)n=i[e],t[n]=r[n];return t.target||(t.target=Y),3===t.target.nodeType&&(t.target=t.target.parentNode),s.filter?s.filter(t,r):t},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==g()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===g()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&rt.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(t){return rt.nodeName(t.target,"a")}},beforeunload:{postDispatch:function(t){void 0!==t.result&&t.originalEvent&&(t.originalEvent.returnValue=t.result)}}}},rt.removeEvent=function(t,e,n){t.removeEventListener&&t.removeEventListener(e,n)},rt.Event=function(t,e){return this instanceof rt.Event?(t&&t.type?(this.originalEvent=t,this.type=t.type,this.isDefaultPrevented=t.defaultPrevented||void 0===t.defaultPrevented&&t.returnValue===!1?d:h):this.type=t,e&&rt.extend(this,e),this.timeStamp=t&&t.timeStamp||rt.now(),void(this[rt.expando]=!0)):new rt.Event(t,e)},rt.Event.prototype={constructor:rt.Event,isDefaultPrevented:h,isPropagationStopped:h,isImmediatePropagationStopped:h,preventDefault:function(){var t=this.originalEvent;this.isDefaultPrevented=d,t&&t.preventDefault()},stopPropagation:function(){var t=this.originalEvent;this.isPropagationStopped=d,t&&t.stopPropagation()},stopImmediatePropagation:function(){var t=this.originalEvent;this.isImmediatePropagationStopped=d,t&&t.stopImmediatePropagation(),this.stopPropagation()}},rt.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(t,e){rt.event.special[t]={delegateType:e,bindType:e,handle:function(t){var n,i=this,o=t.relatedTarget,r=t.handleObj;return o&&(o===i||rt.contains(i,o))||(t.type=r.origType,n=r.handler.apply(this,arguments),t.type=e),n}}}),rt.fn.extend({on:function(t,e,n,i){return v(this,t,e,n,i)},one:function(t,e,n,i){return v(this,t,e,n,i,1)},off:function(t,e,n){var i,o;if(t&&t.preventDefault&&t.handleObj)return i=t.handleObj,rt(t.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof t){for(o in t)this.off(o,e,t[o]);return this}return e!==!1&&"function"!=typeof e||(n=e,e=void 0),n===!1&&(n=h),this.each(function(){rt.event.remove(this,t,n,e)})}});var Wt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,_t=/<script|<style|<link/i,Bt=/checked\s*(?:[^=]|=\s*.checked.)/i,Ut=/^true\/(.*)/,zt=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;rt.extend({htmlPrefilter:function(t){return t.replace(Wt,"<$1></$2>")},clone:function(t,e,n){var i,o,r,s,a=t.cloneNode(!0),l=rt.contains(t.ownerDocument,t);if(!(it.noCloneChecked||1!==t.nodeType&&11!==t.nodeType||rt.isXMLDoc(t)))for(s=c(a),r=c(t),i=0,o=r.length;o>i;i++)w(r[i],s[i]);if(e)if(n)for(r=r||c(t),s=s||c(a),i=0,o=r.length;o>i;i++)x(r[i],s[i]);else x(t,a);return s=c(a,"script"),s.length>0&&f(s,!l&&c(t,"script")),a},cleanData:function(t){for(var e,n,i,o=rt.event.special,r=0;void 0!==(n=t[r]);r++)if(Et(n)){if(e=n[kt.expando]){if(e.events)for(i in e.events)o[i]?rt.event.remove(n,i):rt.removeEvent(n,i,e.handle);n[kt.expando]=void 0}n[$t.expando]&&(n[$t.expando]=void 0)}}}),rt.fn.extend({domManip:T,detach:function(t){return C(this,t,!0)},remove:function(t){return C(this,t)},text:function(t){return Ct(this,function(t){return void 0===t?rt.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=t)})},null,t,arguments.length)},append:function(){return T(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=m(this,t);e.appendChild(t)}})},prepend:function(){return T(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=m(this,t);e.insertBefore(t,e.firstChild)}})},before:function(){return T(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this)})},after:function(){return T(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)})},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(rt.cleanData(c(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null==t?!1:t,e=null==e?t:e,this.map(function(){return rt.clone(this,t,e)})},html:function(t){return Ct(this,function(t){var e=this[0]||{},n=0,i=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!_t.test(t)&&!qt[(Lt.exec(t)||["",""])[1].toLowerCase()]){t=rt.htmlPrefilter(t);try{for(;i>n;n++)e=this[n]||{},1===e.nodeType&&(rt.cleanData(c(e,!1)),e.innerHTML=t);e=0}catch(o){}}e&&this.empty().append(t)},null,t,arguments.length)},replaceWith:function(){var t=[];return T(this,arguments,function(e){var n=this.parentNode;rt.inArray(this,t)<0&&(rt.cleanData(c(this)),n&&n.replaceChild(e,this))},t)}}),rt.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(t,e){rt.fn[t]=function(t){for(var n,i=[],o=rt(t),r=o.length-1,s=0;r>=s;s++)n=s===r?this:this.clone(!0),rt(o[s])[e](n),J.apply(i,n.get());return this.pushStack(i)}});var Vt,Xt={HTML:"block",BODY:"block"},Qt=/^margin/,Yt=new RegExp("^("+Dt+")(?!px)[a-z%]+$","i"),Gt=function(e){var n=e.ownerDocument.defaultView;return n&&n.opener||(n=t),n.getComputedStyle(e)},Kt=function(t,e,n,i){var o,r,s={};for(r in e)s[r]=t.style[r],t.style[r]=e[r];o=n.apply(t,i||[]);for(r in e)t.style[r]=s[r];return o},Jt=Y.documentElement;!function(){function e(){a.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",a.innerHTML="",Jt.appendChild(s);var e=t.getComputedStyle(a);n="1%"!==e.top,r="2px"===e.marginLeft,i="4px"===e.width,a.style.marginRight="50%",o="4px"===e.marginRight,Jt.removeChild(s)}var n,i,o,r,s=Y.createElement("div"),a=Y.createElement("div");a.style&&(a.style.backgroundClip="content-box",a.cloneNode(!0).style.backgroundClip="",it.clearCloneStyle="content-box"===a.style.backgroundClip,s.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",s.appendChild(a),rt.extend(it,{pixelPosition:function(){return e(),n},boxSizingReliable:function(){return null==i&&e(),i},pixelMarginRight:function(){return null==i&&e(),o},reliableMarginLeft:function(){return null==i&&e(),r},reliableMarginRight:function(){var e,n=a.appendChild(Y.createElement("div"));return n.style.cssText=a.style.cssText="-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",n.style.marginRight=n.style.width="0",a.style.width="1px",Jt.appendChild(s),e=!parseFloat(t.getComputedStyle(n).marginRight),Jt.removeChild(s),a.removeChild(n),e}}))}();var Zt=/^(none|table(?!-c[ea]).+)/,te={position:"absolute",visibility:"hidden",display:"block"},ee={letterSpacing:"0",fontWeight:"400"},ne=["Webkit","O","Moz","ms"],ie=Y.createElement("div").style;rt.extend({cssHooks:{opacity:{get:function(t,e){if(e){var n=$(t,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(t,e,n,i){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var o,r,s,a=rt.camelCase(e),l=t.style;return e=rt.cssProps[a]||(rt.cssProps[a]=N(a)||a),s=rt.cssHooks[e]||rt.cssHooks[a],void 0===n?s&&"get"in s&&void 0!==(o=s.get(t,!1,i))?o:l[e]:(r=typeof n,"string"===r&&(o=jt.exec(n))&&o[1]&&(n=u(t,e,o),r="number"),null!=n&&n===n&&("number"===r&&(n+=o&&o[3]||(rt.cssNumber[a]?"":"px")),it.clearCloneStyle||""!==n||0!==e.indexOf("background")||(l[e]="inherit"),s&&"set"in s&&void 0===(n=s.set(t,n,i))||(l[e]=n)),
 
void 0)}},css:function(t,e,n,i){var o,r,s,a=rt.camelCase(e);return e=rt.cssProps[a]||(rt.cssProps[a]=N(a)||a),s=rt.cssHooks[e]||rt.cssHooks[a],s&&"get"in s&&(o=s.get(t,!0,n)),void 0===o&&(o=$(t,e,i)),"normal"===o&&e in ee&&(o=ee[e]),""===n||n?(r=parseFloat(o),n===!0||isFinite(r)?r||0:o):o}}),rt.each(["height","width"],function(t,e){rt.cssHooks[e]={get:function(t,n,i){return n?Zt.test(rt.css(t,"display"))&&0===t.offsetWidth?Kt(t,te,function(){return A(t,e,i)}):A(t,e,i):void 0},set:function(t,n,i){var o,r=i&&Gt(t),s=i&&j(t,e,i,"border-box"===rt.css(t,"boxSizing",!1,r),r);return s&&(o=jt.exec(n))&&"px"!==(o[3]||"px")&&(t.style[e]=n,n=rt.css(t,e)),D(t,n,s)}}}),rt.cssHooks.marginLeft=S(it.reliableMarginLeft,function(t,e){return e?(parseFloat($(t,"marginLeft"))||t.getBoundingClientRect().left-Kt(t,{marginLeft:0},function(){return t.getBoundingClientRect().left}))+"px":void 0}),rt.cssHooks.marginRight=S(it.reliableMarginRight,function(t,e){return e?Kt(t,{display:"inline-block"},$,[t,"marginRight"]):void 0}),rt.each({margin:"",padding:"",border:"Width"},function(t,e){rt.cssHooks[t+e]={expand:function(n){for(var i=0,o={},r="string"==typeof n?n.split(" "):[n];4>i;i++)o[t+At[i]+e]=r[i]||r[i-2]||r[0];return o}},Qt.test(t)||(rt.cssHooks[t+e].set=D)}),rt.fn.extend({css:function(t,e){return Ct(this,function(t,e,n){var i,o,r={},s=0;if(rt.isArray(e)){for(i=Gt(t),o=e.length;o>s;s++)r[e[s]]=rt.css(t,e[s],!1,i);return r}return void 0!==n?rt.style(t,e,n):rt.css(t,e)},t,e,arguments.length>1)},show:function(){return O(this,!0)},hide:function(){return O(this)},toggle:function(t){return"boolean"==typeof t?t?this.show():this.hide():this.each(function(){Ot(this)?rt(this).show():rt(this).hide()})}}),rt.Tween=I,I.prototype={constructor:I,init:function(t,e,n,i,o,r){this.elem=t,this.prop=n,this.easing=o||rt.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=i,this.unit=r||(rt.cssNumber[n]?"":"px")},cur:function(){var t=I.propHooks[this.prop];return t&&t.get?t.get(this):I.propHooks._default.get(this)},run:function(t){var e,n=I.propHooks[this.prop];return this.options.duration?this.pos=e=rt.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):I.propHooks._default.set(this),this}},I.prototype.init.prototype=I.prototype,I.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=rt.css(t.elem,t.prop,""),e&&"auto"!==e?e:0)},set:function(t){rt.fx.step[t.prop]?rt.fx.step[t.prop](t):1!==t.elem.nodeType||null==t.elem.style[rt.cssProps[t.prop]]&&!rt.cssHooks[t.prop]?t.elem[t.prop]=t.now:rt.style(t.elem,t.prop,t.now+t.unit)}}},I.propHooks.scrollTop=I.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},rt.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},rt.fx=I.prototype.init,rt.fx.step={};var oe,re,se=/^(?:toggle|show|hide)$/,ae=/queueHooks$/;rt.Animation=rt.extend(F,{tweeners:{"*":[function(t,e){var n=this.createTween(t,e);return u(n.elem,t,jt.exec(e),n),n}]},tweener:function(t,e){rt.isFunction(t)?(e=t,t=["*"]):t=t.match(wt);for(var n,i=0,o=t.length;o>i;i++)n=t[i],F.tweeners[n]=F.tweeners[n]||[],F.tweeners[n].unshift(e)},prefilters:[H],prefilter:function(t,e){e?F.prefilters.unshift(t):F.prefilters.push(t)}}),rt.speed=function(t,e,n){var i=t&&"object"==typeof t?rt.extend({},t):{complete:n||!n&&e||rt.isFunction(t)&&t,duration:t,easing:n&&e||e&&!rt.isFunction(e)&&e};return i.duration=rt.fx.off?0:"number"==typeof i.duration?i.duration:i.duration in rt.fx.speeds?rt.fx.speeds[i.duration]:rt.fx.speeds._default,null!=i.queue&&i.queue!==!0||(i.queue="fx"),i.old=i.complete,i.complete=function(){rt.isFunction(i.old)&&i.old.call(this),i.queue&&rt.dequeue(this,i.queue)},i},rt.fn.extend({fadeTo:function(t,e,n,i){return this.filter(Ot).css("opacity",0).show().end().animate({opacity:e},t,n,i)},animate:function(t,e,n,i){var o=rt.isEmptyObject(t),r=rt.speed(e,n,i),s=function(){var e=F(this,rt.extend({},t),r);(o||kt.get(this,"finish"))&&e.stop(!0)};return s.finish=s,o||r.queue===!1?this.each(s):this.queue(r.queue,s)},stop:function(t,e,n){var i=function(t){var e=t.stop;delete t.stop,e(n)};return"string"!=typeof t&&(n=e,e=t,t=void 0),e&&t!==!1&&this.queue(t||"fx",[]),this.each(function(){var e=!0,o=null!=t&&t+"queueHooks",r=rt.timers,s=kt.get(this);if(o)s[o]&&s[o].stop&&i(s[o]);else for(o in s)s[o]&&s[o].stop&&ae.test(o)&&i(s[o]);for(o=r.length;o--;)r[o].elem!==this||null!=t&&r[o].queue!==t||(r[o].anim.stop(n),e=!1,r.splice(o,1));!e&&n||rt.dequeue(this,t)})},finish:function(t){return t!==!1&&(t=t||"fx"),this.each(function(){var e,n=kt.get(this),i=n[t+"queue"],o=n[t+"queueHooks"],r=rt.timers,s=i?i.length:0;for(n.finish=!0,rt.queue(this,t,[]),o&&o.stop&&o.stop.call(this,!0),e=r.length;e--;)r[e].elem===this&&r[e].queue===t&&(r[e].anim.stop(!0),r.splice(e,1));for(e=0;s>e;e++)i[e]&&i[e].finish&&i[e].finish.call(this);delete n.finish})}}),rt.each(["toggle","show","hide"],function(t,e){var n=rt.fn[e];rt.fn[e]=function(t,i,o){return null==t||"boolean"==typeof t?n.apply(this,arguments):this.animate(R(e,!0),t,i,o)}}),rt.each({slideDown:R("show"),slideUp:R("hide"),slideToggle:R("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(t,e){rt.fn[t]=function(t,n,i){return this.animate(e,t,n,i)}}),rt.timers=[],rt.fx.tick=function(){var t,e=0,n=rt.timers;for(oe=rt.now();e<n.length;e++)t=n[e],t()||n[e]!==t||n.splice(e--,1);n.length||rt.fx.stop(),oe=void 0},rt.fx.timer=function(t){rt.timers.push(t),t()?rt.fx.start():rt.timers.pop()},rt.fx.interval=13,rt.fx.start=function(){re||(re=t.setInterval(rt.fx.tick,rt.fx.interval))},rt.fx.stop=function(){t.clearInterval(re),re=null},rt.fx.speeds={slow:600,fast:200,_default:400},rt.fn.delay=function(e,n){return e=rt.fx?rt.fx.speeds[e]||e:e,n=n||"fx",this.queue(n,function(n,i){var o=t.setTimeout(n,e);i.stop=function(){t.clearTimeout(o)}})},function(){var t=Y.createElement("input"),e=Y.createElement("select"),n=e.appendChild(Y.createElement("option"));t.type="checkbox",it.checkOn=""!==t.value,it.optSelected=n.selected,e.disabled=!0,it.optDisabled=!n.disabled,t=Y.createElement("input"),t.value="t",t.type="radio",it.radioValue="t"===t.value}();var le,ue=rt.expr.attrHandle;rt.fn.extend({attr:function(t,e){return Ct(this,rt.attr,t,e,arguments.length>1)},removeAttr:function(t){return this.each(function(){rt.removeAttr(this,t)})}}),rt.extend({attr:function(t,e,n){var i,o,r=t.nodeType;if(3!==r&&8!==r&&2!==r)return"undefined"==typeof t.getAttribute?rt.prop(t,e,n):(1===r&&rt.isXMLDoc(t)||(e=e.toLowerCase(),o=rt.attrHooks[e]||(rt.expr.match.bool.test(e)?le:void 0)),void 0!==n?null===n?void rt.removeAttr(t,e):o&&"set"in o&&void 0!==(i=o.set(t,n,e))?i:(t.setAttribute(e,n+""),n):o&&"get"in o&&null!==(i=o.get(t,e))?i:(i=rt.find.attr(t,e),null==i?void 0:i))},attrHooks:{type:{set:function(t,e){if(!it.radioValue&&"radio"===e&&rt.nodeName(t,"input")){var n=t.value;return t.setAttribute("type",e),n&&(t.value=n),e}}}},removeAttr:function(t,e){var n,i,o=0,r=e&&e.match(wt);if(r&&1===t.nodeType)for(;n=r[o++];)i=rt.propFix[n]||n,rt.expr.match.bool.test(n)&&(t[i]=!1),t.removeAttribute(n)}}),le={set:function(t,e,n){return e===!1?rt.removeAttr(t,n):t.setAttribute(n,n),n}},rt.each(rt.expr.match.bool.source.match(/\w+/g),function(t,e){var n=ue[e]||rt.find.attr;ue[e]=function(t,e,i){var o,r;return i||(r=ue[e],ue[e]=o,o=null!=n(t,e,i)?e.toLowerCase():null,ue[e]=r),o}});var ce=/^(?:input|select|textarea|button)$/i,fe=/^(?:a|area)$/i;rt.fn.extend({prop:function(t,e){return Ct(this,rt.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each(function(){delete this[rt.propFix[t]||t]})}}),rt.extend({prop:function(t,e,n){var i,o,r=t.nodeType;if(3!==r&&8!==r&&2!==r)return 1===r&&rt.isXMLDoc(t)||(e=rt.propFix[e]||e,o=rt.propHooks[e]),void 0!==n?o&&"set"in o&&void 0!==(i=o.set(t,n,e))?i:t[e]=n:o&&"get"in o&&null!==(i=o.get(t,e))?i:t[e]},propHooks:{tabIndex:{get:function(t){var e=rt.find.attr(t,"tabindex");return e?parseInt(e,10):ce.test(t.nodeName)||fe.test(t.nodeName)&&t.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),it.optSelected||(rt.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null}}),rt.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){rt.propFix[this.toLowerCase()]=this});var pe=/[\t\r\n\f]/g;rt.fn.extend({addClass:function(t){var e,n,i,o,r,s,a,l=0;if(rt.isFunction(t))return this.each(function(e){rt(this).addClass(t.call(this,e,M(this)))});if("string"==typeof t&&t)for(e=t.match(wt)||[];n=this[l++];)if(o=M(n),i=1===n.nodeType&&(" "+o+" ").replace(pe," ")){for(s=0;r=e[s++];)i.indexOf(" "+r+" ")<0&&(i+=r+" ");a=rt.trim(i),o!==a&&n.setAttribute("class",a)}return this},removeClass:function(t){var e,n,i,o,r,s,a,l=0;if(rt.isFunction(t))return this.each(function(e){rt(this).removeClass(t.call(this,e,M(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof t&&t)for(e=t.match(wt)||[];n=this[l++];)if(o=M(n),i=1===n.nodeType&&(" "+o+" ").replace(pe," ")){for(s=0;r=e[s++];)for(;i.indexOf(" "+r+" ")>-1;)i=i.replace(" "+r+" "," ");a=rt.trim(i),o!==a&&n.setAttribute("class",a)}return this},toggleClass:function(t,e){var n=typeof t;return"boolean"==typeof e&&"string"===n?e?this.addClass(t):this.removeClass(t):rt.isFunction(t)?this.each(function(n){rt(this).toggleClass(t.call(this,n,M(this),e),e)}):this.each(function(){var e,i,o,r;if("string"===n)for(i=0,o=rt(this),r=t.match(wt)||[];e=r[i++];)o.hasClass(e)?o.removeClass(e):o.addClass(e);else void 0!==t&&"boolean"!==n||(e=M(this),e&&kt.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||t===!1?"":kt.get(this,"__className__")||""))})},hasClass:function(t){var e,n,i=0;for(e=" "+t+" ";n=this[i++];)if(1===n.nodeType&&(" "+M(n)+" ").replace(pe," ").indexOf(e)>-1)return!0;return!1}});var de=/\r/g;rt.fn.extend({val:function(t){var e,n,i,o=this[0];{if(arguments.length)return i=rt.isFunction(t),this.each(function(n){var o;1===this.nodeType&&(o=i?t.call(this,n,rt(this).val()):t,null==o?o="":"number"==typeof o?o+="":rt.isArray(o)&&(o=rt.map(o,function(t){return null==t?"":t+""})),e=rt.valHooks[this.type]||rt.valHooks[this.nodeName.toLowerCase()],e&&"set"in e&&void 0!==e.set(this,o,"value")||(this.value=o))});if(o)return e=rt.valHooks[o.type]||rt.valHooks[o.nodeName.toLowerCase()],e&&"get"in e&&void 0!==(n=e.get(o,"value"))?n:(n=o.value,"string"==typeof n?n.replace(de,""):null==n?"":n)}}}),rt.extend({valHooks:{option:{get:function(t){return rt.trim(t.value)}},select:{get:function(t){for(var e,n,i=t.options,o=t.selectedIndex,r="select-one"===t.type||0>o,s=r?null:[],a=r?o+1:i.length,l=0>o?a:r?o:0;a>l;l++)if(n=i[l],(n.selected||l===o)&&(it.optDisabled?!n.disabled:null===n.getAttribute("disabled"))&&(!n.parentNode.disabled||!rt.nodeName(n.parentNode,"optgroup"))){if(e=rt(n).val(),r)return e;s.push(e)}return s},set:function(t,e){for(var n,i,o=t.options,r=rt.makeArray(e),s=o.length;s--;)i=o[s],(i.selected=rt.inArray(rt.valHooks.option.get(i),r)>-1)&&(n=!0);return n||(t.selectedIndex=-1),r}}}}),rt.each(["radio","checkbox"],function(){rt.valHooks[this]={set:function(t,e){return rt.isArray(e)?t.checked=rt.inArray(rt(t).val(),e)>-1:void 0}},it.checkOn||(rt.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})});var he=/^(?:focusinfocus|focusoutblur)$/;rt.extend(rt.event,{trigger:function(e,n,i,o){var r,s,a,l,u,c,f,p=[i||Y],d=nt.call(e,"type")?e.type:e,h=nt.call(e,"namespace")?e.namespace.split("."):[];if(s=a=i=i||Y,3!==i.nodeType&&8!==i.nodeType&&!he.test(d+rt.event.triggered)&&(d.indexOf(".")>-1&&(h=d.split("."),d=h.shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,e=e[rt.expando]?e:new rt.Event(d,"object"==typeof e&&e),e.isTrigger=o?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=i),n=null==n?[e]:rt.makeArray(n,[e]),f=rt.event.special[d]||{},o||!f.trigger||f.trigger.apply(i,n)!==!1)){if(!o&&!f.noBubble&&!rt.isWindow(i)){for(l=f.delegateType||d,he.test(l+d)||(s=s.parentNode);s;s=s.parentNode)p.push(s),a=s;a===(i.ownerDocument||Y)&&p.push(a.defaultView||a.parentWindow||t)}for(r=0;(s=p[r++])&&!e.isPropagationStopped();)e.type=r>1?l:f.bindType||d,c=(kt.get(s,"events")||{})[e.type]&&kt.get(s,"handle"),c&&c.apply(s,n),c=u&&s[u],c&&c.apply&&Et(s)&&(e.result=c.apply(s,n),e.result===!1&&e.preventDefault());return e.type=d,o||e.isDefaultPrevented()||f._default&&f._default.apply(p.pop(),n)!==!1||!Et(i)||u&&rt.isFunction(i[d])&&!rt.isWindow(i)&&(a=i[u],a&&(i[u]=null),rt.event.triggered=d,i[d](),rt.event.triggered=void 0,a&&(i[u]=a)),e.result}},simulate:function(t,e,n){var i=rt.extend(new rt.Event,n,{type:t,isSimulated:!0});rt.event.trigger(i,null,e),i.isDefaultPrevented()&&n.preventDefault()}}),rt.fn.extend({trigger:function(t,e){return this.each(function(){rt.event.trigger(t,e,this)})},triggerHandler:function(t,e){var n=this[0];return n?rt.event.trigger(t,e,n,!0):void 0}}),rt.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(t,e){rt.fn[e]=function(t,n){return arguments.length>0?this.on(e,null,t,n):this.trigger(e)}}),rt.fn.extend({hover:function(t,e){return this.mouseenter(t).mouseleave(e||t)}}),it.focusin="onfocusin"in t,it.focusin||rt.each({focus:"focusin",blur:"focusout"},function(t,e){var n=function(t){rt.event.simulate(e,t.target,rt.event.fix(t))};rt.event.special[e]={setup:function(){var i=this.ownerDocument||this,o=kt.access(i,e);o||i.addEventListener(t,n,!0),kt.access(i,e,(o||0)+1)},teardown:function(){var i=this.ownerDocument||this,o=kt.access(i,e)-1;o?kt.access(i,e,o):(i.removeEventListener(t,n,!0),kt.remove(i,e))}}});var ge=t.location,ve=rt.now(),me=/\?/;rt.parseJSON=function(t){return JSON.parse(t+"")},rt.parseXML=function(e){var n;if(!e||"string"!=typeof e)return null;try{n=(new t.DOMParser).parseFromString(e,"text/xml")}catch(i){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||rt.error("Invalid XML: "+e),n};var ye=/#.*$/,be=/([?&])_=[^&]*/,xe=/^(.*?):[ \t]*([^\r\n]*)$/gm,we=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Te=/^(?:GET|HEAD)$/,Ce=/^\/\//,Ee={},ke={},$e="*/".concat("*"),Se=Y.createElement("a");Se.href=ge.href,rt.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ge.href,type:"GET",isLocal:we.test(ge.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$e,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":rt.parseJSON,"text xml":rt.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?B(B(t,rt.ajaxSettings),e):B(rt.ajaxSettings,t)},ajaxPrefilter:W(Ee),ajaxTransport:W(ke),ajax:function(e,n){function i(e,n,i,a){var u,f,y,b,w,C=n;2!==x&&(x=2,l&&t.clearTimeout(l),o=void 0,s=a||"",T.readyState=e>0?4:0,u=e>=200&&300>e||304===e,i&&(b=U(p,T,i)),b=z(p,b,T,u),u?(p.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(rt.lastModified[r]=w),w=T.getResponseHeader("etag"),w&&(rt.etag[r]=w)),204===e||"HEAD"===p.type?C="nocontent":304===e?C="notmodified":(C=b.state,f=b.data,y=b.error,u=!y)):(y=C,!e&&C||(C="error",0>e&&(e=0))),T.status=e,T.statusText=(n||C)+"",u?g.resolveWith(d,[f,C,T]):g.rejectWith(d,[T,C,y]),T.statusCode(m),m=void 0,c&&h.trigger(u?"ajaxSuccess":"ajaxError",[T,p,u?f:y]),v.fireWith(d,[T,C]),c&&(h.trigger("ajaxComplete",[T,p]),--rt.active||rt.event.trigger("ajaxStop")))}"object"==typeof e&&(n=e,e=void 0),n=n||{};var o,r,s,a,l,u,c,f,p=rt.ajaxSetup({},n),d=p.context||p,h=p.context&&(d.nodeType||d.jquery)?rt(d):rt.event,g=rt.Deferred(),v=rt.Callbacks("once memory"),m=p.statusCode||{},y={},b={},x=0,w="canceled",T={readyState:0,getResponseHeader:function(t){var e;if(2===x){if(!a)for(a={};e=xe.exec(s);)a[e[1].toLowerCase()]=e[2];e=a[t.toLowerCase()]}return null==e?null:e},getAllResponseHeaders:function(){return 2===x?s:null},setRequestHeader:function(t,e){var n=t.toLowerCase();return x||(t=b[n]=b[n]||t,y[t]=e),this},overrideMimeType:function(t){return x||(p.mimeType=t),this},statusCode:function(t){var e;if(t)if(2>x)for(e in t)m[e]=[m[e],t[e]];else T.always(t[T.status]);return this},abort:function(t){var e=t||w;return o&&o.abort(e),i(0,e),this}};if(g.promise(T).complete=v.add,T.success=T.done,T.error=T.fail,p.url=((e||p.url||ge.href)+"").replace(ye,"").replace(Ce,ge.protocol+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=rt.trim(p.dataType||"*").toLowerCase().match(wt)||[""],null==p.crossDomain){u=Y.createElement("a");try{u.href=p.url,u.href=u.href,p.crossDomain=Se.protocol+"//"+Se.host!=u.protocol+"//"+u.host}catch(C){p.crossDomain=!0}}if(p.data&&p.processData&&"string"!=typeof p.data&&(p.data=rt.param(p.data,p.traditional)),_(Ee,p,n,T),2===x)return T;c=rt.event&&p.global,c&&0===rt.active++&&rt.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Te.test(p.type),r=p.url,p.hasContent||(p.data&&(r=p.url+=(me.test(r)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=be.test(r)?r.replace(be,"$1_="+ve++):r+(me.test(r)?"&":"?")+"_="+ve++)),p.ifModified&&(rt.lastModified[r]&&T.setRequestHeader("If-Modified-Since",rt.lastModified[r]),rt.etag[r]&&T.setRequestHeader("If-None-Match",rt.etag[r])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&T.setRequestHeader("Content-Type",p.contentType),T.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+$e+"; q=0.01":""):p.accepts["*"]);for(f in p.headers)T.setRequestHeader(f,p.headers[f]);if(p.beforeSend&&(p.beforeSend.call(d,T,p)===!1||2===x))return T.abort();w="abort";for(f in{success:1,error:1,complete:1})T[f](p[f]);if(o=_(ke,p,n,T)){if(T.readyState=1,c&&h.trigger("ajaxSend",[T,p]),2===x)return T;p.async&&p.timeout>0&&(l=t.setTimeout(function(){T.abort("timeout")},p.timeout));try{x=1,o.send(y,i)}catch(C){if(!(2>x))throw C;i(-1,C)}}else i(-1,"No Transport");return T},getJSON:function(t,e,n){return rt.get(t,e,n,"json")},getScript:function(t,e){return rt.get(t,void 0,e,"script")}}),rt.each(["get","post"],function(t,e){rt[e]=function(t,n,i,o){return rt.isFunction(n)&&(o=o||i,i=n,n=void 0),rt.ajax(rt.extend({url:t,type:e,dataType:o,data:n,success:i},rt.isPlainObject(t)&&t))}}),rt._evalUrl=function(t){return rt.ajax({url:t,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},rt.fn.extend({wrapAll:function(t){var e;return rt.isFunction(t)?this.each(function(e){rt(this).wrapAll(t.call(this,e))}):(this[0]&&(e=rt(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t}).append(this)),this)},wrapInner:function(t){return rt.isFunction(t)?this.each(function(e){rt(this).wrapInner(t.call(this,e))}):this.each(function(){var e=rt(this),n=e.contents();n.length?n.wrapAll(t):e.append(t)})},wrap:function(t){var e=rt.isFunction(t);return this.each(function(n){rt(this).wrapAll(e?t.call(this,n):t)})},unwrap:function(){return this.parent().each(function(){rt.nodeName(this,"body")||rt(this).replaceWith(this.childNodes)}).end()}}),rt.expr.filters.hidden=function(t){return!rt.expr.filters.visible(t)},rt.expr.filters.visible=function(t){return t.offsetWidth>0||t.offsetHeight>0||t.getClientRects().length>0};var Ne=/%20/g,De=/\[\]$/,je=/\r?\n/g,Ae=/^(?:submit|button|image|reset|file)$/i,Oe=/^(?:input|select|textarea|keygen)/i;rt.param=function(t,e){var n,i=[],o=function(t,e){e=rt.isFunction(e)?e():null==e?"":e,i[i.length]=encodeURIComponent(t)+"="+encodeURIComponent(e)};if(void 0===e&&(e=rt.ajaxSettings&&rt.ajaxSettings.traditional),rt.isArray(t)||t.jquery&&!rt.isPlainObject(t))rt.each(t,function(){o(this.name,this.value)});else for(n in t)V(n,t[n],e,o);return i.join("&").replace(Ne,"+")},rt.fn.extend({serialize:function(){return rt.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var t=rt.prop(this,"elements");return t?rt.makeArray(t):this}).filter(function(){var t=this.type;return this.name&&!rt(this).is(":disabled")&&Oe.test(this.nodeName)&&!Ae.test(t)&&(this.checked||!It.test(t))}).map(function(t,e){var n=rt(this).val();return null==n?null:rt.isArray(n)?rt.map(n,function(t){return{name:e.name,value:t.replace(je,"\r\n")}}):{name:e.name,value:n.replace(je,"\r\n")}}).get()}}),rt.ajaxSettings.xhr=function(){try{return new t.XMLHttpRequest}catch(e){}};var Ie={0:200,1223:204},Le=rt.ajaxSettings.xhr();it.cors=!!Le&&"withCredentials"in Le,it.ajax=Le=!!Le,rt.ajaxTransport(function(e){var n,i;return it.cors||Le&&!e.crossDomain?{send:function(o,r){var s,a=e.xhr();if(a.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(s in e.xhrFields)a[s]=e.xhrFields[s];e.mimeType&&a.overrideMimeType&&a.overrideMimeType(e.mimeType),e.crossDomain||o["X-Requested-With"]||(o["X-Requested-With"]="XMLHttpRequest");for(s in o)a.setRequestHeader(s,o[s]);n=function(t){return function(){n&&(n=i=a.onload=a.onerror=a.onabort=a.onreadystatechange=null,"abort"===t?a.abort():"error"===t?"number"!=typeof a.status?r(0,"error"):r(a.status,a.statusText):r(Ie[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=n(),i=a.onerror=n("error"),void 0!==a.onabort?a.onabort=i:a.onreadystatechange=function(){4===a.readyState&&t.setTimeout(function(){n&&i()})},n=n("abort");try{a.send(e.hasContent&&e.data||null)}catch(l){if(n)throw l}},abort:function(){n&&n()}}:void 0}),rt.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(t){return rt.globalEval(t),t}}}),rt.ajaxPrefilter("script",function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")}),rt.ajaxTransport("script",function(t){if(t.crossDomain){var e,n;return{send:function(i,o){e=rt("<script>").prop({charset:t.scriptCharset,src:t.url}).on("load error",n=function(t){e.remove(),n=null,t&&o("error"===t.type?404:200,t.type)}),Y.head.appendChild(e[0])},abort:function(){n&&n()}}}});var Re=[],qe=/(=)\?(?=&|$)|\?\?/;rt.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var t=Re.pop()||rt.expando+"_"+ve++;return this[t]=!0,t}}),rt.ajaxPrefilter("json jsonp",function(e,n,i){var o,r,s,a=e.jsonp!==!1&&(qe.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&qe.test(e.data)&&"data");return a||"jsonp"===e.dataTypes[0]?(o=e.jsonpCallback=rt.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(qe,"$1"+o):e.jsonp!==!1&&(e.url+=(me.test(e.url)?"&":"?")+e.jsonp+"="+o),e.converters["script json"]=function(){return s||rt.error(o+" was not called"),s[0]},e.dataTypes[0]="json",r=t[o],t[o]=function(){s=arguments},i.always(function(){void 0===r?rt(t).removeProp(o):t[o]=r,e[o]&&(e.jsonpCallback=n.jsonpCallback,Re.push(o)),s&&rt.isFunction(r)&&r(s[0]),s=r=void 0}),"script"):void 0}),it.createHTMLDocument=function(){var t=Y.implementation.createHTMLDocument("").body;return t.innerHTML="<form></form><form></form>",2===t.childNodes.length}(),rt.parseHTML=function(t,e,n){if(!t||"string"!=typeof t)return null;"boolean"==typeof e&&(n=e,e=!1),e=e||(it.createHTMLDocument?Y.implementation.createHTMLDocument(""):Y);var i=ht.exec(t),o=!n&&[];return i?[e.createElement(i[1])]:(i=p([t],e,o),o&&o.length&&rt(o).remove(),rt.merge([],i.childNodes))};var He=rt.fn.load;rt.fn.load=function(t,e,n){if("string"!=typeof t&&He)return He.apply(this,arguments);var i,o,r,s=this,a=t.indexOf(" ");return a>-1&&(i=rt.trim(t.slice(a)),t=t.slice(0,a)),rt.isFunction(e)?(n=e,e=void 0):e&&"object"==typeof e&&(o="POST"),s.length>0&&rt.ajax({url:t,type:o||"GET",dataType:"html",data:e}).done(function(t){r=arguments,s.html(i?rt("<div>").append(rt.parseHTML(t)).find(i):t)}).always(n&&function(t,e){s.each(function(){n.apply(s,r||[t.responseText,e,t])})}),this},rt.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(t,e){rt.fn[e]=function(t){return this.on(e,t)}}),rt.expr.filters.animated=function(t){return rt.grep(rt.timers,function(e){return t===e.elem}).length},rt.offset={setOffset:function(t,e,n){var i,o,r,s,a,l,u,c=rt.css(t,"position"),f=rt(t),p={};"static"===c&&(t.style.position="relative"),a=f.offset(),r=rt.css(t,"top"),l=rt.css(t,"left"),u=("absolute"===c||"fixed"===c)&&(r+l).indexOf("auto")>-1,u?(i=f.position(),s=i.top,o=i.left):(s=parseFloat(r)||0,o=parseFloat(l)||0),rt.isFunction(e)&&(e=e.call(t,n,rt.extend({},a))),null!=e.top&&(p.top=e.top-a.top+s),null!=e.left&&(p.left=e.left-a.left+o),"using"in e?e.using.call(t,p):f.css(p)}},rt.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){rt.offset.setOffset(this,t,e)});var e,n,i=this[0],o={top:0,left:0},r=i&&i.ownerDocument;if(r)return e=r.documentElement,rt.contains(e,i)?(o=i.getBoundingClientRect(),n=X(r),{top:o.top+n.pageYOffset-e.clientTop,left:o.left+n.pageXOffset-e.clientLeft}):o},position:function(){if(this[0]){var t,e,n=this[0],i={top:0,left:0};return"fixed"===rt.css(n,"position")?e=n.getBoundingClientRect():(t=this.offsetParent(),e=this.offset(),rt.nodeName(t[0],"html")||(i=t.offset()),i.top+=rt.css(t[0],"borderTopWidth",!0),i.left+=rt.css(t[0],"borderLeftWidth",!0)),{top:e.top-i.top-rt.css(n,"marginTop",!0),left:e.left-i.left-rt.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent;t&&"static"===rt.css(t,"position");)t=t.offsetParent;return t||Jt})}}),rt.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,e){var n="pageYOffset"===e;rt.fn[t]=function(i){return Ct(this,function(t,i,o){var r=X(t);return void 0===o?r?r[e]:t[i]:void(r?r.scrollTo(n?r.pageXOffset:o,n?o:r.pageYOffset):t[i]=o)},t,i,arguments.length)}}),rt.each(["top","left"],function(t,e){rt.cssHooks[e]=S(it.pixelPosition,function(t,n){return n?(n=$(t,e),Yt.test(n)?rt(t).position()[e]+"px":n):void 0})}),rt.each({Height:"height",Width:"width"},function(t,e){rt.each({padding:"inner"+t,content:e,"":"outer"+t},function(n,i){rt.fn[i]=function(i,o){var r=arguments.length&&(n||"boolean"!=typeof i),s=n||(i===!0||o===!0?"margin":"border");return Ct(this,function(e,n,i){var o;return rt.isWindow(e)?e.document.documentElement["client"+t]:9===e.nodeType?(o=e.documentElement,Math.max(e.body["scroll"+t],o["scroll"+t],e.body["offset"+t],o["offset"+t],o["client"+t])):void 0===i?rt.css(e,n,s):rt.style(e,n,i,s)},e,r?i:void 0,r,null)}})}),rt.fn.extend({bind:function(t,e,n){return this.on(t,null,e,n)},unbind:function(t,e){return this.off(t,null,e)},delegate:function(t,e,n,i){return this.on(e,t,n,i)},undelegate:function(t,e,n){return 1===arguments.length?this.off(t,"**"):this.off(e,t||"**",n)},size:function(){return this.length}}),rt.fn.andSelf=rt.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return rt});var Pe=t.jQuery,Fe=t.$;return rt.noConflict=function(e){return t.$===rt&&(t.$=Fe),e&&t.jQuery===rt&&(t.jQuery=Pe),rt},e||(t.jQuery=t.$=rt),rt})},{}],15:[function(t,e,n){"use strict";window.jQuery=window.$=t("jquery");var i=window.$;t("bootstrap");var o=function(){var t=i(".modal-body textarea, #id_body, #id_comment, #id_message, #id_text, #id_abstract, #id_additional_notes, #id_content_override, #id_description, #id_biography");t.each(function(t,e){var n="markdown-editor-"+t,o=i("<div>").attr("id",n),r=function(t,e){var n=t.getSession();t.setTheme("ace/theme/tomorrow"),t.$blockScrolling=1/0,t.setOption("scrollPastEnd",!0),n.setMode("ace/mode/markdown"),n.setValue(e.val()),n.setUseWrapMode(!0),n.on("change",function(){e.val(n.getValue())}),t.renderer.setShowGutter(!1),n.setTabSize(4),n.setUseSoftTabs(!0)},s=i(e).closest(".form-group"),a=s.find("textarea");s.append(o),r(ace.edit(n),a)})};i(function(){o()})},{bootstrap:1,jquery:14}]},{},[15]);
...
 
\ No newline at end of file
static/dist/js/site.js
Show inline comments
 
deleted file
static/src/hbs/_scripts.hbs
Show inline comments
 
new file 100644
 
<script src='{{ assetPath "js/site.js" }}'></script>
static/src/hbs/_styles.hbs
Show inline comments
 
new file 100644
 
<link href='{{ assetPath "css/site.css" }}' rel='stylesheet' />
static/src/js/main.js
Show inline comments
 
deleted file
static/src/js/site.js
Show inline comments
 
new file 100644
 
/* global window ace */
 
window.jQuery = window.$ = require('jquery');
 

	
 
const $ = window.$;
 

	
 
require('bootstrap');
 

	
 
const loadEditors = () => {
 
    const $editors = $('.modal-body textarea, #id_body, #id_comment, #id_message, #id_text, #id_abstract, #id_additional_notes, #id_content_override, #id_description, #id_biography');
 
    $editors.each((i, el) => {
 
      const editorId = `markdown-editor-${i}`;
 
      const reportDiv = $('<div>').attr('id', editorId);
 
      const setupEditor = (editor, textarea) => {
 
          const session = editor.getSession();
 
          editor.setTheme('ace/theme/tomorrow');
 
          editor.$blockScrolling = Infinity;
 
          editor.setOption('scrollPastEnd', true);
 
          session.setMode('ace/mode/markdown');
 
          session.setValue(textarea.val());
 
          session.setUseWrapMode(true);
 
          session.on('change', () => {
 
              textarea.val(session.getValue());
 
          });
 
          editor.renderer.setShowGutter(false);
 
          session.setTabSize(4);
 
          session.setUseSoftTabs(true);
 
      };
 
      const $formGroup = $(el).closest('.form-group');
 
      const $textarea = $formGroup.find('textarea');
 
      $formGroup.append(reportDiv);
 
      setupEditor(ace.edit(editorId), $textarea);
 
    });
 
};
 

	
 
$(() => {
 
    loadEditors();
 
});
static/src/less/site.less
Show inline comments
 
// ~ uses paths in node_modules based on default webpack configuration
 
@import "~bootstrap/less/bootstrap.less";
 
@import "~font-awesome/less/font-awesome.less";
 
@import "bootstrap";
 
@import "font-awesome";
 

	
 
// Override some of the variables in bootstrap and font-awesome, @@@ put in own file
 
@fa-font-path: "~font-awesome/fonts/";
 
@icon-font-path: "~bootstrap/fonts/";
 

	
 
@font-family-sans-serif:  "Helvetica Neue", Helvetica, Arial, sans-serif;
 
@font-family-serif:       Georgia, "Times New Roman", Times, serif;
 
@font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace;
 
@import "variables.less";
 

	
static/src/less/variables.less
Show inline comments
 
new file 100644
 
@font-family-sans-serif:  "Helvetica Neue", Helvetica, Arial, sans-serif;
 
@font-family-serif:       Georgia, "Times New Roman", Times, serif;
 
@font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace;
static/webpack.config.js
Show inline comments
 
deleted file
0 comments (0 inline, 0 general)