From 69800bce12577422f404f0dfd585d269e445dfe0 Mon Sep 17 00:00:00 2001 From: chriswmackey Date: Thu, 17 Oct 2024 23:31:32 +0000 Subject: [PATCH] deploy: update docs --- .nojekyll | 1 + README.md | 1 + docs/.buildinfo | 4 + docs/.doctrees/cli/index.doctree | Bin 0 -> 3603 bytes docs/.doctrees/cli/simulate.doctree | Bin 0 -> 12880 bytes docs/.doctrees/dragonfly_uwg.cli.doctree | Bin 0 -> 4069 bytes .../dragonfly_uwg.cli.simulate.doctree | Bin 0 -> 3283 bytes docs/.doctrees/dragonfly_uwg.doctree | Bin 0 -> 4471 bytes .../dragonfly_uwg.properties.building.doctree | Bin 0 -> 61532 bytes .../dragonfly_uwg.properties.context.doctree | Bin 0 -> 26457 bytes .../dragonfly_uwg.properties.doctree | Bin 0 -> 4209 bytes .../dragonfly_uwg.properties.model.doctree | Bin 0 -> 64887 bytes .../dragonfly_uwg.properties.room2d.doctree | Bin 0 -> 22539 bytes .../dragonfly_uwg.properties.story.doctree | Bin 0 -> 22396 bytes docs/.doctrees/dragonfly_uwg.run.doctree | Bin 0 -> 11763 bytes .../dragonfly_uwg.simulation.boundary.doctree | Bin 0 -> 30546 bytes .../dragonfly_uwg.simulation.doctree | Bin 0 -> 4255 bytes ...dragonfly_uwg.simulation.parameter.doctree | Bin 0 -> 43473 bytes .../dragonfly_uwg.simulation.refsite.doctree | Bin 0 -> 26388 bytes ...dragonfly_uwg.simulation.runperiod.doctree | Bin 0 -> 25179 bytes ...ragonfly_uwg.simulation.vegetation.doctree | Bin 0 -> 30293 bytes docs/.doctrees/dragonfly_uwg.terrain.doctree | Bin 0 -> 54689 bytes docs/.doctrees/dragonfly_uwg.traffic.doctree | Bin 0 -> 33943 bytes docs/.doctrees/dragonfly_uwg.writer.doctree | Bin 0 -> 8852 bytes docs/.doctrees/environment.pickle | Bin 0 -> 286367 bytes docs/.doctrees/index.doctree | Bin 0 -> 8632 bytes docs/.doctrees/modules.doctree | Bin 0 -> 2796 bytes docs/.nojekyll | 0 docs/README.md | 1 + .../dragonfly_uwg/properties/building.html | 745 ++ .../dragonfly_uwg/properties/context.html | 516 ++ .../dragonfly_uwg/properties/model.html | 859 +++ .../dragonfly_uwg/properties/room2d.html | 500 ++ .../dragonfly_uwg/properties/story.html | 500 ++ docs/_modules/dragonfly_uwg/run.html | 540 ++ .../dragonfly_uwg/simulation/boundary.html | 574 ++ .../dragonfly_uwg/simulation/parameter.html | 714 ++ .../dragonfly_uwg/simulation/refsite.html | 543 ++ .../dragonfly_uwg/simulation/runperiod.html | 565 ++ .../dragonfly_uwg/simulation/vegetation.html | 585 ++ docs/_modules/dragonfly_uwg/terrain.html | 756 ++ docs/_modules/dragonfly_uwg/traffic.html | 595 ++ docs/_modules/dragonfly_uwg/writer.html | 456 ++ docs/_modules/index.html | 419 + docs/_sources/cli/index.rst.txt | 14 + docs/_sources/cli/simulate.rst.txt | 6 + docs/_sources/dragonfly_uwg.cli.rst.txt | 18 + .../dragonfly_uwg.cli.simulate.rst.txt | 7 + .../dragonfly_uwg.properties.building.rst.txt | 7 + .../dragonfly_uwg.properties.context.rst.txt | 7 + .../dragonfly_uwg.properties.model.rst.txt | 7 + .../dragonfly_uwg.properties.room2d.rst.txt | 7 + .../_sources/dragonfly_uwg.properties.rst.txt | 22 + .../dragonfly_uwg.properties.story.rst.txt | 7 + docs/_sources/dragonfly_uwg.rst.txt | 31 + docs/_sources/dragonfly_uwg.run.rst.txt | 7 + .../dragonfly_uwg.simulation.boundary.rst.txt | 7 + ...dragonfly_uwg.simulation.parameter.rst.txt | 7 + .../dragonfly_uwg.simulation.refsite.rst.txt | 7 + .../_sources/dragonfly_uwg.simulation.rst.txt | 22 + ...dragonfly_uwg.simulation.runperiod.rst.txt | 7 + ...ragonfly_uwg.simulation.vegetation.rst.txt | 7 + docs/_sources/dragonfly_uwg.terrain.rst.txt | 7 + docs/_sources/dragonfly_uwg.traffic.rst.txt | 7 + docs/_sources/dragonfly_uwg.writer.rst.txt | 7 + docs/_sources/index.rst.txt | 45 + docs/_sources/modules.rst.txt | 7 + docs/_static/basic.css | 925 +++ .../css/bootstrap-responsive.css | 1109 +++ .../css/bootstrap-responsive.min.css | 9 + .../_static/bootstrap-2.3.2/css/bootstrap.css | 6167 +++++++++++++++ .../bootstrap-2.3.2/css/bootstrap.min.css | 9 + .../img/glyphicons-halflings-white.png | Bin 0 -> 8777 bytes .../img/glyphicons-halflings.png | Bin 0 -> 12799 bytes docs/_static/bootstrap-2.3.2/js/bootstrap.js | 2287 ++++++ .../bootstrap-2.3.2/js/bootstrap.min.js | 6 + .../bootstrap-3.4.1/css/bootstrap-theme.css | 587 ++ .../css/bootstrap-theme.css.map | 1 + .../css/bootstrap-theme.min.css | 6 + .../css/bootstrap-theme.min.css.map | 1 + .../_static/bootstrap-3.4.1/css/bootstrap.css | 6834 +++++++++++++++++ .../bootstrap-3.4.1/css/bootstrap.css.map | 1 + .../bootstrap-3.4.1/css/bootstrap.min.css | 6 + .../bootstrap-3.4.1/css/bootstrap.min.css.map | 1 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes .../fonts/glyphicons-halflings-regular.svg | 288 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes docs/_static/bootstrap-3.4.1/js/bootstrap.js | 2580 +++++++ .../bootstrap-3.4.1/js/bootstrap.min.js | 6 + docs/_static/bootstrap-3.4.1/js/npm.js | 13 + docs/_static/bootstrap-sphinx.css | 223 + docs/_static/bootstrap-sphinx.js | 175 + .../bootswatch-2.3.2/amelia/bootstrap.min.css | 9 + .../cerulean/bootstrap.min.css | 9 + .../bootswatch-2.3.2/cosmo/bootstrap.min.css | 9 + .../bootswatch-2.3.2/cyborg/bootstrap.min.css | 9 + .../bootswatch-2.3.2/flatly/bootstrap.min.css | 9 + .../img/glyphicons-halflings-white.png | Bin 0 -> 8777 bytes .../img/glyphicons-halflings.png | Bin 0 -> 12799 bytes .../journal/bootstrap.min.css | 9 + .../readable/bootstrap.min.css | 9 + .../simplex/bootstrap.min.css | 9 + .../bootswatch-2.3.2/slate/bootstrap.min.css | 9 + .../spacelab/bootstrap.min.css | 9 + .../bootswatch-2.3.2/spruce/bootstrap.min.css | 9 + .../superhero/bootstrap.min.css | 9 + .../bootswatch-2.3.2/united/bootstrap.min.css | 9 + .../cerulean/bootstrap.min.css | 11 + .../bootswatch-3.4.1/cosmo/bootstrap.min.css | 11 + .../bootswatch-3.4.1/cyborg/bootstrap.min.css | 11 + .../bootswatch-3.4.1/darkly/bootstrap.min.css | 11 + .../bootswatch-3.4.1/flatly/bootstrap.min.css | 11 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes .../fonts/glyphicons-halflings-regular.svg | 288 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes .../journal/bootstrap.min.css | 11 + .../bootswatch-3.4.1/lumen/bootstrap.min.css | 11 + .../bootswatch-3.4.1/paper/bootstrap.min.css | 11 + .../readable/bootstrap.min.css | 11 + .../sandstone/bootstrap.min.css | 11 + .../simplex/bootstrap.min.css | 11 + .../bootswatch-3.4.1/slate/bootstrap.min.css | 11 + .../spacelab/bootstrap.min.css | 11 + .../superhero/bootstrap.min.css | 11 + .../bootswatch-3.4.1/united/bootstrap.min.css | 11 + .../bootswatch-3.4.1/yeti/bootstrap.min.css | 11 + docs/_static/custom.css | 65 + docs/_static/doctools.js | 156 + docs/_static/documentation_options.js | 13 + docs/_static/file.png | Bin 0 -> 286 bytes docs/_static/js/jquery-1.12.4.min.js | 5 + docs/_static/js/jquery-fix.js | 2 + docs/_static/language_data.js | 199 + docs/_static/minus.png | Bin 0 -> 90 bytes docs/_static/plus.png | Bin 0 -> 90 bytes docs/_static/pygments.css | 84 + docs/_static/searchtools.js | 620 ++ docs/_static/sphinx_highlight.js | 154 + docs/cli/index.html | 448 ++ docs/cli/simulate.html | 509 ++ docs/dragonfly_uwg.cli.html | 474 ++ docs/dragonfly_uwg.cli.simulate.html | 463 ++ docs/dragonfly_uwg.html | 591 ++ docs/dragonfly_uwg.properties.building.html | 740 ++ docs/dragonfly_uwg.properties.context.html | 587 ++ docs/dragonfly_uwg.properties.html | 570 ++ docs/dragonfly_uwg.properties.model.html | 774 ++ docs/dragonfly_uwg.properties.room2d.html | 573 ++ docs/dragonfly_uwg.properties.story.html | 573 ++ docs/dragonfly_uwg.run.html | 490 ++ docs/dragonfly_uwg.simulation.boundary.html | 602 ++ docs/dragonfly_uwg.simulation.html | 558 ++ docs/dragonfly_uwg.simulation.parameter.html | 664 ++ docs/dragonfly_uwg.simulation.refsite.html | 583 ++ docs/dragonfly_uwg.simulation.runperiod.html | 590 ++ docs/dragonfly_uwg.simulation.vegetation.html | 604 ++ docs/dragonfly_uwg.terrain.html | 722 ++ docs/dragonfly_uwg.traffic.html | 606 ++ docs/dragonfly_uwg.writer.html | 476 ++ docs/genindex.html | 1152 +++ docs/index.html | 473 ++ docs/modules.html | 473 ++ docs/objects.inv | Bin 0 -> 2153 bytes docs/py-modindex.html | 515 ++ docs/search.html | 432 ++ docs/searchindex.js | 1 + 170 files changed, 47500 insertions(+) create mode 100644 .nojekyll create mode 100644 README.md create mode 100644 docs/.buildinfo create mode 100644 docs/.doctrees/cli/index.doctree create mode 100644 docs/.doctrees/cli/simulate.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.cli.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.cli.simulate.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.properties.building.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.properties.context.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.properties.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.properties.model.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.properties.room2d.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.properties.story.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.run.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.simulation.boundary.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.simulation.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.simulation.parameter.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.simulation.refsite.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.simulation.runperiod.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.simulation.vegetation.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.terrain.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.traffic.doctree create mode 100644 docs/.doctrees/dragonfly_uwg.writer.doctree create mode 100644 docs/.doctrees/environment.pickle create mode 100644 docs/.doctrees/index.doctree create mode 100644 docs/.doctrees/modules.doctree create mode 100644 docs/.nojekyll create mode 100644 docs/README.md create mode 100644 docs/_modules/dragonfly_uwg/properties/building.html create mode 100644 docs/_modules/dragonfly_uwg/properties/context.html create mode 100644 docs/_modules/dragonfly_uwg/properties/model.html create mode 100644 docs/_modules/dragonfly_uwg/properties/room2d.html create mode 100644 docs/_modules/dragonfly_uwg/properties/story.html create mode 100644 docs/_modules/dragonfly_uwg/run.html create mode 100644 docs/_modules/dragonfly_uwg/simulation/boundary.html create mode 100644 docs/_modules/dragonfly_uwg/simulation/parameter.html create mode 100644 docs/_modules/dragonfly_uwg/simulation/refsite.html create mode 100644 docs/_modules/dragonfly_uwg/simulation/runperiod.html create mode 100644 docs/_modules/dragonfly_uwg/simulation/vegetation.html create mode 100644 docs/_modules/dragonfly_uwg/terrain.html create mode 100644 docs/_modules/dragonfly_uwg/traffic.html create mode 100644 docs/_modules/dragonfly_uwg/writer.html create mode 100644 docs/_modules/index.html create mode 100644 docs/_sources/cli/index.rst.txt create mode 100644 docs/_sources/cli/simulate.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.cli.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.cli.simulate.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.properties.building.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.properties.context.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.properties.model.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.properties.room2d.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.properties.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.properties.story.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.run.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.simulation.boundary.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.simulation.parameter.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.simulation.refsite.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.simulation.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.simulation.runperiod.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.simulation.vegetation.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.terrain.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.traffic.rst.txt create mode 100644 docs/_sources/dragonfly_uwg.writer.rst.txt create mode 100644 docs/_sources/index.rst.txt create mode 100644 docs/_sources/modules.rst.txt create mode 100644 docs/_static/basic.css create mode 100644 docs/_static/bootstrap-2.3.2/css/bootstrap-responsive.css create mode 100644 docs/_static/bootstrap-2.3.2/css/bootstrap-responsive.min.css create mode 100644 docs/_static/bootstrap-2.3.2/css/bootstrap.css create mode 100644 docs/_static/bootstrap-2.3.2/css/bootstrap.min.css create mode 100644 docs/_static/bootstrap-2.3.2/img/glyphicons-halflings-white.png create mode 100644 docs/_static/bootstrap-2.3.2/img/glyphicons-halflings.png create mode 100644 docs/_static/bootstrap-2.3.2/js/bootstrap.js create mode 100644 docs/_static/bootstrap-2.3.2/js/bootstrap.min.js create mode 100644 docs/_static/bootstrap-3.4.1/css/bootstrap-theme.css create mode 100644 docs/_static/bootstrap-3.4.1/css/bootstrap-theme.css.map create mode 100644 docs/_static/bootstrap-3.4.1/css/bootstrap-theme.min.css create mode 100644 docs/_static/bootstrap-3.4.1/css/bootstrap-theme.min.css.map create mode 100644 docs/_static/bootstrap-3.4.1/css/bootstrap.css create mode 100644 docs/_static/bootstrap-3.4.1/css/bootstrap.css.map create mode 100644 docs/_static/bootstrap-3.4.1/css/bootstrap.min.css create mode 100644 docs/_static/bootstrap-3.4.1/css/bootstrap.min.css.map create mode 100644 docs/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.eot create mode 100644 docs/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.svg create mode 100644 docs/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.ttf create mode 100644 docs/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.woff create mode 100644 docs/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.woff2 create mode 100644 docs/_static/bootstrap-3.4.1/js/bootstrap.js create mode 100644 docs/_static/bootstrap-3.4.1/js/bootstrap.min.js create mode 100644 docs/_static/bootstrap-3.4.1/js/npm.js create mode 100644 docs/_static/bootstrap-sphinx.css create mode 100644 docs/_static/bootstrap-sphinx.js create mode 100644 docs/_static/bootswatch-2.3.2/amelia/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/cerulean/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/cosmo/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/cyborg/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/flatly/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/img/glyphicons-halflings-white.png create mode 100644 docs/_static/bootswatch-2.3.2/img/glyphicons-halflings.png create mode 100644 docs/_static/bootswatch-2.3.2/journal/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/readable/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/simplex/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/slate/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/spacelab/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/spruce/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/superhero/bootstrap.min.css create mode 100644 docs/_static/bootswatch-2.3.2/united/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/cerulean/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/cosmo/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/cyborg/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/darkly/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/flatly/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.eot create mode 100644 docs/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.svg create mode 100644 docs/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.ttf create mode 100644 docs/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.woff create mode 100644 docs/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.woff2 create mode 100644 docs/_static/bootswatch-3.4.1/journal/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/lumen/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/paper/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/readable/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/sandstone/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/simplex/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/slate/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/spacelab/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/superhero/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/united/bootstrap.min.css create mode 100644 docs/_static/bootswatch-3.4.1/yeti/bootstrap.min.css create mode 100644 docs/_static/custom.css create mode 100644 docs/_static/doctools.js create mode 100644 docs/_static/documentation_options.js create mode 100644 docs/_static/file.png create mode 100644 docs/_static/js/jquery-1.12.4.min.js create mode 100644 docs/_static/js/jquery-fix.js create mode 100644 docs/_static/language_data.js create mode 100644 docs/_static/minus.png create mode 100644 docs/_static/plus.png create mode 100644 docs/_static/pygments.css create mode 100644 docs/_static/searchtools.js create mode 100644 docs/_static/sphinx_highlight.js create mode 100644 docs/cli/index.html create mode 100644 docs/cli/simulate.html create mode 100644 docs/dragonfly_uwg.cli.html create mode 100644 docs/dragonfly_uwg.cli.simulate.html create mode 100644 docs/dragonfly_uwg.html create mode 100644 docs/dragonfly_uwg.properties.building.html create mode 100644 docs/dragonfly_uwg.properties.context.html create mode 100644 docs/dragonfly_uwg.properties.html create mode 100644 docs/dragonfly_uwg.properties.model.html create mode 100644 docs/dragonfly_uwg.properties.room2d.html create mode 100644 docs/dragonfly_uwg.properties.story.html create mode 100644 docs/dragonfly_uwg.run.html create mode 100644 docs/dragonfly_uwg.simulation.boundary.html create mode 100644 docs/dragonfly_uwg.simulation.html create mode 100644 docs/dragonfly_uwg.simulation.parameter.html create mode 100644 docs/dragonfly_uwg.simulation.refsite.html create mode 100644 docs/dragonfly_uwg.simulation.runperiod.html create mode 100644 docs/dragonfly_uwg.simulation.vegetation.html create mode 100644 docs/dragonfly_uwg.terrain.html create mode 100644 docs/dragonfly_uwg.traffic.html create mode 100644 docs/dragonfly_uwg.writer.html create mode 100644 docs/genindex.html create mode 100644 docs/index.html create mode 100644 docs/modules.html create mode 100644 docs/objects.inv create mode 100644 docs/py-modindex.html create mode 100644 docs/search.html create mode 100644 docs/searchindex.js diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/.nojekyll @@ -0,0 +1 @@ + diff --git a/README.md b/README.md new file mode 100644 index 00000000..ebfb3665 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# documentation diff --git a/docs/.buildinfo b/docs/.buildinfo new file mode 100644 index 00000000..a9fa714e --- /dev/null +++ b/docs/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: f1812a7a2d793992a7afcf3b23f8cfdb +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/.doctrees/cli/index.doctree b/docs/.doctrees/cli/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..1d9ac4d55a729d0e220c0a9566c3858f36482160 GIT binary patch literal 3603 zcmbVPOK%)S5O(71%a664hlP|lEJ7iP$a-_&fHl`I(XcP1<@Kpe77=^mS5e(=F7#H#Ak|5 zf{t|^L#AQNvpsg3?XWv+lO4GyBPLTiQZ~z|8l6jZHcAwk%4{O$Lwi15Um?U%Ecl3L z37s7)jWF&$yK2X5yUg-3P5TRh+xaZhh6q85gcb=pToYEgfn$$L$4=PY5I%bwF|&7& z(s%K@hu?kt9wHw0ei6s8RA-OiMhkBATo36bQ$=#tEYMfaJ{$1Kz%V+9Wtx&K z8H7v^xE}D*N19+qDHLDK2UgR;>FG*72E!qvB0oJX3jKf`x)1-aWxoviNi%4~&=K5F zMMN`#w=VSrj@U1sWW;PvDMHByQ!)+BLre!AP(A@$#E`15z z^<7ooZKP$s-imIoihOvEPRptCWW77jSJR1ZUcw3FyC~HX8BN(Gs6bg(3<*92iE21d zQ3Q+&KB#1ChBh1Z1#7*z3u-cEkK9e8NTy5rigG2Vit3V#TSkJ|%4}9TMRILO;1$=8 zEvO_jQBCYS3rR`vuB)jrJey)-9fVO(jG&2Sjchk}6^t4FaeJ3=msvyxS`?->}jutax{{ zwzFn}{pI?l(WL{6qjy#})=s+p5CDLu8S*0#kaxR+WK&C~6zNW|zKTwFH!!cHN+Qq# zV1sJ{qnx;Qj4_TFkq(|L(7@WRPppyAQsl03U~MBlNQ!O< zrC*A2O>H8hSsKu^PiMK*G-{qKAQGGCCD**f>t2*_O~xVwQhC`~^a*-y2f=7`MmatJ znMy5MP@y{vU${h56&MhO3Dy$SdmCIA+`sSoIn5)q2naEY zi-he2$(X?R&=>A4W=yU>8jT><$NAhanH@_tMLXRJnuP<2`Qi02QhK$idNud0$I|3lnsP4=$|`_`hRH4=5BSeMI4$e5H<#vR2BZ>SiBFPjZn zE>eioXEw(b;kjIlkBS2@Yarp-1Q@7D;d)>RZO3bBJPp_tl9Zho9=c~9kilF^(7tnc zz$i7i<5mo2SL}mxl?gA6TkE!}9Xuq!Br#q{fD7hK zEQLVE5d#KE=V>K>g=GBXzeZQ!b&meRzbhI*C@-uDWktMQi;G%rSC1KBXBx`5l?2YK L=pjsXJ3js!jl+Ap literal 0 HcmV?d00001 diff --git a/docs/.doctrees/cli/simulate.doctree b/docs/.doctrees/cli/simulate.doctree new file mode 100644 index 0000000000000000000000000000000000000000..4260c406b0d6f99e225fd9177db2ccdb8f4325d3 GIT binary patch literal 12880 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 mAWU*YZIrsYCv~@when;=gO2x^8Ja?Ke| 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 JC}PKhe*i0I5ibA$ literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.doctree b/docs/.doctrees/dragonfly_uwg.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f73ea3485266d99009c62e13b14701473ee5d93f GIT binary patch literal 4471 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 literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.properties.context.doctree b/docs/.doctrees/dragonfly_uwg.properties.context.doctree new file mode 100644 index 0000000000000000000000000000000000000000..2ad3d1f05c0a4e2172ea3450ad360390629d7985 GIT binary patch literal 26457 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 LQgI5ufBydgWr6Co literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.properties.doctree b/docs/.doctrees/dragonfly_uwg.properties.doctree new file mode 100644 index 0000000000000000000000000000000000000000..04fbecd531f88f3a933d84d4b712476f0a1bcd79 GIT binary patch literal 4209 zcmc&%TWci86_!?-kw&+X)?VYVt6eR@v5Y-4CgdSF5CVP_o{%^f0x?ZZcTHDC-BsTiQr%hRp$&y97# zxL8d|k_eel?cIJNW1CZ9{8#?Hzx%)XOE*&FMoX(=>fIJJV#c#XQQ<%H?j)!ip6O}5 ze^1lca4FjDY`}(W?=yeNMs8rZ$!PDBd!8tgO0mpt{~XzybXq7`P-QsP7X^v0NlJa# zjJ>r}6B}jiS~uw&RAiKXbR6aY6muE{HoI#wfn925|^} z@9;ziANS&nXbmC$9|)3H|LrHX=oSkYtLQT5Shr_L8a{b8W{=qsd%||ux%>5u$(+uV z6@seSja1jO*7*s1Uth^sccL{f(Ib2;9M^c9F}(W-z%7<6HMc zb(mn|hn0(&)_g}okW&SSAlR4l9v;>drwa?9a*_Hk{oGw_I&T_F zVFI>-*3*qzh$GEPoo5?$l$7~TlmBv%Hd5U}hq@y!;>;#=$wPudiTs9r%6`xO$o@p# zeoj^iEe!KlyMQ1m%Blij(@ZY>of|TqBq+i=cU&LS3igG~7gW*2Uv0UAvgWiD*)4Pr zP|IEPLOwrc=Vc!E0E1txC*O_h)J<*_DNvc7tmEOA*w@1Y@IzbtxC7k*kThsollHK6 z(3MMzt?z;N_>&Ub7i9v4X)*qqyaW2`hXLL8fPMy`Z@B>%30=L8@=Zv-2UfRR5U#wt zsEYCz8!_qKvr1*M32UAW=f;ze!7mZD+EBOpfh5zgZz!EvN4~Qt;)0tfnijVofjBkl zO{5ocx!K~9I=}=Ya4t!K7S;=r`%&vhpt_6hrfEY=-=oo`?_d9W`u+)A{{#HA-9)Dk z%uDvljq3=v=%Fn@>rWl9NS^`MQ3_!6Am2qOcsl7koiq)tD}+vWjk?21bXob{1HwK&fa3Zuke1S&&;hObn$pg*AT8#&b7HDS9CRA%c2G2|?#IBrmWy z1eF??3T|9^w>|UjureXSz1L7UsFzk{SRI3=qR@lGSC}#g9Cz#8!zGRp($L<=m+m;s zDB#FwwUjFNFWpJNcM+k7g~>cjn#|2^*Q4!0s zpSh7W%gN6tny219x&JYuN=X$lB9aVz4H&?;*myUtBHue@P@dx5`P!GYBiO&)Np)yv zK(qD9{SRw9-Dz+Dz|#!z$>5N8#~Bf+#bAeUCs;o~4|8uQ8cUT#Xn24Pt_j_J?uMw% zC459Uc+#MO4c!T`Mn;{;J>bCFaboi#YVnAumI4kaDnYVv;JB2O)eutOi3&|^BBNCv z&~!>yh13)j*zGJK5}W7+*Sx~(I7+xCi!3-&Te;WN32N>L&S+FdS#&t`xK@jrZtva- z|KSoH23`~<72&i5`94IKZkJcv?kp4=U?WnXFylEl{*%*p-AO@<2ql76FXA#_M?tb6 zuszg;dz%?k=#OSIh&8C(Fe#=|r6{LIL9;XfnvtP7(qoX0eaI*8eE2iO^F%Gl3d#fB)CA;j)$ zTi}ZDZYc+&ngcLJLBhon7^q3%VPFZ&FKcQ%57^BlsVXtNAFe$hgNZ9a`QE|;MybIa zk78(DM>Hoqi}1n;zf9exc!PsP`f}PrVWnTFp(iDrJyFf zLC#|3UoWZ$r_ts8|e z=C**T;TiDV9aDGgn>)*%hvm0;&qxe>Ut{EWg?2xz3~LF#d4{wzAbZvJyQYa^h|*}j z{w12sUoN+|w(vUoe-1AF8Ns^aJ~GQ#9mgE_4#7tJDoG%qMz2arUsCBIRX}pSkXZ}% zQuWO>VXHm5cjBnIwcPaZ-uY-G%6KrtqxG}uFPQs5k1<|kr~x$3SY{bu1Ru~H_dc%W zUm?R^_}`+`F|>g+@U+!HcXeUQlJ~@it+)i}Vg2?%L8Jkj2T36En)AY_Vi(i@0El{Y Aga7~l literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.properties.model.doctree b/docs/.doctrees/dragonfly_uwg.properties.model.doctree new file mode 100644 index 0000000000000000000000000000000000000000..379fbb39fd4943012d75354cc78f85c1acbe1b5f GIT binary patch literal 64887 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 literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.run.doctree b/docs/.doctrees/dragonfly_uwg.run.doctree new file mode 100644 index 0000000000000000000000000000000000000000..1924355bb3249d945c4d6648819ae2c9a219f8af GIT binary patch literal 11763 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 z LYUGZ@jrzX#UE7Ymd-3hu`S6M3Vn>M|GUjsU*MbjhYtl2*yWM@W z-IMN~yIY)>6WRDgDJ1qpL_ol?vEvXzA`}Tol!qLNKl}$I2oNNIAV@X@5D~H<;w64x zJ-d6RduC^E<2@x&yw_7*_0?D3qkdIiRabpr>|=MI+ra89*;Hhoi^ERTaJp;*ax`48)r_2=`)HSKr|gN>imS5xMC>#Y zFAQ{Xcg!7kCm!w2x>IZ{@sgI4dc_VjBYQCn7Fx@X)H>%DtFgD#Y1u@eS`Rxx(~g#{ zrLfsSDIx+ITjrhf#9XTAhCxN2=!%w%w{7s9blqKSs-_$2Zf4`MeW%!#mKQkPQ=Pia zDt3}YUcHk*E+mJ|UNfdPPc&L~93v6WV}ZRSo+g`}w)s)F8)qVCf%0_NL}D+}tFF7l zop!gm*SMSAz3lWMH(YWKMV%mUqC@Ax=*%H4j5)|6|0`_7CaI{!)hI^u_MO<&skTbnT9NlRIZ*a?0HY$-7lyc*=5yWOqFFf<@Q~yW@6gIq$TWo#;M0g6I<` zvSzv7EH4<`k^^0KY+xIz{p;zLHEjdi0yk^)sALw}+D>n3u?Jg8I#I?=p6_4PY|~z@ zDL<*TsJS)Q@fO|Wwwn(hK77y$=(!-rF}(MJvrZJl+jOy`NNspgLwaGY5jqPCUc-Z7 z+;(&I$U)0F-*D|<(aF6ze1JPBwPOcwhaCiA!aX_FSa#&$Tdz;xz{jl_u8o65Njh5&?_Aopd3e7YH zJ7Z{UQtLQx2YSkOtC$f_;N;h!hZHf&% znd-h;R$bUz-Irx`Q*7J|_^>3U^exoEt7^m#Q`0v}YJyZ3>`p7GowZvXCtE9fQ`~8{ z!zii6OLmmJyA#sb=K^`t9}8xRdp_lMFCyb}5YndCd z|JL#fR-zkO?2Lf~ijR ztmm9-AiC0JJJe&%4jOJ|&@gCbK80vPVn>Tk(q(U{iD`B&9?)-MfCvQⅆr;G#keg zCJ9}3?Z6Q{O<4SwNh7*xVwRN>)d`!z2MCK`7}RAI8smm_AJLy~W;o8qW&CECYSkRi z9cPmZomPtv{J?spmV^xweiC>6ZxdfnKiNeLhf-x88l*hn?iCsU+xHTV0ys7>F_US8 zL6Qz@spta5rKU)&i;>-S)5Ex{ZnqKTIc^=tCDrBpW6q9= zfwmJgF)^#1hX&F$>@FY;mL^&rVitBQmEC`xNK+JS4;z=FHs1gJT)o-ZETTEQa<-|x zOcT@PIWd{esEU;SA4F!_|9AX@7+CQ6Bj&0DO|qT2n_4%Ukyf}aIVUN=d_xl3paBr*##p^&0nWH&qT0g$^3-0a-W)< z$4c_)BqQA8D-!N8%02BLrGNIi2VomD6xRIL!{%}imw3Ikj;_;5`nQkwcLZKFbTCUj z#WUu1`cc?k;auCAo3q|w1)Zfjf~$#ZCsyR}h*yxr+%iQdvVwps55SgMtkvxB*cDkc zYD~N(r&^hJz1YJ4DNzu!lF&NmdJQ*a`b0d8!dAHGHSCs!j=t&93PM~#wBL#oyWVmv zJ7^mA5SBdaDE|o&0<~K$=|?DHqvGW@(P}LpL_J_2>s^W$FK8e)Fv2?LC7h#*N1|>O+={>q4(|cH$ z-b45YCWqjw^_>qqlM0>s^d{X+xO+~&9oF(AgIJ|O7=`5}oEm%O)@^i0JnheOg_ZZ& z50L7n{d;*<|3Unt@I`cV**>5Kt(HV&)~pxcb&lQ-R7^i$t)w5Q2t4KefHg`#P)YSx zW&Oahd@tZXlF|e#jc`f7FU?~N=}FS}(1dpMB(VN;+{L0)D3y)0?b8vw1z_ zyqMB3Ey!0nls$a&qT7SlFEm_k45~!2C1A5h))H(u?>tW1jBy5zM%}@zgB7h3w)&MfZ!ZtEk#&%Iy%HYFrV?3CuQxb_bdlOxhilE6%wlgAJW{Hm;8G)E!9|vKoG&^+APe> ziuIsz(U0aA?$nCTCr~Y$z={)J(eZzSe)5fM>EA&(Cw3cSZ6^rT<93xihgnp#jMbiP z@}>H{3pwQ4T&y$g2tt*n@)0GfFLsgyqg}D|dXkR=m7{GT1}vS#E^aJQ*@<&; zaOw7uaY-{$3{20hTVP5tKM0wwE9jOqi9XOYrC+MmmQ;#yx0j{6^mn&%aQcca%PtKu zuLhk=WBqSXyWaqGvIdz!F+3UWd*JC0(3&-Xr`JGMz|+6ssTiJ8R;lo5t2W&fKq;Z4 z&;An0e>i};`few&Y^-;+m&IBZ7OKRy0F6y$S&X0jr>wKTpQQIz>xG8B{uil`fTh

_}rx);a!GDqe{S^QE694;Y{`a@}-_Our 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 literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.simulation.doctree b/docs/.doctrees/dragonfly_uwg.simulation.doctree new file mode 100644 index 0000000000000000000000000000000000000000..db3b9616490b27c586fc45ee4c1fac49f5cfd8d7 GIT binary patch literal 4255 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 MHKKu+x9i0J0i|?8W&i*H literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.simulation.refsite.doctree b/docs/.doctrees/dragonfly_uwg.simulation.refsite.doctree new file mode 100644 index 0000000000000000000000000000000000000000..204407364650c59a4ac2ff9908a368f1df92570d GIT binary patch literal 26388 zcmeHQYmgjQb=FGSr{0n+Y_C^t$Cw?JwJXWQ6}%Qs43-}VFUD5PBX+fWW_q`$H8VZw z?$K&7B;*G~DlW#cI}{KnF(iNqhKk`=5*$LDN~#FMs7eOO*qMOB*Z>AsJ1&OP^h_ndqC%tuFmb8>kb|Ht-49k0>8Fz?js?V#>P37e<~ zwQkF8$H_Cv(O*kGl2q7a=&VFRH>|k{+lCS~uhFcBZaaA_VSA}~+-OGgvi^AF*5XFc z*44dHZ_FEiEU9>tY&34fO*i$3RqCO$9JH63tB=~l_FCyH8TP*8UeI!nhuwDD4Uew`;kn~l6myV7_FGVk%&h{3=feox9XYeTTlKcF(MG%O zUPuXBjDvRrxbbd;FmJ;DoAG}Z|Bn)95Kh?O{8ZS^j?)MsWg-1LEKOWN-wB%)Mdt>V z^u`wB#OZpscymS|i{254-J2IWr<7($V#lIJdl@>yPCeuv$4PVA?Lah}qMzOROQ&v%F#{K@SuWVwJC9kX6f1Vracb^@rHfdzcisu*;xZBbG1#hZ(L+3-xphPLH;*k(Io+M}m3r+~-JX)^ zLTvIvtGU4WfTin%ZsdmN-Gu7CA9c^l+56NQXRk7HGjZrlcRpbIIv8WBa_*?7F>uvO`g~(+R@Zj#^F_|8h5=b;l)|5#JM} z6x%E{b-sjxUx0|dtT2?lsQ??~5PwYV9@D$2Ig=+HusN9PC3QZ zp}c2?%NxqM%pDqk8kL3^9e=L8@!SDYjhivre)5E3hAs{5ca%53mJyP@u4|C;7fStu zlv7UebtvzdVf1V{qxpmM;E;ncg%24wY%<%n zhCh4-7;}sI9IS<0$*DC4rn&Hhv9_H*-*8uIaEBANPhHwhyXN&E%^+`T5^KBI39&X$ z*il>fMj00_XC(-q67?GO#Cw{J;R>t5gbiE{()!f@B#nn=Of0HXf;!`n!v{YW$eFMy zTId8-AI^Hxvkqfp(%&AUSGA(|#@NJCx7p;&1Q0%D$3cxGA4iG*B_iwTk08>n8 z!1j(^S)j?+O1Q0wb-$racC1}^pDwTmKtueE-b!Tw@ZtSFeHDRnyV&4DQjjOo~Z|wOBbmjN#8O;9o;T8 zVmP7hpwiR+Hu^K;9fMZU>PypK4eG0XRO0cjDvYfg=kv!cBw?Kmlho>~-m9qJEpX(l zxjE}DtKDr?-4I&pKtWv|3~9#^*IE&PqOclwbV<#pgps4?C{LlPuv?3HX+lve4)}F+ zZq>qbniDIogFm5#pcX}Z`OKJ~I_oteG+b+T;pkb_Aoi>{baCml>sGak*fWfCG;dYz z7Vgx71$WG99Tk&>$JV4Zwn0MBUQWq?6?&%9QWriqLtI(Y5WhtX@z3B7h896E>mNS) zOe%!s)04C}f-)~&d7?Ms$?}t0f@A{D+N@0bH*oQkTc8;s$?JGg{|Npldn=}IuVz1$ zH8J;@5%YUV8hk5Z80#&y@BuEnJT0Ur>E=*oRcqm87nNZ%OV?1^^e)ck zW@^*RIlgv}HVtJXVfI$MM$Ma|)+ls^z`O?GEjvqE<)t9Be(_=J?%*_EQ7ko@Zd9OvIeaOA8xUXkP)1|Q#Vr-^e4zr;lZ*ns zpcU{+kgn0$EGt9lY_#b*`{y~KhYjc~wPr;fmu%b{sGCDSt%KmPl z%F>gJ%6@g7D*J{A*9a!d$xs^m>{>Opywz(+n$!N(L$rEG6s2YJAfN4j$jO=Z{~LeG z9AsLGye5h&M?$UO*S96@-Oo;+4IbtjdX=M=Ip$EXecrdBN9$@YsAE%lVc@>qL&~?5 zo8I%P=ic3E?XJQR|Lj)Vz)aE14+1RqF77Jc!|Dc`F66hOHnBgY3r`qXh**rdVf6ps zNTCWBQx)&Gyk~ntFKWjHn}Ghm=(<~5sC*~&^I9(3rK}2LMvBMhdU*6lc0g2oTh@OP z6GpZ7I!8mwWvWSn}Eb9+4 zy)S^Z6tfV4XapyMdO@QiBBEo$IA$Z)DyI4KB>i!OBX~^H{{{NWxAW8A+rgYTAcg2= zJ5ZN<)$KVt47G}Q=Wh8>eLsK_GCCdULi^f*x~IxfOVnTF#xVjGV&~xjE=?IYOmVqx zkhurv&Jd(^Vt0cmbI00IMt5BdGoRaXFq0yB5YAlRXLEGr9H5!h57lZkb;nGpdg+uZ zhnmNAUADCayAiB0O!^`5d-<{Ey5ey!1{*_mAJ}{lY-~Q*Ttce?Y<>e*d0>;$KZQ2C zw34RaMu`~~_%V{W*w7dRH`m?k#+HM)S7%l1alk7S5nzopWkt-4_^j+xEx60QGPw!! zC{+?5^Jz_Uc})p2iba5oXk<+wau?)(r;lUJ8SjU2oLl^??E3WHgS)Iv_z4PzVWPc6cSrd#i8y=~gRs zCw9~t{{w0<#NL)UlqyySYdM;_i?c3Q6-G5*!BC~wKVD7unSUVF|3RikMkRxuvqhu? zIFag8H`$d=dU2(e;y8io|E2C=3u1sCC_05sCpV2BHko=R9I@0LBk><<_VU8o#u;v^W=Q;LDT(=K-u%~4scaRjh8Sn~{C^*! ztp5otnbl#Ilv1QPzpVaQKW3WoE_Be$fc0VKcOZk!$IP2{!di0&?G{|+Vx}QmW2U~9 z!c3)L7_OJ4KIFP+m0ln1)^~>3^K>nz&&Wyaw5T&YCL@k5Q3o!F+z(n$Rim_T1;1%a zma$8z*FcOXx8)5CgnvTv1>ygs-#`A}zFQT4C)`tQ#nYSkQqJjHMt=9LNq%x)|1?$7 z`}+P>sh;z;EFU35BO>%>_|3+<*dxbIq|+|ao+<1;(gqSXfLhpWs=Cc!MQ)4tZakJ6 zxX0GStK8Z704n8gaMP2t>S1ef@vfADZvuyAoU)zuh7Z!9s`Y%@e}vOsJ|$$#nTE6s zs;N~ObAHDVt;(3Q(qgp)#u<-2>I_4*8Pv|DjxfCcG?e;@sac9G%;Ghi>}qND*wk#n zsSXsU_kXOLtfgiE{h)n9^-7W2JJcsSre>fsHyCcWim;}9*qf=N^B6KEHX+g z`!#>2>uza*ZY1buSoD8D++O~m-!)kromYce=)M@D``nj51{0g_zWfNS3ist-ah2!3 zXw6g3%cRj-*iXK@qy!A(`4Y)`xNx6E;l8YlQmZ%}^c!5z%!=1!|H>MdFTrH!?^{$! zg#P|R(_daw8h^zu5JWVxj?mx!Q3U`8=!ydXzuEu*7;4rX`a4^&U6p*6gnGoh}CWNWPzn1tV-c;u=9IU3|RJTAs z(~vVbc=^^$jm)IV4_;C?Wgd}=Y*FxXR(HUzq*2d=G7Ha$4}XUIJ}ro~hdGT9{d=hy zj+JH|>)(i*n~ptfc-0mN^(d&wL#RUGNyPGPR8&x<_=D=anOGeTs_rDHf@_PNcSO?U zOAO@eQfNd@$YQ@&1KCEKF)&w`w66)~ZlX#8<{Zs?W=3Yhb`s{4r~q@Kks_EgR-^aq z3*X~<0-Xv^=fiZxfsS8o1n4w9>jt_9bK(da1i8~|2e}*~iUIETw;aIbl0OLC-rNUn zxy`)(!1if59n^Fh3~axXsgapR`M^fq3=3>e>kinJGTIqX%RTL{UPZ|pXk*^KshM9p zm>I$O-=Jo)V8(EB^TBL5RTe<@SD+vd$Z`dyK6W*IDdwk$wJzHLa>(u z((*VIkajD`%7wJNDhkqWBi)f9M8y{%?I%)Aa!)_>9)7r^2h!BLwMcuAanTGFdOJ}A z*@oIM^bb_rdB^Nr2cFH1Fj#C5S0e0mMWj z>jJTFp;G~3FVPhTF@CiX5G$Z3i{pY3k!wr|%>>RxdNiJKOJ>2!iHg3W$^UCjKEGNI z`A7yXb1xYxD&8qJs{@jh34G4v3!V!_zTi2TfXh`myi-*QUNBZ^)E$-XnbH#`Ws<; zYu%8Nu-iK2`fhbcq+Vwe@`X9%qCcRM%i~lm<%6r^fY2k9JT=k>;*eXd8zX~Ovgqww zWRuG-(y8;Du=s-WlrHjQv^vQm5}E};3{sI???S>xjwi@X%yZgPn!s}?FeSfs!zRA% zp$6jf~p3UDn05j-MR*<>n7ujy4qM>xKP4~PDac*Z*o`ck}^6Mx&;9h7zipZSQ zjm+KAx?AloqrJV9t&Nh{pI%O87A%6=?(6J|X#3E2F%Xgw150WSa0t#$mztigpbRs`mB04>Fb6 ze&PYT7kLm-6Fen2EGZ9=LE@CQaXWsTfE^N9)a<%T3H{IwrM6#WV|Y<>32Z_ljk;0@ zWH8+8ba7U~++y32g%K&MyGWw0RT6^bHyY5!uf46a_w|Yt|c|(18yLd5RyxxEu7?voGLQBYbwXpRKc{{4Q3*|P0Eh~qxc?K%;qUx z=obkN(-k^F+HyKSjKO7}_!S5J^~?x6z|&(k-S#pRvDs)L&))<4XW8D4+p#fA zM6x(00&HQ-fXO#c?NEIDQ~UC#{}-r z-F)I_AIFbK!JxYa~wld)69EUL#|a%O_f zKqp(ao}8KinMwW<+aImAW9Ndcj}<2Pu?I>H#&+|J%eG9pd=Z&IO$KHghi@HZ&mqyy z)I21Ct6|{9e1nv^2vPc6w}WGh^jjGG2QH);xCHG9YK`_1bU@mLgJdY8ZZ%V^(ZbYVK&d1KSYuXd2#1$h_Q0r|Td(ADOW zuxXdr4!3=te$9eS2y24r3r)mQrGdE-+af(FXYK%qf@a0|Ee~i75>=BmX9s)kQc^sA z8?7zrFO*u6ei{SC$LXfH_WzFH@o(`Fu}QkkUxh{?{@_yN-H2bI;Libqr*PhROy)}M zOV_7=uHqD5b*3>LKXDNO36qQDYTpZ+f>_nBzQLPq{LLr8D*v4i9Ed;To#ojEcs2r` zUIq2(RZ*W_aN+Om_;gmxr?X^y=boRD@M+t_r@axMqD4N1lzduv`?NamvOQ@<=c3<( zJe}e_^b`B?H0EC;f_!UjPFBTN?2p*Ffb ew|D8=T;F%eT!NTi%QTOt>XcnmnozO!pZ`AsS+`*T literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.simulation.runperiod.doctree b/docs/.doctrees/dragonfly_uwg.simulation.runperiod.doctree new file mode 100644 index 0000000000000000000000000000000000000000..c2a1171951259c2b1aa901287402f8e6279dfbe5 GIT binary patch literal 25179 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 E0DqRyG5`Po literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.simulation.vegetation.doctree b/docs/.doctrees/dragonfly_uwg.simulation.vegetation.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f1f6a00a1f14d78c7161604785a67fd9e6e6c487 GIT binary patch literal 30293 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 literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.terrain.doctree b/docs/.doctrees/dragonfly_uwg.terrain.doctree new file mode 100644 index 0000000000000000000000000000000000000000..0aecaa4d3ffd3286f5c0ff5ff2b94727ca695dc9 GIT binary patch literal 54689 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 literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.traffic.doctree b/docs/.doctrees/dragonfly_uwg.traffic.doctree new file mode 100644 index 0000000000000000000000000000000000000000..96536de0cbb62f1d3760a360e4dfbe801274eac7 GIT binary patch literal 33943 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 literal 0 HcmV?d00001 diff --git a/docs/.doctrees/dragonfly_uwg.writer.doctree b/docs/.doctrees/dragonfly_uwg.writer.doctree new file mode 100644 index 0000000000000000000000000000000000000000..1409e5b76147b6a0711033952a06f4a2d2b4db79 GIT binary patch literal 8852 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 AUjP6A literal 0 HcmV?d00001 diff --git a/docs/.doctrees/environment.pickle b/docs/.doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..7d452aa5f02ed9b5a67f7da59f73d35267e402a5 GIT binary patch literal 286367 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 literal 0 HcmV?d00001 diff --git a/docs/.doctrees/index.doctree b/docs/.doctrees/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..5993ea26b37f43676aa1d66db9759eb20e68f9ca GIT binary patch literal 8632 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 dYypZsh7-mV`32D#T^8?E=C$#F0^B(W>!Q1$P zk3!E0C)vhUnC6BSS}o-@@mEDmiqPBpldVz!+uI*v6H&jS@b4l&3M0}5%y&b-jq@Vx zNugN0@CzEo)Hx#--XXt~&#uUAihYntYAuBL?kQR}U&Gv2w~GbME)82I9Ulgc7HKQ; z1OAv#_!GX%Pr@&Au1hvIUMXhgSK3_8yQEH$)b>hec3$e-OJ>iEMG{|~-}eh-J@8 zFx!Bx=d`1;DMzbQSH~xR_rfgmCPA8X0G_NR4UogoGUtRUz|o_QbW5X^V?a#kzoyco zbscN_+PliTc)<@Y!l+;XCw1CHEOH7eI9gU%>>I5eLPh6SG2ENSu-}A0;P(;=<96wd z#A=FekVJ~Ki%@#0mDe#GFJVS$$2K-Ug=rcFfC5=9wJGDLFtb2mMF8|PVk`_kZX`^y zT0*Xb<77=t_-hZeOuYyb!zyhYk?b8qIq!!tr?Ol2!Vy~uRMAoA?OLf9dO2J80`6v4 z)F@OD8ivslk`Y>#v6NDZPbk!kFqP>XS}}~gTb}-OY6ZTZ+}$M17;OlrDwlvIV1V2* z7sEkQ`3)<*+DZ&3TRU4O_{T77jNS&YKKkVD#@5Mjm=XZ+EJuAL62k11R27~U4CT(T zz7MK~2Zm+Z2dPso9WPe=Dji^SLIgGNI{^ttxF9**sZ8By;4Qu%f~10m+4>3z-sWqa3Vx z0?tj4j0H1l(!uDoRU_+J7QRSdaAKLMiOE#5mZRVM7)Iz*vpl~SjuP1b8&v>>Qk25Q z-w&UMS;Z;>ieRFttS;CjNfs2bCtidvxpS5Mc|M2Oo>kY5Yjvhg0XjWOnsorsB#xD6 zk3&0#ke@#L{zuevW|rBO`6RhD|Lxj5m`f90FPS+L%q?plm6qCiKx~x|auW{iwQ_VtxG1>958&OCI^lj|OA40#6 zCmE-R2aRvYhAP)3#OX_4!9{u?)bqcc0k|w65o!qxv_s)IO$qB4TWX?A*p-?#OiUO0 zWdvk!vE-odH6q}QIrw;#LF3gv~d9 z!(ZDlN&`| AegFUf literal 0 HcmV?d00001 diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..ebfb3665 --- /dev/null +++ b/docs/README.md @@ -0,0 +1 @@ +# documentation diff --git a/docs/_modules/dragonfly_uwg/properties/building.html b/docs/_modules/dragonfly_uwg/properties/building.html new file mode 100644 index 00000000..ca0011b5 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/properties/building.html @@ -0,0 +1,745 @@ + + + + + + + dragonfly_uwg.properties.building — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + +

+ +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.properties.building

+# coding=utf-8
+"""Building UWG Properties."""
+from __future__ import division
+
+from honeybee.typing import float_in_range
+from honeybee.altnumber import autocalculate
+
+from ._refdefaults import _RefDefaults
+
+
+
+[docs] +class BuildingUWGProperties(object): + """UWG Properties for Dragonfly Building. + + Args: + host: A dragonfly_core Building object that hosts these properties. + program: Text for the name of the building program. Must be one of the + options below. (Default: LargeOffice). + + * LargeOffice + * MediumOffice + * SmallOffice + * MidriseApartment + * Retail + * StripMall + * PrimarySchool + * SecondarySchool + * SmallHotel + * LargeHotel + * Hospital + * Outpatient + * Warehouse + * SuperMarket + * FullServiceRestaurant + * QuickServiceRestaurant + + vintage: Text for the vintage of the building. This will be used to set + default constructions. Must be one of the options below. (Default: New). + + * New + * 1980_Present + * Pre1980 + + fract_heat_to_canyon: A number from 0 to 1 that represents the fraction of + the building's waste heat from air conditioning that gets rejected + into the urban canyon. (Default: 0.5). + shgc: A number from 0 to 1 that represents the SHGC of the building's windows. + Used to evaluate the amount of solar heat reflected into the street canyon. + If autocalculate, it will be set by the building vintage and the Model + climate zone. (Default: autocalculate). + wall_albedo: A number from 0 to 1 that represents the exterior wall albedo + of the building. If autocalculate, it will be set by the building program + and the DoE commercial reference buildings. (Default: autocalculate). + roof_albedo: A number from 0 to 1 that represents the exterior roof albedo of + the building. If autocalculate, it will be set by the vintage, meaning 0.7 + for New and 0.2 for 1980_Present and Pre1980. (Default: autocalculate). + roof_veg_fraction: A number from 0 to 1 that represents the roof vegetation + fraction of the building. (Default: 0). + + Properties: + * host + * program + * vintage + * fract_heat_to_canyon + * shgc + * wall_albedo + * roof_albedo + * roof_veg_fraction + """ + __slots__ = ('_host', '_program', '_vintage', '_fract_heat_to_canyon', '_shgc', + '_wall_albedo', '_roof_albedo', '_roof_veg_fraction') + + PROGRAMS = \ + ('LargeOffice', 'MediumOffice', 'SmallOffice', 'MidriseApartment', 'Retail', + 'StripMall', 'PrimarySchool', 'SecondarySchool', 'SmallHotel', 'LargeHotel', + 'Hospital', 'Outpatient', 'Warehouse', 'SuperMarket', + 'FullServiceRestaurant', 'QuickServiceRestaurant') + VINTAGES = ('New', '1980_Present', 'Pre1980') + _VINTAGE_MAP = {'New': 'new', '1980_Present': 'pst80', 'Pre1980': 'pre80'} + + def __init__(self, host, program='LargeOffice', vintage='New', + fract_heat_to_canyon=0.5, shgc=autocalculate, wall_albedo=autocalculate, + roof_albedo=autocalculate, roof_veg_fraction=0): + """Initialize Building UWG properties.""" + self._host = host + self.program = program + self.vintage = vintage + self.fract_heat_to_canyon = fract_heat_to_canyon + self.shgc = shgc + self.wall_albedo = wall_albedo + self.roof_albedo = roof_albedo + self.roof_veg_fraction = roof_veg_fraction + + @property + def host(self): + """Get the Building object hosting these properties.""" + return self._host + + @property + def program(self): + """Get or set text for the name of the building program.""" + return self._program + + @program.setter + def program(self, value): + assert value in self.PROGRAMS, 'Program "{}" is not acceptable for the UWG. ' \ + 'Choose from the following:\n{}'.format(value, '\n'.join(self.PROGRAMS)) + self._program = value + + @property + def program_uwg(self): + """Get text for the building program in a format that the UWG likes.""" + if self._program == 'Retail': + return 'standaloneretail' + elif self._program == 'MediumOffice': + return 'medoffice' + return self._program.lower() + + @property + def vintage(self): + """Get or set text for the vintage of the building.""" + return self._vintage + + @vintage.setter + def vintage(self, value): + assert value in self.VINTAGES, 'Vintage "{}" is not acceptable for the UWG. ' \ + 'Choose from the following:\n{}'.format(value, '\n'.join(self.VINTAGES)) + self._vintage = value + + @property + def vintage_uwg(self): + """Get text for the building vintage in a format that the UWG likes.""" + return self._VINTAGE_MAP[self._vintage] + + @property + def fract_heat_to_canyon(self): + """Get or set the fraction of the bldg heat rejected to the urban canyon.""" + return self._fract_heat_to_canyon + + @fract_heat_to_canyon.setter + def fract_heat_to_canyon(self, value): + self._fract_heat_to_canyon = float_in_range(value, 0, 1, 'fract_heat_to_canyon') + + @property + def shgc(self): + """Get or set the SHGC of the building.""" + return self._shgc if self._shgc is not None else autocalculate + + @shgc.setter + def shgc(self, value): + if value == autocalculate: + self._shgc = None + else: + self._shgc = float_in_range(value, 0, 1, 'shgc') + + @property + def wall_albedo(self): + """Get or set the exterior wall albedo of the building.""" + if self._wall_albedo is None: + return _RefDefaults.wall_albedo_by_type(self._program) + return self._wall_albedo + + @wall_albedo.setter + def wall_albedo(self, value): + if value == autocalculate: + self._wall_albedo = None + else: + self._wall_albedo = float_in_range(value, 0, 1, 'wall_albedo') + + @property + def roof_albedo(self): + """Get or set the exterior roof albedo of the building.""" + if self._roof_albedo is None: + return _RefDefaults.roof_albedo_by_era(self._vintage) + return self._roof_albedo + + @roof_albedo.setter + def roof_albedo(self, value): + if value == autocalculate: + self._roof_albedo = None + else: + self._roof_albedo = float_in_range(value, 0, 1, 'roof_albedo') + + @property + def roof_veg_fraction(self): + """Get or set the roof vegetation fraction of the building.""" + return self._roof_veg_fraction + + @roof_veg_fraction.setter + def roof_veg_fraction(self, value): + self._roof_veg_fraction = float_in_range(value, 0, 1, 'roof_veg_fraction') + +
+[docs] + def default_shgc(self, climate_zone): + """Get the default DoE Reference Building SHGC for this building. + + This is used whenever the building's shgc property is autocalculate. + + Args: + climate_zone: Text for the ASHRAE climate zone, which must include + the humidity letter (eg. "4A") unless it is climate zone 7 or 8. + """ + return _RefDefaults.shgc_by_era_zone(self._vintage, climate_zone)
+ + +
+[docs] + def infer_program_from_energy_program(self): + """Attempt to infer the UWG building program from the honeybee-energy program. + + The inferring will happen by first finding the most common energy ProgramType + among the assigned Room2Ds. If the identifier of this most common program + contains the name of an acceptable UWG building program, it will be assigned + as this object's building program. If no match is found or there's no + honeybee-energy extension installed, this object's program will remain unchanged. + """ + try: + room_progs = [rm.properties.energy.program_type.identifier + for rm in self.host.unique_room_2ds] + except AttributeError: # dragonfly-energy extension is not installed + room_progs = None + if room_progs is not None: + primary_prog = max(set(room_progs), key=room_progs.count) + for prog in self.PROGRAMS: + if prog in primary_prog: + self._program = prog + break
+ + +
+[docs] + @classmethod + def from_dict(cls, data, host): + """Create BuildingUWGProperties from a dictionary. + + Note that the dictionary must be a non-abridged version for this + classmethod to work. + + Args: + data: A dictionary representation of BuildingUWGProperties. + host: A Building object that hosts these properties. + """ + assert data['type'] == 'BuildingUWGProperties', \ + 'Expected BuildingUWGProperties. Got {}.'.format(data['type']) + prog, era, f_can, shgc, w_alb, r_alb, r_veg = cls._default_keys(data) + return cls(host, prog, era, f_can, shgc, w_alb, r_alb, r_veg)
+ + +
+[docs] + def apply_properties_from_dict(self, abridged_data): + """Apply properties from a BuildingUWGPropertiesAbridged dictionary. + + Args: + abridged_data: A BuildingUWGPropertiesAbridged dictionary (typically + coming from a Model). + """ + prog, era, f_can, shgc, w_alb, r_alb, r_veg = self._default_keys(abridged_data) + self.program = prog + self.vintage = era + self.fract_heat_to_canyon = f_can + self.shgc = shgc + self.wall_albedo = w_alb + self.roof_albedo = r_alb + self.roof_veg_fraction = r_veg
+ + +
+[docs] + def to_dict(self, abridged=False): + """Return Building UWG properties as a dictionary. + + Args: + abridged: Boolean for whether the full dictionary of the Building should + be written (False) or just the identifier of the the individual + properties (True). Default: False. + """ + base = {'uwg': {}} + base['uwg']['type'] = 'BuildingUWGProperties' if not \ + abridged else 'BuildingUWGPropertiesAbridged' + + # write all of the required properties + base['uwg']['program'] = self._program + base['uwg']['vintage'] = self._vintage + base['uwg']['fract_heat_to_canyon'] = self._fract_heat_to_canyon + base['uwg']['roof_veg_fraction'] = self._roof_veg_fraction + + # write all of the optional properties + if self._shgc is not None: + base['uwg']['shgc'] = self._shgc + if self._wall_albedo is not None: + base['uwg']['wall_albedo'] = self._wall_albedo + if self._roof_albedo is not None: + base['uwg']['roof_albedo'] = self._roof_albedo + return base
+ + + @staticmethod + def _default_keys(data): + prog = data['program'] if 'program' in data else 'LargeOffice' + era = data['vintage'] if 'vintage' in data else 'New' + f_can = data['fract_heat_to_canyon'] if 'fract_heat_to_canyon' in data else 0.5 + shgc = autocalculate if 'shgc' not in data or \ + data['shgc'] == autocalculate.to_dict() else data['shgc'] + w_alb = autocalculate if 'wall_albedo' not in data or \ + data['wall_albedo'] == autocalculate.to_dict() else data['wall_albedo'] + r_alb = autocalculate if 'roof_albedo' not in data or \ + data['roof_albedo'] == autocalculate.to_dict() else data['roof_albedo'] + r_veg = data['roof_veg_fraction'] if 'roof_veg_fraction' in data else 0 + return prog, era, f_can, shgc, w_alb, r_alb, r_veg + +
+[docs] + def duplicate(self, new_host=None): + """Get a copy of this object. + + new_host: A new Building object that hosts these properties. + If None, the properties will be duplicated with the same host. + """ + _host = new_host or self._host + _new_obj = BuildingUWGProperties( + _host, self._program, self._vintage, self._fract_heat_to_canyon) + _new_obj._shgc = self._shgc + _new_obj._wall_albedo = self._wall_albedo + _new_obj._roof_albedo = self._roof_albedo + _new_obj._roof_veg_fraction = self._roof_veg_fraction + return _new_obj
+ + +
+[docs] + def ToString(self): + return self.__repr__()
+ + + def __repr__(self): + return 'Building UWG Properties: {}'.format(self.host.identifier)
+ +
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 8.0.2.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/properties/context.html b/docs/_modules/dragonfly_uwg/properties/context.html new file mode 100644 index 00000000..3dbec7f1 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/properties/context.html @@ -0,0 +1,516 @@ + + + + + + + dragonfly_uwg.properties.context — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.properties.context

+# coding=utf-8
+"""Context Shade UWG Properties."""
+
+
+
+[docs] +class ContextShadeUWGProperties(object): + """UWG Properties for Dragonfly ContextShade. + + Args: + host_shade: A dragonfly_core ContextShade object that hosts these properties. + is_vegetation: Boolean to note whether the shade represents a tree canopy, + in which case, it will be incorporated into the simulation as tree + cover. (Default: False). + + Properties: + * host + * is_vegetation + """ + + __slots__ = ('_host', '_is_vegetation') + + def __init__(self, host_shade, is_vegetation=False): + """Initialize ContextShade UWG properties.""" + self._host = host_shade + self.is_vegetation = is_vegetation + + @property + def host(self): + """Get the Shade object hosting these properties.""" + return self._host + + @property + def is_vegetation(self): + """Get or set a boolean for whether the shade represents a tree canopy.""" + return self._is_vegetation + + @is_vegetation.setter + def is_vegetation(self, value): + self._is_vegetation = bool(value) + +
+[docs] + @classmethod + def from_dict(cls, data, host): + """Create ContextShadeUWGProperties from a dictionary. + + Note that the dictionary must be a non-abridged version for this + classmethod to work. + + Args: + data: A dictionary representation of ContextShadeUWGProperties. + host: A ContextShade object that hosts these properties. + """ + assert data['type'] == 'ContextShadeUWGProperties', \ + 'Expected ContextShadeUWGProperties. Got {}.'.format(data['type']) + is_veg = data['is_vegetation'] if 'is_vegetation' in data else False + return cls(host, is_veg)
+ + +
+[docs] + def apply_properties_from_dict(self, abridged_data): + """Apply properties from a ContextShadeUWGPropertiesAbridged dictionary. + + Args: + abridged_data: A ContextShadeUWGPropertiesAbridged dictionary (typically + coming from a Model). + """ + if 'is_vegetation' in abridged_data: + self.is_vegetation = abridged_data['is_vegetation']
+ + +
+[docs] + def to_dict(self, abridged=False): + """Return UWG properties as a dictionary. + + Args: + abridged: Boolean to note whether the full dictionary describing the + object should be returned (False) or just an abridged version (True). + Default: False. + """ + base = {'uwg': {}} + base['uwg']['type'] = 'ContextShadeUWGProperties' if not \ + abridged else 'ContextShadeUWGPropertiesAbridged' + base['uwg']['is_vegetation'] = self.is_vegetation + return base
+ + +
+[docs] + def duplicate(self, new_host=None): + """Get a copy of this object. + + new_host: A new ContextShade object that hosts these properties. + If None, the properties will be duplicated with the same host. + """ + _host = new_host or self._host + return ContextShadeUWGProperties(_host, self._is_vegetation)
+ + +
+[docs] + def ToString(self): + return self.__repr__()
+ + + def __repr__(self): + return 'Context Shade UWG Properties: {}'.format(self.host.identifier)
+ +
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 8.0.2.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/properties/model.html b/docs/_modules/dragonfly_uwg/properties/model.html new file mode 100644 index 00000000..5837a42b --- /dev/null +++ b/docs/_modules/dragonfly_uwg/properties/model.html @@ -0,0 +1,859 @@ + + + + + + + dragonfly_uwg.properties.model — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.properties.model

+# coding=utf-8
+"""Model UWG Properties."""
+from ladybug_geometry.geometry3d import Face3D
+from honeybee.typing import float_in_range
+from honeybee.altnumber import autocalculate
+from dragonfly.extensionutil import model_extension_dicts
+
+from ..terrain import Terrain
+from ..traffic import TrafficParameter
+
+
+
+[docs] +class ModelUWGProperties(object): + """UWG Properties for Dragonfly Model. + + Args: + host: A dragonfly_core Model object that hosts these properties. + terrain: A Terrain object that dictates the properties of the street and + ground beneath the buildings. If None, a default terrain object will be + generated by analysing all of the buildings in the Model and drawing + a bounding rectangle in the XY plane around them. (Default: None). + traffic: A TrafficParameter object that defines the activity and + intensity of traffic within the urban street canyons. If None, + traffic intensity will be approximated using the average building + story count along with a generic traffic schedule. (Default: None). + tree_coverage_fraction: A number from 0 to 1 that defines the fraction of the + exposed terrain covered by trees. If Autocalculate, it will be determined + by evaluating the horizontal area of all ContextShade geometry that has + a true is_vegetation property. (Default: autocalculate). + grass_coverage_fraction: A number from 0 to 1 that defines the fraction + of the exposed terrain that is covered by grass or shrubs. + Anything not covered in grass is assumed to be pavement. (Default: 0). + + Properties: + * host + * terrain + * traffic + * tree_coverage_fraction + * grass_coverage_fraction + * footprint_density + * facade_to_site + * exposed_ground_area + * is_tree_coverage_autocalcualted + """ + + __slots__ = ('_host', '_terrain', '_traffic', '_tree_coverage_fraction', + '_grass_coverage_fraction') + + def __init__(self, host, terrain=None, traffic=None, + tree_coverage_fraction=autocalculate, grass_coverage_fraction=0): + """Initialize Model UWG properties.""" + self._host = host + self.terrain = terrain + self.traffic = traffic + self.tree_coverage_fraction = tree_coverage_fraction + self.grass_coverage_fraction = grass_coverage_fraction + + @property + def host(self): + """Get the Model object hosting these properties.""" + return self._host + + @property + def terrain(self): + """Get or set a Terrain object that dictates the properties of the ground.""" + if self._terrain is None: + return Terrain.from_building_bounding_rect(self.host.buildings) + return self._terrain + + @terrain.setter + def terrain(self, value): + if value is not None: + assert isinstance(value, Terrain), 'Expected Terrain object for ' \ + 'ModelUWGProperties.terrain. Got {}.'.format(type(value)) + self._terrain = value + + @property + def traffic(self): + """Get or set a TrafficParameter object that dictates the street traffic.""" + return self._traffic + + @traffic.setter + def traffic(self, value): + if value is not None: + assert isinstance(value, TrafficParameter), 'Expected TrafficParameter' \ + ' object for ModelUWGProperties.traffic. Got {}.'.format(type(value)) + self._traffic = value if value is not None else TrafficParameter() + + @property + def tree_coverage_fraction(self): + """Get or set the fraction of the exposed site area covered in trees.""" + if self._tree_coverage_fraction is None: + return self._autocalcualted_tree_coverage(self.exposed_ground_area) + return self._tree_coverage_fraction + + @tree_coverage_fraction.setter + def tree_coverage_fraction(self, value): + if value == autocalculate: + self._tree_coverage_fraction = None + else: + self._tree_coverage_fraction = \ + float_in_range(value, 0, 1, 'tree_coverage_fraction') + + @property + def grass_coverage_fraction(self): + """Get or set the fraction of the exposed site area covered in grass or shrubs. + + Anything not covered in grass is assumed to be pavement. + """ + return self._grass_coverage_fraction + + @grass_coverage_fraction.setter + def grass_coverage_fraction(self, value): + self._grass_coverage_fraction = \ + float_in_range(value, 0, 1, 'grass_coverage_fraction') + + @property + def footprint_density(self): + """Get a fractional number for the footprint density of the model.""" + return self.host.footprint_area / self.terrain.horizontal_area + + @property + def facade_to_site(self): + """Get a fractional number for the ratio between the facade are and site area.""" + return self.host.exterior_wall_area / self.terrain.horizontal_area + + @property + def exposed_ground_area(self): + """Get the area of the terrain exposed to the outdoor air.""" + return self.terrain.horizontal_area - self.host.footprint_area + + @property + def is_tree_coverage_autocalcualted(self): + """Get a boolean for whether tree coverage is autocalcualted from Context.""" + return self._tree_coverage_fraction is None + +
+[docs] + def grass_coverage_from_geometry(self, grass_geometry): + """Set this object's grass_coverage_fraction using an array of Face3Ds. + + Args: + grass_geometry: An array of Face3Ds that represent grass surfaces. + """ + grass_area = self.compute_horizontal_area(grass_geometry) + g_frac = grass_area / self.exposed_ground_area + self.grass_coverage_fraction = g_frac if g_frac < 1 else 1
+ + +
+[docs] + def average_shgc(self, climate_zone): + """Get the average SHGC across all buildings in the model. + + Args: + climate_zone: Text for the ASHRAE climate zone, which must include + the humidity letter (eg. "4A") unless it is climate zone 7 or 8. + """ + ext_ap_areas = [bldg.exterior_aperture_area for bldg in self.host.buildings] + total_area = sum(ext_ap_areas) + try: + ext_ap_weights = [area / total_area for area in ext_ap_areas] + except ZeroDivisionError: # no apertures in model; just use dummy shgc + return 0.4 + shgc = 0 + for bldg, weight in zip(self.host.buildings, ext_ap_weights): + if bldg.properties.uwg._shgc is None: + shgc += bldg.properties.uwg.default_shgc(climate_zone) * weight + else: + shgc += bldg.properties.uwg._shgc * weight + return shgc
+ + +
+[docs] + def move(self, moving_vec): + """Move these properties along a vector. + + Args: + moving_vec: A ladybug_geometry Vector3D with the direction and distance + to move the object. + """ + if self._terrain is not None: + self._terrain.move(moving_vec)
+ + +
+[docs] + def rotate_xy(self, angle, origin): + """Rotate this Terrain counterclockwise in the XY plane by a certain angle. + + Args: + angle: An angle in degrees. + origin: A ladybug_geometry Point3D for the origin around which the + object will be rotated. + """ + if self._terrain is not None: + self._terrain.rotate_xy(angle, origin)
+ + +
+[docs] + def reflect(self, plane): + """Reflect this Terrain across a plane. + + Args: + plane: A ladybug_geometry Plane across which the object will be reflected. + """ + if self._terrain is not None: + self._terrain.reflect(plane)
+ + +
+[docs] + def scale(self, factor, origin=None): + """Scale this Terrain by a factor from an origin point. + + Args: + factor: A number representing how much the object should be scaled. + origin: A ladybug_geometry Point3D representing the origin from which + to scale. If None, it will be scaled from the World origin (0, 0, 0). + """ + if self._terrain is not None: + self._terrain.scale(factor, origin)
+ + +
+[docs] + def apply_properties_from_dict(self, data): + """Apply the uwg properties of a dictionary to the host Model of this object. + + Args: + data: A dictionary representation of an entire dragonfly-core Model. + Note that this dictionary must have ModelUWGProperties in order + for this method to successfully apply the uwg properties. + """ + # check that UWG properties exist and apply the global ones to this object + assert 'uwg' in data['properties'], \ + 'Dictionary possesses no ModelUWGProperties.' + uwg_data = data['properties']['uwg'] + if 'terrain' in uwg_data and uwg_data['terrain'] is not None: + self.terrain = Terrain.from_dict(uwg_data['terrain']) + if 'traffic' in uwg_data and uwg_data['traffic'] is not None: + self.traffic = TrafficParameter.from_dict(uwg_data['traffic']) + if 'tree_coverage_fraction' in uwg_data and \ + uwg_data['tree_coverage_fraction'] != autocalculate.to_dict(): + self.tree_coverage_fraction = uwg_data['tree_coverage_fraction'] + if 'grass_coverage_fraction' in uwg_data: + self.grass_coverage_fraction = uwg_data['grass_coverage_fraction'] + + # collect lists of uwg property dictionaries + building_u_dicts, _, _, context_u_dicts = \ + model_extension_dicts(data, 'uwg', [], [], [], []) + + # apply uwg properties to objects using the uwg property dictionaries + for bldg, b_dict in zip(self.host.buildings, building_u_dicts): + if b_dict is not None: + bldg.properties.uwg.apply_properties_from_dict(b_dict) + for shade, s_dict in zip(self.host.context_shades, context_u_dicts): + if s_dict is not None: + shade.properties.uwg.apply_properties_from_dict(s_dict)
+ + +
+[docs] + def to_dict(self): + """Return Model UWG properties as a dictionary.""" + base = {'uwg': {'type': 'ModelUWGProperties'}} + if self._terrain is not None: + base['uwg']['terrain'] = self._terrain.to_dict() + base['uwg']['traffic'] = self.traffic.to_dict() + if self._tree_coverage_fraction is not None: + base['uwg']['tree_coverage_fraction'] = self.tree_coverage_fraction + base['uwg']['grass_coverage_fraction'] = self.grass_coverage_fraction + return base
+ + +
+[docs] + def to_uwg_dict(self): + """Get a dictionary following the input schema of the UWG. + + This dictionary can be serialized into a JSON in order to be run through + the UWG. Note that this dictionary will only include the properties that + the dragonfly Model object possesses and will lack all of those provided + by the UWGSimulationParameter object. For fully simulate-able UWG + input, the Model.to.uwg method should be used. The keys of the dictionary + output by this method include the following. + + * bldheight + * blddensity + * vertohor + * grasscover + * treecover + * bld + * h_mix + * albroof + * vegroof + * glzr + * albwall + * flr_h + * charlength + * albroad + * droad + * kroad + * croad + * sensanth + * schtraffic + + """ + # check that the model units are meters before extracting outputs + assert self.host.units == 'Meters', \ + 'Model units must be in Meters to use to_uwg_dict.' + + # get the geometry properties on a per-building level + floors = [bldg.floor_area for bldg in self.host._buildings] + footprints = [bldg.footprint_area for bldg in self.host._buildings] + walls = [bldg.exterior_wall_area for bldg in self.host._buildings] + + total_floor, total_foot, total_wall = sum(floors), sum(footprints), sum(walls) + floor_weights = [area / total_floor for area in floors] + foot_weights = [area / total_foot for area in footprints] + walls_weights = [area / total_wall for area in walls] + + # do some geometry computations with checks + terrain = self.terrain # request once to potentially avoid regenerating it + site_area = terrain.horizontal_area + density = total_foot / site_area + assert density <= 1, 'Building footprint areas [{} m2] cannot be larger than ' \ + 'the terrain area [{} m2].'.format(total_foot, site_area) + tree = self._tree_coverage_fraction + if self._tree_coverage_fraction is None: + ground_area = site_area - total_foot + tree = self._autocalcualted_tree_coverage(ground_area) + tree = tree * (1 - density) # uwg expcts fraction for whole area + grass = self.grass_coverage_fraction * (1 - density) # uwg expcts for whole area + average_height = self.host.average_height_above_ground + story_count = self.host.average_story_count_above_ground + sens_anth = self.traffic._watts_per_area + if self.traffic._watts_per_area is None: + sens_anth = self._autocalculated_traffic(story_count) + + # create the dictionary + base = {'type': 'UWG'} + base['bldheight'] = average_height + base['blddensity'] = density if density < 1 else 0.99 + base['vertohor'] = round(sum(walls) / site_area, 5) + base['treecover'] = round(tree, 5) + base['grasscover'] = round(grass, 5) if tree + grass + density <= 1 \ + else round(1 - tree - density, 5) + base['bld'] = self._create_bld_matrix(floor_weights) + base['h_mix'] = self._weighted_property('fract_heat_to_canyon', floor_weights) + base['albroof'] = self._weighted_property('roof_albedo', foot_weights) + base['vegroof'] = self._weighted_property('roof_veg_fraction', foot_weights) + base['glzr'] = round(self.host.exterior_aperture_area / total_wall, 5) + base['albwall'] = self._weighted_property('wall_albedo', walls_weights) + base['flr_h'] = round(average_height / story_count, 5) + base['charlength'] = round(terrain.characteristic_length, 5) + base['albroad'] = round(terrain.pavement_albedo, 5) + base['droad'] = round(terrain.pavement_thickness, 5) + base['kroad'] = round(terrain.pavement_conductivity, 5) + base['croad'] = round(terrain.pavement_heat_capacity, 5) + base['sensanth'] = round(sens_anth, 5) + base['schtraffic'] = [self.traffic.weekday_schedule, + self.traffic.saturday_schedule, + self.traffic.sunday_schedule] + return base
+ + +
+[docs] + def duplicate(self, new_host=None): + """Get a copy of this Model. + + Args: + new_host: A new Model object that hosts these properties. + If None, the properties will be duplicated with the same host. + """ + _host = new_host or self._host + new_obj = ModelUWGProperties(_host) + if self._terrain is not None: + new_obj._terrain = self._terrain.duplicate() + new_obj._traffic = self._traffic.duplicate() + new_obj._tree_coverage_fraction = self._tree_coverage_fraction + new_obj._grass_coverage_fraction = self._grass_coverage_fraction + return new_obj
+ + +
+[docs] + @staticmethod + def compute_horizontal_area(face3ds): + """Get the area of a list of Face3D in the XY Plane. + + This is useful for taking geometry representing grass or pavement and + turning it into a number for grass_coverage_fraction. + """ + poly2d = Terrain._face3d_to_polygon2d(face3ds) + return sum([geo.area for geo in poly2d])
+ + + def _create_bld_matrix(self, floor_area_weights): + """Create the matrix of building programs and vintages for the uwg_dict.""" + bld_dict = {} + for bldg, weight in zip(self.host._buildings, floor_area_weights): + uwg_prop = bldg.properties.uwg + key = '{}_{}'.format(uwg_prop.program, uwg_prop.vintage) + try: + bld_dict[key][2] += weight + except KeyError: # first time we have this program and vintage + bld_dict[key] = [uwg_prop.program_uwg, uwg_prop.vintage_uwg, weight] + # round all weight values to avoid tolerance issues + for val in bld_dict: + bld_dict[val][2] = round(bld_dict[val][2], 3) + return tuple(bld_dict.values()) + + def _autocalcualted_tree_coverage(self, ground_area): + """Autocalculate the tree coverage from the model context shades.""" + veg_shds, mesh_area = [], 0 + for shd in self.host.context_shades: + if shd.properties.uwg.is_vegetation: + if isinstance(shd.geometry, Face3D): + veg_shds.extend(shd.geometry) + else: + mesh_area += shd.geometry.area + tree_area = self.compute_horizontal_area(veg_shds) + mesh_area + if ground_area <= 0: + return 0 + return tree_area / ground_area if tree_area / ground_area <= 1 else 1 + + def _weighted_property(self, attribute, weights): + weight_val = sum([getattr(bldg.properties.uwg, attribute) * w + for bldg, w in zip(self.host._buildings, weights)]) + return round(weight_val, 5) + + @staticmethod + def _autocalculated_traffic(story_count): + """Autocalculate the traffic wattage from the average story count.""" + if story_count <= 3: + return 4 + if story_count <= 6: + return 10 + return 20 + +
+[docs] + def ToString(self): + return self.__repr__()
+ + + def __repr__(self): + return 'Model UWG Properties: {}'.format(self.host.identifier)
+ +
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 8.0.2.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/properties/room2d.html b/docs/_modules/dragonfly_uwg/properties/room2d.html new file mode 100644 index 00000000..6785f866 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/properties/room2d.html @@ -0,0 +1,500 @@ + + + + + + + dragonfly_uwg.properties.room2d — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.properties.room2d

+# coding=utf-8
+"""Room2D UWG Properties."""
+
+
+
+[docs] +class Room2DUWGProperties(object): + """UWG Properties for Dragonfly Room2D. + + Args: + host: A dragonfly_core Room2D object that hosts these properties. + + Properties: + * host + """ + + __slots__ = ('_host',) + + def __init__(self, host): + """Initialize Room2D UWG properties.""" + self._host = host + + @property + def host(self): + """Get the Room2D object hosting these properties.""" + return self._host + +
+[docs] + @classmethod + def from_dict(cls, data, host): + """Create Room2DUWGProperties from a dictionary. + + Note that the dictionary must be a non-abridged version for this + classmethod to work. + + Args: + data: A dictionary representation of Room2DUWGProperties. + host: A Room2D object that hosts these properties. + """ + assert data['type'] == 'Room2DUWGProperties', \ + 'Expected Room2DUWGProperties. Got {}.'.format(data['type']) + new_prop = cls(host) + return new_prop
+ + +
+[docs] + def apply_properties_from_dict(self, abridged_data): + """Apply properties from a Room2DUWGPropertiesAbridged dictionary. + + Args: + abridged_data: A Room2DUWGPropertiesAbridged dictionary (typically + coming from a Model). + """ + pass # currently no properties to apply
+ + +
+[docs] + def to_dict(self, abridged=False): + """Return Room2D UWG properties as a dictionary. + + Args: + abridged: Boolean for whether the full dictionary of the Room2D should + be written (False) or just the identifier of the the individual + properties (True). Default: False. + """ + base = {'uwg': {}} + base['uwg']['type'] = 'Room2DUWGProperties' if not \ + abridged else 'Room2DUWGPropertiesAbridged' + return base
+ + +
+[docs] + def duplicate(self, new_host=None): + """Get a copy of this object. + + new_host: A new Room2D object that hosts these properties. + If None, the properties will be duplicated with the same host. + """ + _host = new_host or self._host + return Room2DUWGProperties(_host)
+ + +
+[docs] + def ToString(self): + return self.__repr__()
+ + + def __repr__(self): + return 'Room2D UWG Properties: {}'.format(self.host.identifier)
+ +
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 8.0.2.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/properties/story.html b/docs/_modules/dragonfly_uwg/properties/story.html new file mode 100644 index 00000000..01635493 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/properties/story.html @@ -0,0 +1,500 @@ + + + + + + + dragonfly_uwg.properties.story — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.properties.story

+# coding=utf-8
+"""Story UWG Properties."""
+
+
+
+[docs] +class StoryUWGProperties(object): + """UWG Properties for Dragonfly Story. + + Args: + host: A dragonfly_core Story object that hosts these properties. + + Properties: + * host + """ + + __slots__ = ('_host',) + + def __init__(self, host): + """Initialize Story UWG properties.""" + self._host = host + + @property + def host(self): + """Get the Story object hosting these properties.""" + return self._host + +
+[docs] + @classmethod + def from_dict(cls, data, host): + """Create StoryUWGProperties from a dictionary. + + Note that the dictionary must be a non-abridged version for this + classmethod to work. + + Args: + data: A dictionary representation of StoryUWGProperties. + host: A Story object that hosts these properties. + """ + assert data['type'] == 'StoryUWGProperties', \ + 'Expected StoryUWGProperties. Got {}.'.format(data['type']) + new_prop = cls(host) + return new_prop
+ + +
+[docs] + def apply_properties_from_dict(self, abridged_data): + """Apply properties from a StoryUWGPropertiesAbridged dictionary. + + Args: + abridged_data: A StoryUWGPropertiesAbridged dictionary (typically + coming from a Model). + """ + pass # currently no properties to apply
+ + +
+[docs] + def to_dict(self, abridged=False): + """Return Story UWG properties as a dictionary. + + Args: + abridged: Boolean for whether the full dictionary of the Story should + be written (False) or just the identifier of the the individual + properties (True). Default: False. + """ + base = {'uwg': {}} + base['uwg']['type'] = 'StoryUWGProperties' if not \ + abridged else 'StoryUWGPropertiesAbridged' + return base
+ + +
+[docs] + def duplicate(self, new_host=None): + """Get a copy of this object. + + new_host: A new Story object that hosts these properties. + If None, the properties will be duplicated with the same host. + """ + _host = new_host or self._host + return StoryUWGProperties(_host)
+ + +
+[docs] + def ToString(self): + return self.__repr__()
+ + + def __repr__(self): + return 'Story UWG Properties: {}'.format(self.host.identifier)
+ +
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 8.0.2.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/run.html b/docs/_modules/dragonfly_uwg/run.html new file mode 100644 index 00000000..d4283189 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/run.html @@ -0,0 +1,540 @@ + + + + + + + dragonfly_uwg.run — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.run

+# coding=utf-8
+"""Module for running models through the Urban Weather Generator (UWG)."""
+from __future__ import division
+
+import os
+import json
+import subprocess
+
+from honeybee.config import folders as hb_folders
+from ladybug.config import folders as lb_folders
+from ladybug.futil import write_to_file, preparedir
+
+
+
+[docs] +def run_uwg(model, epw_file_path, simulation_parameter=None, directory=None, + silent=False): + """Run a UWG dictionary file through the UWG on any operating system. + + Args: + model: A Dragonfly Model to be used to morph the EPW for the urban area. + epw_file_path: The full path to an EPW file. + simulation_parameter: A UWGSimulationParameter object that dictates various + settings about the UWG simulation. If None, default parameters will + be generated. (Default: None). + directory: Text for the directory into which the the uwg JSON and morphed + urban EPW will be written. If None, it will be written into the + ladybug default_epw_folder within a subfolder bearing the name + of the dragonfly Model. (Default: None). + silent: Boolean to note whether the simulation should be run silently. + This only has an effect on Windows simulations since Unix-based + simulations always use shell and are always silent (Default: False). + + Returns: + The following files output from the UWG CLI run + + - uwg_json -- Path to a .json file derived from the input uwg_dict. + + - epw -- File path to the morphed EPW. Will be None if the UWG + failed to run. + """ + # get the name of the EPW and the directory into which the urban epw will be written + epw_file_path = os.path.abspath(epw_file_path) + epw_name = '{}.epw'.format(model.identifier) + if directory is None: + directory = os.path.join(lb_folders.default_epw_folder, model.identifier) + preparedir(directory, remove_content=False) + + # write the model to a UWG dictionary + uwg_dict = model.to.uwg(model, epw_file_path, simulation_parameter) + uwg_json = os.path.join(directory, '{}_uwg.json'.format(model.identifier)) + with open(uwg_json, 'w') as fp: + json.dump(uwg_dict, fp, indent=4) + + # run the simulation + if os.name == 'nt': # we are on Windows + epw = _run_uwg_windows(uwg_json, epw_file_path, epw_name, silent) + else: # we are on Mac, Linux, or some other unix-based system + epw = _run_uwg_unix(uwg_json, epw_file_path, epw_name) + return uwg_json, epw
+ + + +def _run_uwg_windows(uwg_json_path, epw_file_path, epw_name, silent=False): + """Run a JSON file through the UWG on a Windows-based operating system. + + A batch file will be used to run the simulation unless silent is True. + + Args: + uwg_json_path: The full path to a UWG JSON file. + epw_file_path: The full path to an EPW file. + epw_name: Text for the name of the EPW file. + silent: Boolean to note whether the simulation should be run silently + (without the batch window). If so, the simulation will be run using + subprocess with shell set to True. (Default: False). + + Returns: + File path to the morphed EPW. Will be None if the UWG failed to run. + """ + directory = os.path.dirname(uwg_json_path) + custom_env = os.environ.copy() + custom_env['PYTHONHOME'] = '' + if not silent: # run the simulations with shell=False + command = '"{}" -m uwg simulate model "{}" "{}" --new-epw-dir "{}" ' \ + '--new-epw-name "{}"'.format( + hb_folders.python_exe_path, uwg_json_path, + epw_file_path, directory, epw_name) + process = subprocess.Popen( + command, stderr=subprocess.PIPE, shell=False, env=custom_env) + else: # run the simulation using subprocess with shell=True + cmds = [hb_folders.python_exe_path, '-m', 'uwg', 'simulate', 'model', + uwg_json_path, epw_file_path, '--new-epw-dir', directory, + '--new-epw-name', epw_name] + process = subprocess.Popen( + cmds, stderr=subprocess.PIPE, shell=True, env=custom_env) + _, stderr = process.communicate() + rc = process.returncode + if isinstance(rc, int) and rc != 0: + raise RuntimeError('The UWG failed to run:\n{}'.format(stderr)) + epw_file = os.path.join(directory, epw_name) + return epw_file if os.path.isfile(epw_file) else None + + +def _run_uwg_unix(uwg_json_path, epw_file_path, epw_name): + """Run a JSON file through the UWG on a Unix-based operating system. + + This includes both Mac OS and Linux since a shell will be used to run + the simulation. + + Args: + uwg_json_path: The full path to a UWG JSON file. + epw_file_path: The full path to an EPW file. + epw_name: Text for the name of the EPW file. + + Returns: + File path to the morphed EPW. Will be None if the UWG failed to run. + """ + directory = os.path.dirname(uwg_json_path) + # write a shell file + shell = '#!/usr/bin/env bash\n\ncd "{}"\n {} -m uwg simulate model "{}" "{}" ' \ + '--new-epw-dir "{}" --new-epw-name "{}"'.format( + directory, hb_folders.python_exe_path, uwg_json_path, + epw_file_path, directory, epw_name) + shell_file = os.path.join(directory, 'in.sh') + write_to_file(shell_file, shell, True) + + # make the shell script executable using subprocess.check_call + # this is more reliable than native Python chmod on Mac + subprocess.check_call(['chmod', 'u+x', shell_file]) + + # run the shell script + subprocess.call(shell_file) + + epw_file = os.path.join(directory, epw_name) + return epw_file if os.path.isfile(epw_file) else None +
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 8.0.2.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/simulation/boundary.html b/docs/_modules/dragonfly_uwg/simulation/boundary.html new file mode 100644 index 00000000..a4ab0941 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/simulation/boundary.html @@ -0,0 +1,574 @@ + + + + + + + dragonfly_uwg.simulation.boundary — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.simulation.boundary

+# coding=utf-8
+from __future__ import division
+
+from honeybee.typing import float_positive
+
+
+
+[docs] +class BoundaryLayerParameter(object): + """Properties of the urban boundary layer. + + Args: + day_boundary_layer_height: A number that represents the height + in meters of the urban boundary layer during the daytime. + This is the height to which the urban meteorological conditions + are stable and representative of the overall urban area. + Typically, this boundary layer height increases with the + height of the buildings. (Default: 1000 meters). + night_boundary_layer_height: A number that represents the height + in meters of the urban boundary layer during the nighttime. + This is the height to which the urban meteorological + conditions are stable and representative of the overall + urban area. Typically, this boundary layer height increases with + the height of the buildings. (Default: 80 meters). + inversion_height: A number that represents the height in meters at which + the vertical profile of potential temperature becomes stable. + Can be determined by flying helium balloons equipped + with temperature sensors and recording the air temperatures + at different heights. (Default: 150 meters). + circulation_coefficient: A number representing the circulation + coefficient. (Default: 1.2, per Bueno (2012)). + exchange_coefficient: A number representing the exchange + coefficient. (Default: 1.0, per Bueno (2014)). + """ + + __slots__ = ('_day_boundary_layer_height', '_night_boundary_layer_height', + '_inversion_height', '_circulation_coefficient', + '_exchange_coefficient') + + def __init__(self, day_boundary_layer_height=1000, night_boundary_layer_height=80, + inversion_height=150, + circulation_coefficient=1.2, exchange_coefficient=1.0): + """Initialize Boundary Layer parameters""" + self.day_boundary_layer_height = day_boundary_layer_height + self.night_boundary_layer_height = night_boundary_layer_height + self.inversion_height = inversion_height + self.circulation_coefficient = circulation_coefficient + self.exchange_coefficient = exchange_coefficient + +
+[docs] + @classmethod + def from_dict(cls, data): + """Create a BoundaryLayerParameter object from a dictionary + + Args: + data: A dictionary representation of an BoundaryLayerParameter object + in the format below. + + .. code-block:: python + + { + 'type': 'BoundaryLayerParameter', + 'day_boundary_layer_height': 1000, # float for height in meters + 'night_boundary_layer_height': 80, # float for height in meters + 'inversion_height': 150, # float for inversion layer height + 'circulation_coefficient': 1.2, # float for circulation coefficient + 'exchange_coefficient': 1.0 # float for exchange coefficient + } + """ + day = data['day_boundary_layer_height'] \ + if 'day_boundary_layer_height' in data else 1000 + night = data['night_boundary_layer_height'] \ + if 'night_boundary_layer_height' in data else 80 + inv = data['inversion_height'] if 'inversion_height' in data else 150 + circ = data['circulation_coefficient'] \ + if 'circulation_coefficient' in data else 1.2 + exch = data['exchange_coefficient'] \ + if 'exchange_coefficient' in data else 1.0 + return cls(day, night, inv, circ, exch)
+ + + @property + def day_boundary_layer_height(self): + """Get or set a number for the daytime boundary layer height in meters.""" + return self._day_boundary_layer_height + + @day_boundary_layer_height.setter + def day_boundary_layer_height(self, value): + self._day_boundary_layer_height = \ + float_positive(value, 'day_boundary_layer_height') + + @property + def night_boundary_layer_height(self): + """Get or set a number for the nighttime boundary layer height i meters.""" + return self._night_boundary_layer_height + + @night_boundary_layer_height.setter + def night_boundary_layer_height(self, value): + self._night_boundary_layer_height = \ + float_positive(value, 'night_boundary_layer_height') + + @property + def inversion_height(self): + """Get or set a number for the inversion height in meters.""" + return self._inversion_height + + @inversion_height.setter + def inversion_height(self, value): + self._inversion_height = float_positive(value, 'inversion_height') + + @property + def circulation_coefficient(self): + """Get or set a number for the circulation coefficient.""" + return self._circulation_coefficient + + @circulation_coefficient.setter + def circulation_coefficient(self, value): + self._circulation_coefficient = float_positive(value, 'circulation_coefficient') + + @property + def exchange_coefficient(self): + """Get or set the exchange coefficient.""" + return self._exchange_coefficient + + @exchange_coefficient.setter + def exchange_coefficient(self, value): + self._exchange_coefficient = float_positive(value, 'exchange_coefficient') + +
+[docs] + def to_dict(self): + """Get BoundaryLayerParameter dictionary.""" + return { + 'type': 'BoundaryLayerParameter', + 'day_boundary_layer_height': self.day_boundary_layer_height, + 'night_boundary_layer_height': self.night_boundary_layer_height, + 'inversion_height': self.inversion_height, + 'circulation_coefficient': self.circulation_coefficient, + 'exchange_coefficient': self.exchange_coefficient}
+ + +
+[docs] + def duplicate(self): + """Get a copy of this object.""" + return self.__copy__()
+ + + def __copy__(self): + return BoundaryLayerParameter( + self._day_boundary_layer_height, self._night_boundary_layer_height, + self._inversion_height, + self._circulation_coefficient, self._exchange_coefficient) + +
+[docs] + def ToString(self): + """Overwrite .NET ToString method.""" + return self.__repr__()
+ + + def __repr__(self): + """Represent Dragonfly boundary layer parameters.""" + return 'BoundaryLayerParameter: [boundary (day | night): {} m | {} m] ' \ + '[inversion: {} m]'.format( + self.day_boundary_layer_height, self.night_boundary_layer_height, + self.inversion_height)
+ +
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 8.0.2.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/simulation/parameter.html b/docs/_modules/dragonfly_uwg/simulation/parameter.html new file mode 100644 index 00000000..2416c3f5 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/simulation/parameter.html @@ -0,0 +1,714 @@ + + + + + + + dragonfly_uwg.simulation.parameter — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.simulation.parameter

+# coding=utf-8
+"""Complete set of UWG Simulation Settings."""
+from __future__ import division
+
+from .runperiod import UWGRunPeriod
+from .vegetation import VegetationParameter
+from .refsite import ReferenceEPWSite
+from .boundary import BoundaryLayerParameter
+
+from honeybee.altnumber import autocalculate
+from honeybee.typing import int_positive
+from ladybug.epw import EPW
+
+
+
+[docs] +class UWGSimulationParameter(object): + """Complete set of UWG Simulation Settings. + + Args: + climate_zone: Text for the ASHRAE climate zone, including the letter for + humidity classification (eg. "4A"). This is used to set default + constructions for various buildings. If set to autocalculate, + the climate zone will be estimated from analysis of the epw to be + morphed for simulation. (Default: autocalculate). + run_period: A UWGRunPeriod object to describe the time period over which to + run the simulation. If None, the simulation will be run for the whole + year. (Default: None). + timestep: An integer for the number of timesteps per hour at which the + calculation will be run. (Default: 12). + vegetation_parameter: A VegetationParameter to specify the behavior of + vegetation in the urban area. If None, generic vegetation parameters + will be generated. (Default: None). + reference_epw_site: A ReferenceEPWSite to specify the properties of the + reference site where the input rural EPW was recorded. If None, generic + airport properties will be generated. (Default: None). + boundary_layer_parameter: A BoundaryLayerParameter to specify the properties + of the urban boundary layer. If None, generic boundary layer parameters + will be generated. (Default: None). + """ + __slots__ = ('_climate_zone', '_run_period', '_timestep', '_vegetation_parameter', + '_reference_epw_site', '_boundary_layer_parameter') + + VALIDTIMESTEPS = (1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60) + VALIDZONES = ('1A', '1B', '2A', '2B', '3A', '3B', '3C', '4A', '4B', '4C', + '5A', '5B', '5C', '6A', '6B', '7', '8') + + def __init__(self, climate_zone=autocalculate, run_period=None, timestep=12, + vegetation_parameter=None, reference_epw_site=None, + boundary_layer_parameter=None): + """Initialize UWGSimulationParameter""" + self.climate_zone = climate_zone + self.run_period = run_period + self.timestep = timestep + self.vegetation_parameter = vegetation_parameter + self.reference_epw_site = reference_epw_site + self.boundary_layer_parameter = boundary_layer_parameter + + @property + def climate_zone(self): + """Get or set a text for the ASHRAE climate zone.""" + return self._climate_zone if self._climate_zone is not None else autocalculate + + @climate_zone.setter + def climate_zone(self, value): + if value == autocalculate: + self._climate_zone = None + else: + assert value in self.VALIDZONES, 'UWGSimulationParameter climate_zone ' \ + '"{}" is invalid.\nMust be one of the following:{}'.format( + value, self.VALIDZONES) + self._climate_zone = value + + @property + def run_period(self): + """Get or set a UWGRunPeriod object for the time period to run the simulation.""" + return self._run_period + + @run_period.setter + def run_period(self, value): + if value is not None: + assert isinstance(value, UWGRunPeriod), 'Expected UWGRunPeriod for ' \ + 'UWGSimulationParameter run_period. Got {}.'.format(type(value)) + self._run_period = value + else: + self._run_period = UWGRunPeriod() + + @property + def timestep(self): + """Get or set a integer for the number of simulation timesteps per hour.""" + return self._timestep + + @timestep.setter + def timestep(self, value): + value = int_positive(value, 'simulation parameter timestep') + assert value in self.VALIDTIMESTEPS, 'UWGSimulationParameter timestep "{}" is ' \ + 'invalid. Must be one of the following:{}'.format(value, self.VALIDTIMESTEPS) + self._timestep = value + + @property + def vegetation_parameter(self): + """Get or set a VegetationParameter object for the behavior of vegetation.""" + return self._vegetation_parameter + + @vegetation_parameter.setter + def vegetation_parameter(self, value): + if value is not None: + assert isinstance(value, VegetationParameter), 'Expected ' \ + 'VegetationParameter. Got {}.'.format(type(value)) + self._vegetation_parameter = value + else: + self._vegetation_parameter = VegetationParameter() + + @property + def reference_epw_site(self): + """Get or set a ReferenceEPWSite object for the properties of the rural EPW.""" + return self._reference_epw_site + + @reference_epw_site.setter + def reference_epw_site(self, value): + if value is not None: + assert isinstance(value, ReferenceEPWSite), 'Expected ReferenceEPWSite ' \ + 'for UWGSimulationParameter. Got {}.'.format(type(value)) + self._reference_epw_site = value + else: + self._reference_epw_site = ReferenceEPWSite() + + @property + def boundary_layer_parameter(self): + """Get or set a BoundaryLayerParameter object for the boundary layer properties. + """ + return self._boundary_layer_parameter + + @boundary_layer_parameter.setter + def boundary_layer_parameter(self, value): + if value is not None: + assert isinstance(value, BoundaryLayerParameter), 'Expected ' \ + 'BoundaryLayerParameter. Got {}.'.format(type(value)) + self._boundary_layer_parameter = value + else: + self._boundary_layer_parameter = BoundaryLayerParameter() + +
+[docs] + @classmethod + def from_dict(cls, data): + """Create a UWGSimulationParameter object from a dictionary. + + Args: + data: A UWGSimulationParameter dictionary in following the format below. + + .. code-block:: python + + { + "type": "UWGSimulationParameter", + "climate_zone": "5A", # Text for ASHRAE climate zone + "run_period": {}, # Dragonfly UWGRunPeriod dictionary + "timestep": 20, # Integer for the simulation timestep + "vegetation_parameter": {}, # Dragonfly VegetationParameter dictionary + "reference_epw_site": {}, # Dragonfly ReferenceEPWSite dictionary + "boundary_layer_parameter": {} # Dragonfly BoundaryLayerParameter dictionary + } + """ + assert data['type'] == 'UWGSimulationParameter', \ + 'Expected UWGSimulationParameter dictionary. Got {}.'.format(data['type']) + + cz = autocalculate if 'climate_zone' not in data or \ + data['climate_zone'] == autocalculate.to_dict() else data['climate_zone'] + timestep = data['timestep'] if 'timestep' in data else 12 + run_period = None + if 'run_period' in data and data['run_period'] is not None: + run_period = UWGRunPeriod.from_dict(data['run_period']) + veg_par = None + if 'vegetation_parameter' in data and data['vegetation_parameter'] is not None: + veg_par = VegetationParameter.from_dict(data['vegetation_parameter']) + ref_site = None + if 'reference_epw_site' in data and data['reference_epw_site'] is not None: + ref_site = ReferenceEPWSite.from_dict(data['reference_epw_site']) + bnd_par = None + if 'boundary_layer_parameter' in data and \ + data['boundary_layer_parameter'] is not None: + bnd_par = BoundaryLayerParameter.from_dict(data['boundary_layer_parameter']) + + return cls(cz, run_period, timestep, veg_par, ref_site, bnd_par)
+ + +
+[docs] + def to_dict(self): + """UWGSimulationParameter dictionary representation.""" + base = { + 'type': 'UWGSimulationParameter', + 'run_period': self.run_period.to_dict(), + 'timestep': self.timestep, + 'vegetation_parameter': self.vegetation_parameter.to_dict(), + 'reference_epw_site': self.reference_epw_site.to_dict(), + 'boundary_layer_parameter': self.boundary_layer_parameter.to_dict()} + if self._climate_zone is not None: + base['climate_zone'] = self.climate_zone + return base
+ + +
+[docs] + def to_uwg_dict(self, epw_file): + """Get a dictionary following the input schema of the UWG. + + Note that this dictionary will only include the properties that the + UWGSimulationParameter object possesses and will lack all of those provided + by the Model object. For fully simulate-able UWG input, the Model.to.uwg + method should be used. The keys of the dictionary output by this method + include the following. + + * zone + * month + * day + * nday + * dtsim + * rurvegcover + * vegstart + * vegend + * albveg + * latgrss + * lattree + * h_ubl1 + * h_ubl2 + * h_ref + * h_temp + * h_wind + * c_circ + * c_exch + * h_obs + + Args: + epw_file: File path to the EPW that will be morphed by the UWG. This + will be used to fill all autocalculated fields like the ASHRAE + climate zone and vegetation start/end. + """ + # autocalculate any missing values from the epw_file + climate_zone = self._climate_zone + veg_start = self.vegetation_parameter._start_month + veg_end = self.vegetation_parameter._end_month + if climate_zone is None or veg_start is None or veg_end is None: + epw_obj = EPW(epw_file) + start_def, end_def = self._autocalc_start_end_vegetation(epw_obj) + veg_start = start_def if veg_start is None else veg_start + veg_end = end_def if veg_end is None else veg_end + climate_zone = epw_obj.ashrae_climate_zone if climate_zone is None \ + else climate_zone + + # create the uwg dictionary + base = {} + base['zone'] = climate_zone + base['month'] = self.run_period.start_date.month + base['day'] = self.run_period.start_date.day + base['nday'] = self.run_period.day_count + base['dtsim'] = int((60 / self.timestep) * 60) + base['vegstart'] = veg_start + base['vegend'] = veg_end + base['albveg'] = self.vegetation_parameter.vegetation_albedo + base['latgrss'] = self.vegetation_parameter.grass_latent_fraction + base['lattree'] = self.vegetation_parameter.tree_latent_fraction + base['h_ubl1'] = self.boundary_layer_parameter.day_boundary_layer_height + base['h_ubl2'] = self.boundary_layer_parameter.night_boundary_layer_height + base['h_ref'] = self.boundary_layer_parameter.inversion_height + base['c_circ'] = self.boundary_layer_parameter.circulation_coefficient + base['c_exch'] = self.boundary_layer_parameter.exchange_coefficient + base['rurvegcover'] = self.reference_epw_site.vegetation_coverage + base['h_temp'] = self.reference_epw_site.temp_measure_height + base['h_wind'] = self.reference_epw_site.wind_measure_height + base['h_obs'] = self.reference_epw_site.average_obstacle_height + return base
+ + +
+[docs] + def duplicate(self): + """Get a copy of this object.""" + return self.__copy__()
+ + + @staticmethod + def _autocalc_start_end_vegetation(epw_obj, threshold_temp=10): + """Autocalculate the vegetation start and end month from an EPW.""" + month_temps = epw_obj.dry_bulb_temperature.average_monthly() + veg_start, veg_end, veg_start_set = 1, 12, False + for i, t in enumerate(month_temps): + if t > threshold_temp and not veg_start_set: + veg_start, veg_start_set = i + 1, True + elif t < threshold_temp and veg_start_set: + veg_end, veg_start_set = i + 1, False + return veg_start, veg_end + + def __copy__(self): + return UWGSimulationParameter( + self.climate_zone, self.run_period.duplicate(), self.timestep, + self.vegetation_parameter.duplicate(), self.reference_epw_site.duplicate(), + self.boundary_layer_parameter.duplicate()) + +
+[docs] + def ToString(self): + """Overwrite .NET ToString method.""" + return self.__repr__()
+ + + def __repr__(self): + return 'UWG SimulationParameter:'
+ +
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 8.0.2.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/simulation/refsite.html b/docs/_modules/dragonfly_uwg/simulation/refsite.html new file mode 100644 index 00000000..2c2a20c8 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/simulation/refsite.html @@ -0,0 +1,543 @@ + + + + + + + dragonfly_uwg.simulation.refsite — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.simulation.refsite

+# coding=utf-8
+from __future__ import division
+
+from honeybee.typing import float_in_range, float_positive
+
+
+
+[docs] +class ReferenceEPWSite(object): + """Properties of the reference site where the input rural EPW was recorded. + + Args: + average_obstacle_height: A number that represents the height in meters of + objects that obstruct the view to the sky at the weather station site. + This includes both trees and buildings. (Default: 0.1 m). + vegetation_coverage: A number between 0 and 1 that represents the fraction + of the reference EPW site that is covered in grass. (Default: 0.9). + temp_measure_height: A number that represents the height in meters at which + temperature is measured on the weather station. (Default: 10m, the + standard measurement height for US DoE EPW files). + wind_measure_height: A number that represents the height in meters at which + wind speed is measured on the weather station. (Default: 10m, the + standard measurement height for US DoE EPW files). + """ + __slots__ = ('_average_obstacle_height', '_vegetation_coverage', + '_temp_measure_height', '_wind_measure_height') + + def __init__(self, average_obstacle_height=0.1, vegetation_coverage=0.9, + temp_measure_height=10, wind_measure_height=10): + """Initialize ReferenceEPWSite parameters""" + self.average_obstacle_height = average_obstacle_height + self.vegetation_coverage = vegetation_coverage + self.temp_measure_height = temp_measure_height + self.wind_measure_height = wind_measure_height + +
+[docs] + @classmethod + def from_dict(cls, data): + """Create a ReferenceEPWSite object from a dictionary + + Args: + data: A dictionary representation of an ReferenceEPWSite object + in the format below. + + .. code-block:: python + + { + 'type': 'ReferenceEPWSite', + 'average_obstacle_height': 10, # float for obstacle height in meters + 'vegetation_coverage': 0.95, # float for vegetation coverage between 0 and 1 + 'temp_measure_height': 10, # float for temp measurement height in meters + 'wind_measure_height: 15 # float for wind measurement height in meters + } + """ + ob_hgt = data['average_obstacle_height'] \ + if 'average_obstacle_height' in data else 0.1 + veg_cov = data['vegetation_coverage'] \ + if 'vegetation_coverage' in data else 0.9 + temp = data['temp_measure_height'] \ + if 'temp_measure_height' in data else 10 + wind = data['wind_measure_height'] \ + if 'wind_measure_height' in data else 10 + return cls(ob_hgt, veg_cov, temp, wind)
+ + + @property + def average_obstacle_height(self): + """Get or set a number for the average obstacle height in meters.""" + return self._average_obstacle_height + + @average_obstacle_height.setter + def average_obstacle_height(self, value): + self._average_obstacle_height = float_positive(value, 'average_obstacle_height') + + @property + def vegetation_coverage(self): + """Get or set a fractional number for the vegetation coverage.""" + return self._vegetation_coverage + + @vegetation_coverage.setter + def vegetation_coverage(self, value): + self._vegetation_coverage = float_in_range(value, 0, 1, 'vegetation_coverage') + + @property + def temp_measure_height(self): + """Get or set a number for the temperature measurement height in meters.""" + return self._temp_measure_height + + @temp_measure_height.setter + def temp_measure_height(self, value): + self._temp_measure_height = float_positive(value, 'temp_measure_height') + + @property + def wind_measure_height(self): + """Get or set a number for the wind measurement height in meters.""" + return self._wind_measure_height + + @wind_measure_height.setter + def wind_measure_height(self, value): + self._wind_measure_height = float_positive(value, 'wind_measure_height') + +
+[docs] + def to_dict(self): + """Get ReferenceEPWSite dictionary.""" + return { + 'type': 'ReferenceEPWSite', + 'average_obstacle_height': self.average_obstacle_height, + 'vegetation_coverage': self.vegetation_coverage, + 'temp_measure_height': self.temp_measure_height, + 'wind_measure_height': self.wind_measure_height}
+ + +
+[docs] + def duplicate(self): + """Get a copy of this object.""" + return self.__copy__()
+ + + def __copy__(self): + return ReferenceEPWSite( + self._average_obstacle_height, self._vegetation_coverage, + self._temp_measure_height, self._wind_measure_height) + +
+[docs] + def ToString(self): + """Overwrite .NET ToString method.""" + return self.__repr__()
+ + + def __repr__(self): + """Represent Dragonfly reference EPW site parameters.""" + return 'ReferenceEPWSite: [obstacle height: {} m] [veg coverage: {}]'.format( + self._average_obstacle_height, self._vegetation_coverage)
+ +
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 8.0.2.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/simulation/runperiod.html b/docs/_modules/dragonfly_uwg/simulation/runperiod.html new file mode 100644 index 00000000..cb5ced76 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/simulation/runperiod.html @@ -0,0 +1,565 @@ + + + + + + + dragonfly_uwg.simulation.runperiod — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.simulation.runperiod

+# coding=utf-8
+"""UWG Simulation Run Period."""
+from __future__ import division
+
+from ladybug.analysisperiod import AnalysisPeriod
+from ladybug.dt import Date
+
+
+
+[docs] +class UWGRunPeriod(object): + """UWG Simulation Run Period. + + Args: + start_date: A ladybug Date object for the start of the simulation. + Must be before the end date and have a leap_year property matching the + end_date. (Default: 1 Jan). + end_date: A ladybug Date object for the end of the simulation. + Must be after the start date and have a leap_year property matching the + start_date. (Default: 31 Dec). + + Properties: + * start_date + * end_date + * day_count + """ + __slots__ = ('_start_date', '_end_date') + + def __init__(self, start_date=Date(1, 1), end_date=Date(12, 31)): + """Initialize UWGRunPeriod.""" + # process the dates + if start_date is not None: + self._check_date(start_date, 'start_date') + self._start_date = start_date + else: + self._start_date = Date(1, 1) + self.end_date = end_date + + @property + def start_date(self): + """Get or set a ladybug Date object for the start of the simulation period.""" + return self._start_date + + @start_date.setter + def start_date(self, value): + if value is not None: + self._check_date(value, 'start_date') + self._start_date = value + else: + self._start_date = Date(1, 1) + self._check_start_before_end() + + @property + def end_date(self): + """Get or set a ladybug Date object for the end of the simulation period.""" + return self._end_date + + @end_date.setter + def end_date(self, value): + if value is not None: + self._check_date(value, 'end_date') + self._end_date = value + else: + self._end_date = Date(12, 31) + self._check_start_before_end() + + @property + def day_count(self): + """Get an integer for the number of days in the run period.""" + return int(self.end_date.doy - self.start_date.doy + 1) + +
+[docs] + @classmethod + def from_analysis_period(cls, analysis_period=AnalysisPeriod(1, 1, 0, 12, 31, 23)): + """Initialize a UWGRunPeriod object from a ladybug AnalysisPeriod. + + Args: + analysis_period: A ladybug AnalysisPeriod object that has the start + and end dates for daylight savings time. + """ + assert isinstance(analysis_period, AnalysisPeriod), 'Expected AnalysisPeriod ' \ + 'for UWGRunPeriod.from_analysis_period. Got {}.'.format( + type(analysis_period)) + st_date = Date(analysis_period.st_month, analysis_period.st_day, + analysis_period.is_leap_year) + end_date = Date(analysis_period.end_month, analysis_period.end_day, + analysis_period.is_leap_year) + return cls(st_date, end_date)
+ + +
+[docs] + @classmethod + def from_dict(cls, data): + """Create a UWGRunPeriod object from a dictionary. + + Args: + data: A UWGRunPeriod dictionary in following the format below. + + .. code-block:: python + + { + "type": "UWGRunPeriod", + "start_date": [3, 12], + "end_date": [11, 5] + } + """ + assert data['type'] == 'UWGRunPeriod', \ + 'Expected UWGRunPeriod dictionary. Got {}.'.format(data['type']) + start_date = Date.from_array(data['start_date']) if 'start_date' in data and \ + data['start_date'] is not None else Date(1, 1) + end_date = Date.from_array(data['end_date']) if 'end_date' in data and \ + data['end_date'] is not None else Date(12, 31) + return cls(start_date, end_date)
+ + +
+[docs] + def to_dict(self): + """UWGRunPeriod dictionary representation.""" + return { + 'type': 'UWGRunPeriod', + 'start_date': self.start_date.to_array(), + 'end_date': self.end_date.to_array() + }
+ + +
+[docs] + def duplicate(self): + """Get a copy of this object.""" + return self.__copy__()
+ + + def _check_start_before_end(self): + """Check that the start_date is before the end_date.""" + assert self.start_date.leap_year is self.end_date.leap_year, \ + 'UWGRunPeriod start_date.leap_year must match the end_date.leap_year' + assert self._start_date <= self._end_date, 'UWGRunPeriod start_date must ' \ + 'be before end_date. {} is after {}.'.format(self.start_date, self.end_date) + + @staticmethod + def _check_date(date, date_name='date'): + assert isinstance(date, Date), 'Expected ladybug Date for ' \ + 'UWGRunPeriod {}. Got {}.'.format(date_name, type(date)) + +
+[docs] + def ToString(self): + """Overwrite .NET ToString.""" + return self.__repr__()
+ + + def __copy__(self): + return UWGRunPeriod(self.start_date, self.end_date) + + def __repr__(self): + return 'UWGRunPeriod: [{} - {}]'.format(self.start_date, self.end_date)
+ +
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 8.0.2.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/simulation/vegetation.html b/docs/_modules/dragonfly_uwg/simulation/vegetation.html new file mode 100644 index 00000000..9a477792 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/simulation/vegetation.html @@ -0,0 +1,585 @@ + + + + + + + dragonfly_uwg.simulation.vegetation — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.simulation.vegetation

+# coding=utf-8
+from __future__ import division
+
+from honeybee.typing import float_in_range, int_in_range
+from honeybee.altnumber import autocalculate
+
+
+
+[docs] +class VegetationParameter(object): + """Represents the behavior of vegetation within an urban area. + + Args: + vegetation_albedo: A number between 0 and 1 that represents + the ratio of reflected radiation from vegetated surfaces + to incident radiation upon them. (Default: 0.25) + start_month: An integer from 1 to 12 that represents the month + at which vegetation evapostranspiration begins (leaves come out). + If Autocalculate, the month will be automatically determined by analyzing + the epw to see which months have an average monthly temperature + above 10C. (Default: autocalculate). + end_month: An integer from 1 to 12 that represents the month + at which vegetation evapostranspiration ends (leaves fall off). + If Autocalculate, the month will be automatically determined by analyzing + the epw to see which months have an average monthly temperature + above 10C. (Default: autocalculate). + tree_latent_fraction: A number between 0 and 1 that represents + the the fraction of absorbed solar energy by trees that + is given off as latent heat (evapotranspiration). Currently, + this does not affect the moisture balance in the uwg but + it will affect the temperature. (Default: 0.7). + grass_latent_fraction: A number between 0 and 1 that represents + the the fraction of absorbed solar energy by grass that is + given off as latent heat (evapotranspiration). Currently, + this does not affect the moisture balance in the uwg but + it will affect the temperature. (Default: 0.5). + """ + + __slots__ = ('_vegetation_albedo', '_start_month', '_end_month', + '_tree_latent_fraction', '_grass_latent_fraction') + + def __init__(self, vegetation_albedo=0.25, start_month=autocalculate, + end_month=autocalculate, + tree_latent_fraction=0.7, grass_latent_fraction=0.5): + """Initialize dragonfly vegetation parameters""" + self.vegetation_albedo = vegetation_albedo + self.start_month = start_month + self.end_month = end_month + self.tree_latent_fraction = tree_latent_fraction + self.grass_latent_fraction = grass_latent_fraction + +
+[docs] + @classmethod + def from_dict(cls, data): + """Create a VegetationParameter object from a dictionary + + Args: + data: A dictionary representation of an VegetationParameter object + in the format below. + + .. code-block:: python + + { + 'type': 'VegetationParameter', + 'vegetation_albedo': 0.3, # float between 0 and 1 + 'start_month': 5, # int between 1 and 12 + 'end_month': 10, # int between 1 and 12 + 'tree_latent_fraction': 0.75, # float between 0 and 1 + 'grass_latent_fraction': 0.45 # float between 0 and 1 + } + """ + alb = data['vegetation_albedo'] if 'vegetation_albedo' in data else 0.25 + start = autocalculate if 'start_month' not in data or \ + data['start_month'] == autocalculate.to_dict() else data['start_month'] + end = autocalculate if 'end_month' not in data or \ + data['end_month'] == autocalculate.to_dict() else data['end_month'] + tree = data['tree_latent_fraction'] if 'tree_latent_fraction' in data else 0.7 + grass = data['grass_latent_fraction'] if 'grass_latent_fraction' in data else 0.5 + return cls(alb, start, end, tree, grass)
+ + + @property + def vegetation_albedo(self): + """Get or set a fractional number for the vegetation albedo.""" + return self._vegetation_albedo + + @vegetation_albedo.setter + def vegetation_albedo(self, value): + self._vegetation_albedo = float_in_range(value, 0, 1, 'vegetation_albedo') + + @property + def start_month(self): + """Get or set an integer (or Autocalculate) for the vegetation start month.""" + return self._start_month if self._start_month is not None else autocalculate + + @start_month.setter + def start_month(self, value): + if value == autocalculate: + self._start_month = None + else: + self._start_month = \ + int_in_range(value, 1, 12, 'start_month') + + @property + def end_month(self): + """Get or set an integer (or Autocalculate) for the vegetation end month.""" + return self._end_month if self._end_month is not None \ + else autocalculate + + @end_month.setter + def end_month(self, value): + if value == autocalculate: + self._end_month = None + else: + self._end_month = \ + int_in_range(value, 1, 12, 'end_month') + + @property + def tree_latent_fraction(self): + """Get or set a number for the tree latent fraction.""" + return self._tree_latent_fraction + + @tree_latent_fraction.setter + def tree_latent_fraction(self, value): + self._tree_latent_fraction = float_in_range(value, 0, 1, 'tree_latent_fraction') + + @property + def grass_latent_fraction(self): + """Get or set a number for the grass latent fraction.""" + return self._grass_latent_fraction + + @grass_latent_fraction.setter + def grass_latent_fraction(self, value): + self._grass_latent_fraction = \ + float_in_range(value, 0, 1, 'grass_latent_fraction') + +
+[docs] + def to_dict(self): + """Get VegetationParameter dictionary.""" + base = {'type': 'VegetationParameter'} + base['vegetation_albedo'] = self.vegetation_albedo + base['tree_latent_fraction'] = self.tree_latent_fraction + base['grass_latent_fraction'] = self.grass_latent_fraction + if self._start_month is not None: + base['start_month'] = self._start_month + if self._end_month is not None: + base['end_month'] = self._end_month + return base
+ + +
+[docs] + def duplicate(self): + """Get a copy of this object.""" + return self.__copy__()
+ + + def __copy__(self): + new_obj = VegetationParameter(self._vegetation_albedo) + new_obj._tree_latent_fraction = self._tree_latent_fraction + new_obj._grass_latent_fraction = self._grass_latent_fraction + new_obj._start_month = self._start_month + new_obj._end_month = self._end_month + return new_obj + +
+[docs] + def ToString(self): + """Overwrite .NET ToString method.""" + return self.__repr__()
+ + + def __repr__(self): + """Represent Dragonfly vegetation parameters.""" + return 'VegetationParameter: [albedo: {}] [tree latent: {}] [grass latent:' \ + ' {}]'.format(self._vegetation_albedo, self._tree_latent_fraction, + self._grass_latent_fraction)
+ +
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 8.0.2.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/terrain.html b/docs/_modules/dragonfly_uwg/terrain.html new file mode 100644 index 00000000..c597b93b --- /dev/null +++ b/docs/_modules/dragonfly_uwg/terrain.html @@ -0,0 +1,756 @@ + + + + + + + dragonfly_uwg.terrain — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.terrain

+# coding=utf-8
+from honeybee.typing import float_in_range, float_positive
+from ladybug_geometry.geometry2d.pointvector import Point2D
+from ladybug_geometry.geometry2d.polygon import Polygon2D
+from ladybug_geometry.geometry3d.pointvector import Point3D
+from ladybug_geometry.geometry3d.plane import Plane
+from ladybug_geometry.geometry3d.face import Face3D
+
+import math
+
+
+
+[docs] +class Terrain(object): + """Object representing the terrain on which an urban area sits. + + Note: + [1] Street, Michael A. (2013). Comparison of simplified models of urban + climate for improved prediction of building energy use in cities. Thesis + (S.M. in Building Technology) - Massachusetts Institute of Technology, + Dept. of Architecture, http://hdl.handle.net/1721.1/82284 + + Args: + geometry: An array of ladybug_geometry Face3D objects that together + represent the terrain. This should include the entire area of the + site, including that beneath building footprints. + pavement_albedo: A number between 0 and 1 that represents the albedo + (reflectivity) of the pavement. (Default: 0.1, typical of fresh asphalt). + pavement_thickness: A number that represents the thickness of the + pavement material in meters. (Default: 0.5 meters). + pavement_conductivity: A number representing the conductivity of the pavement + material in W/m-K. (Default: 1 W/m-K, typical of asphalt). + pavement_heat_capacity: A number representing the volumetric heat + capacity of the pavement material in J/m3-K. This is the number + of joules needed to raise one cubic meter of the material by 1 degree + Kelvin. (Default: 1.6e6 J/m3-K, typical of asphalt). + + Properties: + * geometry + * pavement_albedo + * pavement_thickness + * pavement_conductivity + * pavement_heat_capacity + * polygon2ds + * area + * horizontal_area + * characteristic_length + * min + * max + """ + __slots__ = ('_geometry', '_polygon2ds', '_pavement_albedo', '_pavement_thickness', + '_pavement_conductivity', '_pavement_heat_capacity') + + def __init__(self, geometry, pavement_albedo=0.1, pavement_thickness=0.5, + pavement_conductivity=1.0, pavement_heat_capacity=1.6e6): + """Initialize a dragonfly Terrain""" + # process the geometry + if not isinstance(geometry, tuple): + geometry = tuple(geometry) + assert len(geometry) > 0, 'Terrain must have at least one Face3D.' + for geo in geometry: + assert isinstance(geo, Face3D), \ + 'Expected ladybug_geometry Face3D. Got {}'.format(type(geo)) + self._geometry = geometry + self._polygon2ds = None + + # process the other parameters + self.pavement_albedo = pavement_albedo + self.pavement_thickness = pavement_thickness + self.pavement_conductivity = pavement_conductivity + self.pavement_heat_capacity = pavement_heat_capacity + +
+[docs] + @classmethod + def from_building_bounding_rect(cls, buildings): + """Initialize a Terrain from a list of dragonfly Buildings. + + Args: + buildings: An array of dragonfly Buildings around which a bounding + rectangle will be computed to produce terrain geometry. + """ + # figure out the min and max Point2D around all of the geometry + min_pt, max_pt = buildings[0].min, buildings[0].max + min_pt, max_pt = [min_pt.x, min_pt.y], [max_pt.x, max_pt.y] + for bldg in buildings[1:]: + bldg_min, bldg_max = bldg.min, bldg.max + if bldg_min.x < min_pt[0]: + min_pt[0] = bldg_min.x + if bldg_min.y < min_pt[1]: + min_pt[1] = bldg_min.y + if bldg_max.x > max_pt[0]: + max_pt[0] = bldg_max.x + if bldg_max.y > max_pt[1]: + max_pt[1] = bldg_max.y + # convert the min and max into a Face3D + base, height = max_pt[0] - min_pt[0], max_pt[1] - min_pt[1] + base_plane = Plane(o=Point3D(min_pt[0], min_pt[1], 0)) + return cls((Face3D.from_rectangle(base, height, base_plane),))
+ + +
+[docs] + @classmethod + def from_dict(cls, data): + """Initialize a Terrain from a dictionary. + + Args: + data: A dictionary representation of a Terrain object in the format below. + + .. code-block:: python + + { + "type": 'Terrain', + "geometry": [], # array for Face3D for the terrain surface + "pavement_albedo": 0.15, # number for the pavement albedo + "pavement_thickness": 0.75, # pavement thickness in meters + "pavement_conductivity": 1.0, # pavement conductivity in W/m2-K + "pavement_heat_capacity": 1600000 # volumetric heat capacity in J/m3-K + } + """ + # check the type of dictionary + assert data['type'] == 'Terrain', 'Expected Terrain dictionary. ' \ + 'Got {}.'.format(data['type']) + # process the geometry + geometry = tuple(Face3D.from_dict(geo) for geo in data['geometry']) + # process the other parameters + alb = data['pavement_albedo'] if 'pavement_albedo' in data else 0.1 + thick = data['pavement_thickness'] if 'pavement_thickness' in data else 0.5 + cond = data['pavement_conductivity'] if 'pavement_conductivity' in data else 1.0 + h_cap = data['pavement_heat_capacity'] \ + if 'pavement_heat_capacity' in data else 1.6e6 + return cls(geometry, alb, thick, cond, h_cap)
+ + + @property + def geometry(self): + """Get a tuple of Face3D objects that together represent the Terrain.""" + return self._geometry + + @property + def pavement_albedo(self): + """Get or set a number between 0 and 1 for the pavement albedo (reflectivity).""" + return self._pavement_albedo + + @pavement_albedo.setter + def pavement_albedo(self, value): + self._pavement_albedo = float_in_range(value, 0, 1, 'pavement_albedo') + + @property + def pavement_thickness(self): + """Get or set a number for the pavement thickness in meters.""" + return self._pavement_thickness + + @pavement_thickness.setter + def pavement_thickness(self, value): + self._pavement_thickness = float_positive(value, 'pavement_thickness') + + @property + def pavement_conductivity(self): + """Get or set a number for the pavement conductivity in W/m-K.""" + return self._pavement_conductivity + + @pavement_conductivity.setter + def pavement_conductivity(self, value): + self._pavement_conductivity = float_positive(value, 'pavement_conductivity') + + @property + def pavement_heat_capacity(self): + """Get or set a number for the pavement volumetric heat capacity in J/m3-K.""" + return self._pavement_heat_capacity + + @pavement_heat_capacity.setter + def pavement_heat_capacity(self, value): + self._pavement_heat_capacity = float_positive(value, 'pavement_heat_capacity') + + @property + def polygon2ds(self): + """Get a tuple of Polygon2D objects that together represent the Terrain.""" + if self._polygon2ds is None: + self._polygon2ds = self._face3d_to_polygon2d(self._geometry) + return self._polygon2ds + + @property + def area(self): + """Get a number for the total surface area of the Terrain.""" + return sum([geo.area for geo in self._geometry]) + + @property + def horizontal_area(self): + """Get a number for the horizontal area of the urban Terrain surface. + + This is projected into the XY plane. + """ + return sum([geo.area for geo in self.polygon2ds]) + + @property + def characteristic_length(self): + """Get a number for the characteristic length. + + This is the linear dimension of the side of a square that encompasses + the neighborhood. + """ + return math.sqrt(self.horizontal_area) + + @property + def min(self): + """Get a Point2D for the min bounding rectangle vertex in the XY plane.""" + return self._calculate_min(self._geometry) + + @property + def max(self): + """Get a Point2D for the max bounding rectangle vertex in the XY plane.""" + return self._calculate_max(self._geometry) + +
+[docs] + def move(self, moving_vec): + """Move this Terrain along a vector. + + Args: + moving_vec: A ladybug_geometry Vector3D with the direction and distance + to move the object. + """ + self._geometry = tuple(geo.move(moving_vec) for geo in self._geometry) + self._polygon2ds = None
+ + +
+[docs] + def rotate_xy(self, angle, origin): + """Rotate this Terrain counterclockwise in the XY plane by a certain angle. + + Args: + angle: An angle in degrees. + origin: A ladybug_geometry Point3D for the origin around which the + object will be rotated. + """ + self._geometry = tuple(geo.rotate_xy(math.radians(angle), origin) + for geo in self._geometry) + self._polygon2ds = None
+ + +
+[docs] + def reflect(self, plane): + """Reflect this Terrain across a plane. + + Args: + plane: A ladybug_geometry Plane across which the object will be reflected. + """ + self._geometry = tuple(geo.reflect(plane.n, plane.o) + for geo in self._geometry) + self._polygon2ds = None
+ + +
+[docs] + def scale(self, factor, origin=None): + """Scale this Terrain by a factor from an origin point. + + Args: + factor: A number representing how much the object should be scaled. + origin: A ladybug_geometry Point3D representing the origin from which + to scale. If None, it will be scaled from the World origin (0, 0, 0). + """ + self._geometry = tuple(geo.scale(factor, origin) + for geo in self._geometry) + self._polygon2ds = None
+ + +
+[docs] + def duplicate(self): + """Get a copy of this object.""" + return self.__copy__()
+ + +
+[docs] + def to_dict(self): + """Get Terrain as a dictionary.""" + base = {'type': 'Terrain'} + base['geometry'] = [geo.to_dict(False) for geo in self._geometry] + base['pavement_albedo'] = self.pavement_albedo + base['pavement_thickness'] = self.pavement_thickness + base['pavement_conductivity'] = self.pavement_conductivity + base['pavement_heat_capacity'] = self.pavement_heat_capacity + return base
+ + + @staticmethod + def _face3d_to_polygon2d(geometry): + """Convert a list of Face3D into Polygon2D in the XY Plane.""" + vert2ds = ((Point2D(pt.x, pt.y) for pt in poly) for poly in geometry) + return tuple(Polygon2D(poly) for poly in vert2ds) + + @staticmethod + def _calculate_min(geometry_objects): + """Calculate min Point2D around an array of geometry with min attributes. + + This is used in all functions that calculate bounding rectangles around + dragonfly objects and assess when two objects are in close proximity. + """ + min_pt = [geometry_objects[0].min.x, geometry_objects[0].min.y] + + for room in geometry_objects[1:]: + if room.min.x < min_pt[0]: + min_pt[0] = room.min.x + if room.min.y < min_pt[1]: + min_pt[1] = room.min.y + + return Point2D(min_pt[0], min_pt[1]) + + @staticmethod + def _calculate_max(geometry_objects): + """Calculate max Point2D around an array of geometry with max attributes. + + This is used in all functions that calculate bounding rectangles around + dragonfly objects and assess when two objects are in close proximity. + """ + max_pt = [geometry_objects[0].max.x, geometry_objects[0].max.y] + + for room in geometry_objects[1:]: + if room.max.x > max_pt[0]: + max_pt[0] = room.max.x + if room.max.y > max_pt[1]: + max_pt[1] = room.max.y + + return Point2D(max_pt[0], max_pt[1]) + + def __copy__(self): + new_obj = Terrain(self._geometry) + new_obj._polygon2ds = self._polygon2ds + new_obj._pavement_albedo = self._pavement_albedo + new_obj._pavement_thickness = self._pavement_thickness + new_obj._pavement_conductivity = self._pavement_conductivity + new_obj._pavement_heat_capacity = self._pavement_heat_capacity + return new_obj + +
+[docs] + def ToString(self): + """Overwrite .NET ToString method.""" + return self.__repr__()
+ + + def __repr__(self): + """Represent Dragonfly Terrain.""" + return 'Terrain: [{} faces]'.format(len(self._geometry))
+ +
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 8.0.2.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/traffic.html b/docs/_modules/dragonfly_uwg/traffic.html new file mode 100644 index 00000000..3c29e0c3 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/traffic.html @@ -0,0 +1,595 @@ + + + + + + + dragonfly_uwg.traffic — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.traffic

+# coding=utf-8
+from __future__ import division
+
+from honeybee.typing import float_in_range, float_positive
+from honeybee.altnumber import autocalculate
+
+
+
+[docs] +class TrafficParameter(object): + """Object representing the traffic within an urban area. + + Note: + [1] Sailor, David J. (2011). A review of methods for estimating anthropogenic + heat and moisture emissions in the urban environment. Royal Meteorological + Society, Volume 31, Issue 2, Pages 189-199. https://doi.org/10.1002/joc.2106 + + Args: + watts_per_area: A number representing the maximum sensible anthropogenic heat + flux of the urban area in watts per square meter. This is specifically the + heat that DOES NOT originate from buildings and mostly includes heat + from automobiles, street lighting, and human metabolism. If autocalculate, + it will be estimated frm the average building story count of the model + hosting the traffic parameters (Default: autocalculate). Values + for different cities can be found in (Sailor, 2011)[1]. Typical + values include: + + * 20 W/m2 = A typical downtown area + * 10 W/m2 = A commercial area in Singapore + * 8 W/m2 = A typical mixed use part of Toulouse, France + * 4 W/m2 = A residential area in Singapore + + weekday_schedule: A list of 24 fractional values that will be + multiplied by the watts_per_area to produce hourly values for + heat on the weekday of the simulation. (Default: a typical schedule + for a commercial area). + saturday_schedule: A list of 24 fractional values that will be + multiplied by the watts_per_area to produce hourly values for + heat on the Saturday of the simulation. (Default: a typical schedule + for a commercial area). + sunday_schedule: A list of 24 fractional values that will be + multiplied by the watts_per_area to produce hourly values for + heat on the Sunday of the simulation. (Default: a typical schedule + for a commercial area). + """ + __slots__ = ('_watts_per_area', '_weekday_schedule', '_saturday_schedule', + '_sunday_schedule') + + WEEKDAY_DEFAULT = \ + (0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.7, 0.9, 0.9, 0.6, 0.6, 0.6, + 0.6, 0.6, 0.7, 0.8, 0.9, 0.9, 0.8, 0.8, 0.7, 0.3, 0.2, 0.2) + SATURDAY_DEFAULT = \ + (0.2, 0.2, 0.2, 0.2, 0.2, 0.3, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, + 0.5, 0.5, 0.6, 0.7, 0.7, 0.7, 0.7, 0.5, 0.4, 0.3, 0.2, 0.2) + SUNDAY_DEFAULT = \ + (0.2, 0.2, 0.2, 0.2, 0.2, 0.3, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, + 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.3, 0.3, 0.2, 0.2) + + def __init__(self, watts_per_area=autocalculate, weekday_schedule=None, + saturday_schedule=None, sunday_schedule=None): + """Initialize dragonfly traffic parameters""" + self.watts_per_area = watts_per_area + self.weekday_schedule = weekday_schedule + self.saturday_schedule = saturday_schedule + self.sunday_schedule = sunday_schedule + +
+[docs] + @classmethod + def from_dict(cls, data): + """Initialize an TrafficParameter from a dictionary. + + Args: + data: A dictionary representation of an TrafficParameter object + in the format below. + + .. code-block:: python + + { + "type": 'TrafficParameter', + "watts_per_area": 10, # number for heat in W/m2 + "weekday_schedule": [], # list of 24 fractional values for a schedule + "saturday_schedule": [], # list of 24 fractional values for a schedule + "sunday_schedule": [] # list of 24 fractional values for a schedule + } + """ + watts = autocalculate if 'watts_per_area' not in data or \ + data['watts_per_area'] == autocalculate.to_dict() else data['watts_per_area'] + weekday = data['weekday_schedule'] if 'weekday_schedule' in data else None + saturday = data['saturday_schedule'] if 'saturday_schedule' in data else None + sunday = data['sunday_schedule'] if 'sunday_schedule' in data else None + return cls(watts, weekday, saturday, sunday)
+ + + @property + def watts_per_area(self): + """Get or set a number for the max sensible heat flux of the traffic.""" + return self._watts_per_area if self._watts_per_area is not None \ + else autocalculate + + @watts_per_area.setter + def watts_per_area(self, value): + if value == autocalculate: + self._watts_per_area = None + else: + self._watts_per_area = float_positive(value, 'traffic watts per area') + + @property + def weekday_schedule(self): + """Get or set the Weekday traffic schedule as a list of 24 fractional values.""" + return self._weekday_schedule if self._weekday_schedule is not None \ + else self.WEEKDAY_DEFAULT + + @weekday_schedule.setter + def weekday_schedule(self, value): + self._weekday_schedule = self._check_schedule(value) \ + if value is not None else None + + @property + def saturday_schedule(self): + """Get or set the Saturday traffic schedule as a list of 24 fractional values.""" + return self._saturday_schedule if self._saturday_schedule is not None \ + else self.SATURDAY_DEFAULT + + @saturday_schedule.setter + def saturday_schedule(self, value): + self._saturday_schedule = self._check_schedule(value) \ + if value is not None else None + + @property + def sunday_schedule(self): + """Get or set the Sunday traffic schedule as a list of 24 fractional values.""" + return self._sunday_schedule if self._sunday_schedule is not None \ + else self.SUNDAY_DEFAULT + + @sunday_schedule.setter + def sunday_schedule(self, value): + self._sunday_schedule = self._check_schedule(value) \ + if value is not None else None + +
+[docs] + def duplicate(self): + """Get a copy of this object.""" + return self.__copy__()
+ + +
+[docs] + def to_dict(self): + """Get TrafficParameter as a dictionary.""" + base = {'type': 'TrafficParameter'} + if self._watts_per_area is not None: + base['watts_per_area'] = self._watts_per_area + if self._weekday_schedule is not None: + base['weekday_schedule'] = self._weekday_schedule + if self._saturday_schedule is not None: + base['saturday_schedule'] = self._saturday_schedule + if self._sunday_schedule is not None: + base['sunday_schedule'] = self._sunday_schedule + return base
+ + + def _check_schedule(self, schedule): + if len(schedule) == 24: + return tuple(float_in_range(x, 0, 1, 'schedule value') for x in schedule) + else: + raise ValueError( + 'Traffic schedules must be lists of 24 values. Current schedule ' + 'has length ({})'.format(len(schedule))) + + def __copy__(self): + new_obj = TrafficParameter() + new_obj._watts_per_area = self._watts_per_area + new_obj._weekday_schedule = self._weekday_schedule + new_obj._saturday_schedule = self._saturday_schedule + new_obj._sunday_schedule = self._sunday_schedule + return new_obj + +
+[docs] + def ToString(self): + """Overwrite .NET ToString method.""" + return self.__repr__()
+ + + def __repr__(self): + """Represent Dragonfly traffic parameters.""" + return 'TrafficParameter: [{} W/m2]'.format(self.watts_per_area)
+ +
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 8.0.2.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/dragonfly_uwg/writer.html b/docs/_modules/dragonfly_uwg/writer.html new file mode 100644 index 00000000..a6067a3e --- /dev/null +++ b/docs/_modules/dragonfly_uwg/writer.html @@ -0,0 +1,456 @@ + + + + + + + dragonfly_uwg.writer — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+ +

Source code for dragonfly_uwg.writer

+"""Methods to write files for UWG simulation from a Model."""
+from .simulation.parameter import UWGSimulationParameter
+
+
+
+[docs] +def model_to_uwg(model, epw_file, simulation_parameter=None): + """Create a fully simulate-able uwg dictionary from a Model. + + Args: + model: A dragonfly Model for which an URBANopt feature geoJSON and corresponding + honeybee Model JSONs will be returned. + epw_file: File path to the EPW that will be morphed by the UWG. This will be + used to fill all autocalculated fields like the ASHRAE climate zone + and vegetation start/end. + simulation_parameter: A UWGSimulationParameter object that dictates various + settings about the UWG simulation. If None, default parameters will + be generated. (Default: None). + + Returns: + A dictionary following the UWG schema. This dictionary can be serialized + into a JSON in order to be run through the UWG. + """ + # get the base dictionary from the model; independent of simulation parameters + if model.units != 'Meters': + model = model.duplicate() # duplicate the model to avoid mutating the input + model.convert_to_units('Meters') + uwg_dict = model.properties.uwg.to_uwg_dict() + + # get a dictionary for the simulation parameters and update the base + sim_par = simulation_parameter if simulation_parameter is not None \ + else UWGSimulationParameter() + sim_par_dict = sim_par.to_uwg_dict(epw_file) + uwg_dict.update(sim_par_dict) + + # get the average SHGC across the buildings using the climate zone + uwg_dict['shgc'] = model.properties.uwg.average_shgc(uwg_dict['zone']) + + # add other properties that have not been exposed elsewhere in the SDK + uwg_dict['dtweather'] = 3600 + uwg_dict['autosize'] = False + uwg_dict['sensocc'] = 100 + uwg_dict['latfocc'] = 0.3 + uwg_dict['radfocc'] = 0.2 + uwg_dict['radfequip'] = 0.5 + uwg_dict['radflight'] = 0.7 + uwg_dict['maxday'] = 150 + uwg_dict['maxnight'] = 20 + uwg_dict['windmin'] = 1 + return uwg_dict
+ +
+ +
+ +
+
+
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 8.0.2.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_modules/index.html b/docs/_modules/index.html new file mode 100644 index 00000000..be2f17fb --- /dev/null +++ b/docs/_modules/index.html @@ -0,0 +1,419 @@ + + + + + + + Overview: module code — dragonfly-uwg documentation + + + + + + + + + + + + + + + + + + + + + + + +
+
+

+ Back to top + +

+

+ © Copyright 2024, Ladybug Tools.
+ Created using Sphinx 8.0.2.
+

+
+
+ + \ No newline at end of file diff --git a/docs/_sources/cli/index.rst.txt b/docs/_sources/cli/index.rst.txt new file mode 100644 index 00000000..e0ebecd3 --- /dev/null +++ b/docs/_sources/cli/index.rst.txt @@ -0,0 +1,14 @@ +CLI Docs +======== + +Installation +------------ + +To check if the command line is installed correctly use ``dragonfly-uwg --help`` + +Commands +-------- +.. toctree:: + :maxdepth: 1 + + simulate diff --git a/docs/_sources/cli/simulate.rst.txt b/docs/_sources/cli/simulate.rst.txt new file mode 100644 index 00000000..9da6911c --- /dev/null +++ b/docs/_sources/cli/simulate.rst.txt @@ -0,0 +1,6 @@ +simulate +======== + +.. click:: dragonfly_uwg.cli.simulate:simulate + :prog: dragonfly-uwg simulate + :show-nested: diff --git a/docs/_sources/dragonfly_uwg.cli.rst.txt b/docs/_sources/dragonfly_uwg.cli.rst.txt new file mode 100644 index 00000000..e72f251d --- /dev/null +++ b/docs/_sources/dragonfly_uwg.cli.rst.txt @@ -0,0 +1,18 @@ +dragonfly\_uwg.cli package +========================== + +Submodules +---------- + +.. toctree:: + :maxdepth: 4 + + dragonfly_uwg.cli.simulate + +Module contents +--------------- + +.. automodule:: dragonfly_uwg.cli + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.cli.simulate.rst.txt b/docs/_sources/dragonfly_uwg.cli.simulate.rst.txt new file mode 100644 index 00000000..bc324d02 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.cli.simulate.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.cli.simulate module +================================== + +.. automodule:: dragonfly_uwg.cli.simulate + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.properties.building.rst.txt b/docs/_sources/dragonfly_uwg.properties.building.rst.txt new file mode 100644 index 00000000..b5ddd012 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.properties.building.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.properties.building module +========================================= + +.. automodule:: dragonfly_uwg.properties.building + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.properties.context.rst.txt b/docs/_sources/dragonfly_uwg.properties.context.rst.txt new file mode 100644 index 00000000..d518eaf9 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.properties.context.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.properties.context module +======================================== + +.. automodule:: dragonfly_uwg.properties.context + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.properties.model.rst.txt b/docs/_sources/dragonfly_uwg.properties.model.rst.txt new file mode 100644 index 00000000..2ef3c275 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.properties.model.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.properties.model module +====================================== + +.. automodule:: dragonfly_uwg.properties.model + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.properties.room2d.rst.txt b/docs/_sources/dragonfly_uwg.properties.room2d.rst.txt new file mode 100644 index 00000000..623dddec --- /dev/null +++ b/docs/_sources/dragonfly_uwg.properties.room2d.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.properties.room2d module +======================================= + +.. automodule:: dragonfly_uwg.properties.room2d + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.properties.rst.txt b/docs/_sources/dragonfly_uwg.properties.rst.txt new file mode 100644 index 00000000..cbccde29 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.properties.rst.txt @@ -0,0 +1,22 @@ +dragonfly\_uwg.properties package +================================= + +Submodules +---------- + +.. toctree:: + :maxdepth: 4 + + dragonfly_uwg.properties.building + dragonfly_uwg.properties.context + dragonfly_uwg.properties.model + dragonfly_uwg.properties.room2d + dragonfly_uwg.properties.story + +Module contents +--------------- + +.. automodule:: dragonfly_uwg.properties + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.properties.story.rst.txt b/docs/_sources/dragonfly_uwg.properties.story.rst.txt new file mode 100644 index 00000000..14e351e4 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.properties.story.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.properties.story module +====================================== + +.. automodule:: dragonfly_uwg.properties.story + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.rst.txt b/docs/_sources/dragonfly_uwg.rst.txt new file mode 100644 index 00000000..6a246381 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.rst.txt @@ -0,0 +1,31 @@ +dragonfly\_uwg package +====================== + +Subpackages +----------- + +.. toctree:: + :maxdepth: 4 + + dragonfly_uwg.cli + dragonfly_uwg.properties + dragonfly_uwg.simulation + +Submodules +---------- + +.. toctree:: + :maxdepth: 4 + + dragonfly_uwg.run + dragonfly_uwg.terrain + dragonfly_uwg.traffic + dragonfly_uwg.writer + +Module contents +--------------- + +.. automodule:: dragonfly_uwg + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.run.rst.txt b/docs/_sources/dragonfly_uwg.run.rst.txt new file mode 100644 index 00000000..32a85b8a --- /dev/null +++ b/docs/_sources/dragonfly_uwg.run.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.run module +========================= + +.. automodule:: dragonfly_uwg.run + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.simulation.boundary.rst.txt b/docs/_sources/dragonfly_uwg.simulation.boundary.rst.txt new file mode 100644 index 00000000..8c8dea8a --- /dev/null +++ b/docs/_sources/dragonfly_uwg.simulation.boundary.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.simulation.boundary module +========================================= + +.. automodule:: dragonfly_uwg.simulation.boundary + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.simulation.parameter.rst.txt b/docs/_sources/dragonfly_uwg.simulation.parameter.rst.txt new file mode 100644 index 00000000..2b7774a1 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.simulation.parameter.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.simulation.parameter module +========================================== + +.. automodule:: dragonfly_uwg.simulation.parameter + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.simulation.refsite.rst.txt b/docs/_sources/dragonfly_uwg.simulation.refsite.rst.txt new file mode 100644 index 00000000..31bed7b4 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.simulation.refsite.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.simulation.refsite module +======================================== + +.. automodule:: dragonfly_uwg.simulation.refsite + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.simulation.rst.txt b/docs/_sources/dragonfly_uwg.simulation.rst.txt new file mode 100644 index 00000000..3e6f2468 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.simulation.rst.txt @@ -0,0 +1,22 @@ +dragonfly\_uwg.simulation package +================================= + +Submodules +---------- + +.. toctree:: + :maxdepth: 4 + + dragonfly_uwg.simulation.boundary + dragonfly_uwg.simulation.parameter + dragonfly_uwg.simulation.refsite + dragonfly_uwg.simulation.runperiod + dragonfly_uwg.simulation.vegetation + +Module contents +--------------- + +.. automodule:: dragonfly_uwg.simulation + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.simulation.runperiod.rst.txt b/docs/_sources/dragonfly_uwg.simulation.runperiod.rst.txt new file mode 100644 index 00000000..f0f9e303 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.simulation.runperiod.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.simulation.runperiod module +========================================== + +.. automodule:: dragonfly_uwg.simulation.runperiod + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.simulation.vegetation.rst.txt b/docs/_sources/dragonfly_uwg.simulation.vegetation.rst.txt new file mode 100644 index 00000000..194077d1 --- /dev/null +++ b/docs/_sources/dragonfly_uwg.simulation.vegetation.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.simulation.vegetation module +=========================================== + +.. automodule:: dragonfly_uwg.simulation.vegetation + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.terrain.rst.txt b/docs/_sources/dragonfly_uwg.terrain.rst.txt new file mode 100644 index 00000000..facc0e5b --- /dev/null +++ b/docs/_sources/dragonfly_uwg.terrain.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.terrain module +============================= + +.. automodule:: dragonfly_uwg.terrain + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.traffic.rst.txt b/docs/_sources/dragonfly_uwg.traffic.rst.txt new file mode 100644 index 00000000..4d25bf0f --- /dev/null +++ b/docs/_sources/dragonfly_uwg.traffic.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.traffic module +============================= + +.. automodule:: dragonfly_uwg.traffic + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/dragonfly_uwg.writer.rst.txt b/docs/_sources/dragonfly_uwg.writer.rst.txt new file mode 100644 index 00000000..f37d1bfb --- /dev/null +++ b/docs/_sources/dragonfly_uwg.writer.rst.txt @@ -0,0 +1,7 @@ +dragonfly\_uwg.writer module +============================ + +.. automodule:: dragonfly_uwg.writer + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt new file mode 100644 index 00000000..dfdc0e9d --- /dev/null +++ b/docs/_sources/index.rst.txt @@ -0,0 +1,45 @@ +Welcome to dragonfly-uwg's documentation! +=================================== + +.. image:: http://www.ladybug.tools/assets/img/dragonfly.png + +`Urban Weather Generator `_ extension for `dragonfly `_ + +Dragonfly-uwg adds Urban Weather Generator functionalities to dragonfly. + + +Installation +============ + +``pip install -U dragonfly-uwg``. + +To check if the command line is installed correctly use ``dragonfly-uwg --help`` + + + +CLI Docs +============= + +For command line interface documentation and API documentation see the pages below. + + +.. toctree:: + :maxdepth: 2 + + cli/index + + +dragonfly_uwg +============= + +.. toctree:: + :maxdepth: 4 + + modules + +Indices and tables +------------------ + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/_sources/modules.rst.txt b/docs/_sources/modules.rst.txt new file mode 100644 index 00000000..791ded0f --- /dev/null +++ b/docs/_sources/modules.rst.txt @@ -0,0 +1,7 @@ +dragonfly_uwg +============= + +.. toctree:: + :maxdepth: 4 + + dragonfly_uwg diff --git a/docs/_static/basic.css b/docs/_static/basic.css new file mode 100644 index 00000000..f316efcb --- /dev/null +++ b/docs/_static/basic.css @@ -0,0 +1,925 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/docs/_static/bootstrap-2.3.2/css/bootstrap-responsive.css b/docs/_static/bootstrap-2.3.2/css/bootstrap-responsive.css new file mode 100644 index 00000000..09e88ce3 --- /dev/null +++ b/docs/_static/bootstrap-2.3.2/css/bootstrap-responsive.css @@ -0,0 +1,1109 @@ +/*! + * Bootstrap Responsive v2.3.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +@-ms-viewport { + width: device-width; +} + +.hidden { + display: none; + visibility: hidden; +} + +.visible-phone { + display: none !important; +} + +.visible-tablet { + display: none !important; +} + +.hidden-desktop { + display: none !important; +} + +.visible-desktop { + display: inherit !important; +} + +@media (min-width: 768px) and (max-width: 979px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important ; + } + .visible-tablet { + display: inherit !important; + } + .hidden-tablet { + display: none !important; + } +} + +@media (max-width: 767px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important; + } + .visible-phone { + display: inherit !important; + } + .hidden-phone { + display: none !important; + } +} + +.visible-print { + display: none !important; +} + +@media print { + .visible-print { + display: inherit !important; + } + .hidden-print { + display: none !important; + } +} + +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 30px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 1170px; + } + .span12 { + width: 1170px; + } + .span11 { + width: 1070px; + } + .span10 { + width: 970px; + } + .span9 { + width: 870px; + } + .span8 { + width: 770px; + } + .span7 { + width: 670px; + } + .span6 { + width: 570px; + } + .span5 { + width: 470px; + } + .span4 { + width: 370px; + } + .span3 { + width: 270px; + } + .span2 { + width: 170px; + } + .span1 { + width: 70px; + } + .offset12 { + margin-left: 1230px; + } + .offset11 { + margin-left: 1130px; + } + .offset10 { + margin-left: 1030px; + } + .offset9 { + margin-left: 930px; + } + .offset8 { + margin-left: 830px; + } + .offset7 { + margin-left: 730px; + } + .offset6 { + margin-left: 630px; + } + .offset5 { + margin-left: 530px; + } + .offset4 { + margin-left: 430px; + } + .offset3 { + margin-left: 330px; + } + .offset2 { + margin-left: 230px; + } + .offset1 { + margin-left: 130px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.564102564102564%; + *margin-left: 2.5109110747408616%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.564102564102564%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.45299145299145%; + *width: 91.39979996362975%; + } + .row-fluid .span10 { + width: 82.90598290598291%; + *width: 82.8527914166212%; + } + .row-fluid .span9 { + width: 74.35897435897436%; + *width: 74.30578286961266%; + } + .row-fluid .span8 { + width: 65.81196581196582%; + *width: 65.75877432260411%; + } + .row-fluid .span7 { + width: 57.26495726495726%; + *width: 57.21176577559556%; + } + .row-fluid .span6 { + width: 48.717948717948715%; + *width: 48.664757228587014%; + } + .row-fluid .span5 { + width: 40.17094017094017%; + *width: 40.11774868157847%; + } + .row-fluid .span4 { + width: 31.623931623931625%; + *width: 31.570740134569924%; + } + .row-fluid .span3 { + width: 23.076923076923077%; + *width: 23.023731587561375%; + } + .row-fluid .span2 { + width: 14.52991452991453%; + *width: 14.476723040552828%; + } + .row-fluid .span1 { + width: 5.982905982905983%; + *width: 5.929714493544281%; + } + .row-fluid .offset12 { + margin-left: 105.12820512820512%; + *margin-left: 105.02182214948171%; + } + .row-fluid .offset12:first-child { + margin-left: 102.56410256410257%; + *margin-left: 102.45771958537915%; + } + .row-fluid .offset11 { + margin-left: 96.58119658119658%; + *margin-left: 96.47481360247316%; + } + .row-fluid .offset11:first-child { + margin-left: 94.01709401709402%; + *margin-left: 93.91071103837061%; + } + .row-fluid .offset10 { + margin-left: 88.03418803418803%; + *margin-left: 87.92780505546462%; + } + .row-fluid .offset10:first-child { + margin-left: 85.47008547008548%; + *margin-left: 85.36370249136206%; + } + .row-fluid .offset9 { + margin-left: 79.48717948717949%; + *margin-left: 79.38079650845607%; + } + .row-fluid .offset9:first-child { + margin-left: 76.92307692307693%; + *margin-left: 76.81669394435352%; + } + .row-fluid .offset8 { + margin-left: 70.94017094017094%; + *margin-left: 70.83378796144753%; + } + .row-fluid .offset8:first-child { + margin-left: 68.37606837606839%; + *margin-left: 68.26968539734497%; + } + .row-fluid .offset7 { + margin-left: 62.393162393162385%; + *margin-left: 62.28677941443899%; + } + .row-fluid .offset7:first-child { + margin-left: 59.82905982905982%; + *margin-left: 59.72267685033642%; + } + .row-fluid .offset6 { + margin-left: 53.84615384615384%; + *margin-left: 53.739770867430444%; + } + .row-fluid .offset6:first-child { + margin-left: 51.28205128205128%; + *margin-left: 51.175668303327875%; + } + .row-fluid .offset5 { + margin-left: 45.299145299145295%; + *margin-left: 45.1927623204219%; + } + .row-fluid .offset5:first-child { + margin-left: 42.73504273504273%; + *margin-left: 42.62865975631933%; + } + .row-fluid .offset4 { + margin-left: 36.75213675213675%; + *margin-left: 36.645753773413354%; + } + .row-fluid .offset4:first-child { + margin-left: 34.18803418803419%; + *margin-left: 34.081651209310785%; + } + .row-fluid .offset3 { + margin-left: 28.205128205128204%; + *margin-left: 28.0987452264048%; + } + .row-fluid .offset3:first-child { + margin-left: 25.641025641025642%; + *margin-left: 25.53464266230224%; + } + .row-fluid .offset2 { + margin-left: 19.65811965811966%; + *margin-left: 19.551736679396257%; + } + .row-fluid .offset2:first-child { + margin-left: 17.094017094017094%; + *margin-left: 16.98763411529369%; + } + .row-fluid .offset1 { + margin-left: 11.11111111111111%; + *margin-left: 11.004728132387708%; + } + .row-fluid .offset1:first-child { + margin-left: 8.547008547008547%; + *margin-left: 8.440625568285142%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 30px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 1156px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 1056px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 956px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 856px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 756px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 656px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 556px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 456px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 356px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 256px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 156px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 56px; + } + .thumbnails { + margin-left: -30px; + } + .thumbnails > li { + margin-left: 30px; + } + .row-fluid .thumbnails { + margin-left: 0; + } +} + +@media (min-width: 768px) and (max-width: 979px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 724px; + } + .span12 { + width: 724px; + } + .span11 { + width: 662px; + } + .span10 { + width: 600px; + } + .span9 { + width: 538px; + } + .span8 { + width: 476px; + } + .span7 { + width: 414px; + } + .span6 { + width: 352px; + } + .span5 { + width: 290px; + } + .span4 { + width: 228px; + } + .span3 { + width: 166px; + } + .span2 { + width: 104px; + } + .span1 { + width: 42px; + } + .offset12 { + margin-left: 764px; + } + .offset11 { + margin-left: 702px; + } + .offset10 { + margin-left: 640px; + } + .offset9 { + margin-left: 578px; + } + .offset8 { + margin-left: 516px; + } + .offset7 { + margin-left: 454px; + } + .offset6 { + margin-left: 392px; + } + .offset5 { + margin-left: 330px; + } + .offset4 { + margin-left: 268px; + } + .offset3 { + margin-left: 206px; + } + .offset2 { + margin-left: 144px; + } + .offset1 { + margin-left: 82px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.7624309392265194%; + *margin-left: 2.709239449864817%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.7624309392265194%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.43646408839778%; + *width: 91.38327259903608%; + } + .row-fluid .span10 { + width: 82.87292817679558%; + *width: 82.81973668743387%; + } + .row-fluid .span9 { + width: 74.30939226519337%; + *width: 74.25620077583166%; + } + .row-fluid .span8 { + width: 65.74585635359117%; + *width: 65.69266486422946%; + } + .row-fluid .span7 { + width: 57.18232044198895%; + *width: 57.12912895262725%; + } + .row-fluid .span6 { + width: 48.61878453038674%; + *width: 48.56559304102504%; + } + .row-fluid .span5 { + width: 40.05524861878453%; + *width: 40.00205712942283%; + } + .row-fluid .span4 { + width: 31.491712707182323%; + *width: 31.43852121782062%; + } + .row-fluid .span3 { + width: 22.92817679558011%; + *width: 22.87498530621841%; + } + .row-fluid .span2 { + width: 14.3646408839779%; + *width: 14.311449394616199%; + } + .row-fluid .span1 { + width: 5.801104972375691%; + *width: 5.747913483013988%; + } + .row-fluid .offset12 { + margin-left: 105.52486187845304%; + *margin-left: 105.41847889972962%; + } + .row-fluid .offset12:first-child { + margin-left: 102.76243093922652%; + *margin-left: 102.6560479605031%; + } + .row-fluid .offset11 { + margin-left: 96.96132596685082%; + *margin-left: 96.8549429881274%; + } + .row-fluid .offset11:first-child { + margin-left: 94.1988950276243%; + *margin-left: 94.09251204890089%; + } + .row-fluid .offset10 { + margin-left: 88.39779005524862%; + *margin-left: 88.2914070765252%; + } + .row-fluid .offset10:first-child { + margin-left: 85.6353591160221%; + *margin-left: 85.52897613729868%; + } + .row-fluid .offset9 { + margin-left: 79.8342541436464%; + *margin-left: 79.72787116492299%; + } + .row-fluid .offset9:first-child { + margin-left: 77.07182320441989%; + *margin-left: 76.96544022569647%; + } + .row-fluid .offset8 { + margin-left: 71.2707182320442%; + *margin-left: 71.16433525332079%; + } + .row-fluid .offset8:first-child { + margin-left: 68.50828729281768%; + *margin-left: 68.40190431409427%; + } + .row-fluid .offset7 { + margin-left: 62.70718232044199%; + *margin-left: 62.600799341718584%; + } + .row-fluid .offset7:first-child { + margin-left: 59.94475138121547%; + *margin-left: 59.838368402492065%; + } + .row-fluid .offset6 { + margin-left: 54.14364640883978%; + *margin-left: 54.037263430116376%; + } + .row-fluid .offset6:first-child { + margin-left: 51.38121546961326%; + *margin-left: 51.27483249088986%; + } + .row-fluid .offset5 { + margin-left: 45.58011049723757%; + *margin-left: 45.47372751851417%; + } + .row-fluid .offset5:first-child { + margin-left: 42.81767955801105%; + *margin-left: 42.71129657928765%; + } + .row-fluid .offset4 { + margin-left: 37.01657458563536%; + *margin-left: 36.91019160691196%; + } + .row-fluid .offset4:first-child { + margin-left: 34.25414364640884%; + *margin-left: 34.14776066768544%; + } + .row-fluid .offset3 { + margin-left: 28.45303867403315%; + *margin-left: 28.346655695309746%; + } + .row-fluid .offset3:first-child { + margin-left: 25.69060773480663%; + *margin-left: 25.584224756083227%; + } + .row-fluid .offset2 { + margin-left: 19.88950276243094%; + *margin-left: 19.783119783707537%; + } + .row-fluid .offset2:first-child { + margin-left: 17.12707182320442%; + *margin-left: 17.02068884448102%; + } + .row-fluid .offset1 { + margin-left: 11.32596685082873%; + *margin-left: 11.219583872105325%; + } + .row-fluid .offset1:first-child { + margin-left: 8.56353591160221%; + *margin-left: 8.457152932878806%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 710px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 648px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 586px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 524px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 462px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 400px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 338px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 276px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 214px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 152px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 90px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 28px; + } +} + +@media (max-width: 767px) { + body { + padding-right: 20px; + padding-left: 20px; + } + .navbar-fixed-top, + .navbar-fixed-bottom, + .navbar-static-top { + margin-right: -20px; + margin-left: -20px; + } + .container-fluid { + padding: 0; + } + .dl-horizontal dt { + float: none; + width: auto; + clear: none; + text-align: left; + } + .dl-horizontal dd { + margin-left: 0; + } + .container { + width: auto; + } + .row-fluid { + width: 100%; + } + .row, + .thumbnails { + margin-left: 0; + } + .thumbnails > li { + float: none; + margin-left: 0; + } + [class*="span"], + .uneditable-input[class*="span"], + .row-fluid [class*="span"] { + display: block; + float: none; + width: 100%; + margin-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .span12, + .row-fluid .span12 { + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="offset"]:first-child { + margin-left: 0; + } + .input-large, + .input-xlarge, + .input-xxlarge, + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .input-prepend input, + .input-append input, + .input-prepend input[class*="span"], + .input-append input[class*="span"] { + display: inline-block; + width: auto; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 0; + } + .modal { + position: fixed; + top: 20px; + right: 20px; + left: 20px; + width: auto; + margin: 0; + } + .modal.fade { + top: -100px; + } + .modal.fade.in { + top: 20px; + } +} + +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 20px; + } + input[type="checkbox"], + input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-right: 10px; + padding-left: 10px; + } + .media .pull-left, + .media .pull-right { + display: block; + float: none; + margin-bottom: 10px; + } + .media-object { + margin-right: 0; + margin-left: 0; + } + .modal { + top: 10px; + right: 10px; + left: 10px; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} + +@media (max-width: 979px) { + body { + padding-top: 0; + } + .navbar-fixed-top, + .navbar-fixed-bottom { + position: static; + } + .navbar-fixed-top { + margin-bottom: 20px; + } + .navbar-fixed-bottom { + margin-top: 20px; + } + .navbar-fixed-top .navbar-inner, + .navbar-fixed-bottom .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding-right: 10px; + padding-left: 10px; + margin: 0 0 0 -5px; + } + .nav-collapse { + clear: both; + } + .nav-collapse .nav { + float: none; + margin: 0 0 10px; + } + .nav-collapse .nav > li { + float: none; + } + .nav-collapse .nav > li > a { + margin-bottom: 2px; + } + .nav-collapse .nav > .divider-vertical { + display: none; + } + .nav-collapse .nav .nav-header { + color: #777777; + text-shadow: none; + } + .nav-collapse .nav > li > a, + .nav-collapse .dropdown-menu a { + padding: 9px 15px; + font-weight: bold; + color: #777777; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + } + .nav-collapse .btn { + padding: 4px 10px 4px; + font-weight: normal; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + } + .nav-collapse .dropdown-menu li + li a { + margin-bottom: 2px; + } + .nav-collapse .nav > li > a:hover, + .nav-collapse .nav > li > a:focus, + .nav-collapse .dropdown-menu a:hover, + .nav-collapse .dropdown-menu a:focus { + background-color: #f2f2f2; + } + .navbar-inverse .nav-collapse .nav > li > a, + .navbar-inverse .nav-collapse .dropdown-menu a { + color: #999999; + } + .navbar-inverse .nav-collapse .nav > li > a:hover, + .navbar-inverse .nav-collapse .nav > li > a:focus, + .navbar-inverse .nav-collapse .dropdown-menu a:hover, + .navbar-inverse .nav-collapse .dropdown-menu a:focus { + background-color: #111111; + } + .nav-collapse.in .btn-group { + padding: 0; + margin-top: 5px; + } + .nav-collapse .dropdown-menu { + position: static; + top: auto; + left: auto; + display: none; + float: none; + max-width: none; + padding: 0; + margin: 0 15px; + background-color: transparent; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .nav-collapse .open > .dropdown-menu { + display: block; + } + .nav-collapse .dropdown-menu:before, + .nav-collapse .dropdown-menu:after { + display: none; + } + .nav-collapse .dropdown-menu .divider { + display: none; + } + .nav-collapse .nav > li > .dropdown-menu:before, + .nav-collapse .nav > li > .dropdown-menu:after { + display: none; + } + .nav-collapse .navbar-form, + .nav-collapse .navbar-search { + float: none; + padding: 10px 15px; + margin: 10px 0; + border-top: 1px solid #f2f2f2; + border-bottom: 1px solid #f2f2f2; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + } + .navbar-inverse .nav-collapse .navbar-form, + .navbar-inverse .nav-collapse .navbar-search { + border-top-color: #111111; + border-bottom-color: #111111; + } + .navbar .nav-collapse .nav.pull-right { + float: none; + margin-left: 0; + } + .nav-collapse, + .nav-collapse.collapse { + height: 0; + overflow: hidden; + } + .navbar .btn-navbar { + display: block; + } + .navbar-static .navbar-inner { + padding-right: 10px; + padding-left: 10px; + } +} + +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + } +} diff --git a/docs/_static/bootstrap-2.3.2/css/bootstrap-responsive.min.css b/docs/_static/bootstrap-2.3.2/css/bootstrap-responsive.min.css new file mode 100644 index 00000000..f4ede63f --- /dev/null +++ b/docs/_static/bootstrap-2.3.2/css/bootstrap-responsive.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap Responsive v2.3.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} diff --git a/docs/_static/bootstrap-2.3.2/css/bootstrap.css b/docs/_static/bootstrap-2.3.2/css/bootstrap.css new file mode 100644 index 00000000..b725064a --- /dev/null +++ b/docs/_static/bootstrap-2.3.2/css/bootstrap.css @@ -0,0 +1,6167 @@ +/*! + * Bootstrap v2.3.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +audio:not([controls]) { + display: none; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +a:hover, +a:active { + outline: 0; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + width: auto\9; + height: auto; + max-width: 100%; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} + +#map_canvas img, +.google-maps img { + max-width: none; +} + +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} + +button, +input { + *overflow: visible; + line-height: normal; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +@media print { + * { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]: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; + } + @page { + margin: 0.5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } +} + +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 20px; + color: #333333; + background-color: #ffffff; +} + +a { + color: #0088cc; + text-decoration: none; +} + +a:hover, +a:focus { + color: #005580; + text-decoration: underline; +} + +.img-rounded { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.img-polaroid { + padding: 4px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} + +.img-circle { + -webkit-border-radius: 500px; + -moz-border-radius: 500px; + border-radius: 500px; +} + +.row { + margin-left: -20px; + *zoom: 1; +} + +.row:before, +.row:after { + display: table; + line-height: 0; + content: ""; +} + +.row:after { + clear: both; +} + +[class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; +} + +.container, +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.span12 { + width: 940px; +} + +.span11 { + width: 860px; +} + +.span10 { + width: 780px; +} + +.span9 { + width: 700px; +} + +.span8 { + width: 620px; +} + +.span7 { + width: 540px; +} + +.span6 { + width: 460px; +} + +.span5 { + width: 380px; +} + +.span4 { + width: 300px; +} + +.span3 { + width: 220px; +} + +.span2 { + width: 140px; +} + +.span1 { + width: 60px; +} + +.offset12 { + margin-left: 980px; +} + +.offset11 { + margin-left: 900px; +} + +.offset10 { + margin-left: 820px; +} + +.offset9 { + margin-left: 740px; +} + +.offset8 { + margin-left: 660px; +} + +.offset7 { + margin-left: 580px; +} + +.offset6 { + margin-left: 500px; +} + +.offset5 { + margin-left: 420px; +} + +.offset4 { + margin-left: 340px; +} + +.offset3 { + margin-left: 260px; +} + +.offset2 { + margin-left: 180px; +} + +.offset1 { + margin-left: 100px; +} + +.row-fluid { + width: 100%; + *zoom: 1; +} + +.row-fluid:before, +.row-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.row-fluid:after { + clear: both; +} + +.row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.127659574468085%; + *margin-left: 2.074468085106383%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} + +.row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.127659574468085%; +} + +.row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; +} + +.row-fluid .span11 { + width: 91.48936170212765%; + *width: 91.43617021276594%; +} + +.row-fluid .span10 { + width: 82.97872340425532%; + *width: 82.92553191489361%; +} + +.row-fluid .span9 { + width: 74.46808510638297%; + *width: 74.41489361702126%; +} + +.row-fluid .span8 { + width: 65.95744680851064%; + *width: 65.90425531914893%; +} + +.row-fluid .span7 { + width: 57.44680851063829%; + *width: 57.39361702127659%; +} + +.row-fluid .span6 { + width: 48.93617021276595%; + *width: 48.88297872340425%; +} + +.row-fluid .span5 { + width: 40.42553191489362%; + *width: 40.37234042553192%; +} + +.row-fluid .span4 { + width: 31.914893617021278%; + *width: 31.861702127659576%; +} + +.row-fluid .span3 { + width: 23.404255319148934%; + *width: 23.351063829787233%; +} + +.row-fluid .span2 { + width: 14.893617021276595%; + *width: 14.840425531914894%; +} + +.row-fluid .span1 { + width: 6.382978723404255%; + *width: 6.329787234042553%; +} + +.row-fluid .offset12 { + margin-left: 104.25531914893617%; + *margin-left: 104.14893617021275%; +} + +.row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; + *margin-left: 102.02127659574467%; +} + +.row-fluid .offset11 { + margin-left: 95.74468085106382%; + *margin-left: 95.6382978723404%; +} + +.row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; + *margin-left: 93.51063829787232%; +} + +.row-fluid .offset10 { + margin-left: 87.23404255319149%; + *margin-left: 87.12765957446807%; +} + +.row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; + *margin-left: 84.99999999999999%; +} + +.row-fluid .offset9 { + margin-left: 78.72340425531914%; + *margin-left: 78.61702127659572%; +} + +.row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; + *margin-left: 76.48936170212764%; +} + +.row-fluid .offset8 { + margin-left: 70.2127659574468%; + *margin-left: 70.10638297872339%; +} + +.row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; + *margin-left: 67.9787234042553%; +} + +.row-fluid .offset7 { + margin-left: 61.70212765957446%; + *margin-left: 61.59574468085106%; +} + +.row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; + *margin-left: 59.46808510638297%; +} + +.row-fluid .offset6 { + margin-left: 53.191489361702125%; + *margin-left: 53.085106382978715%; +} + +.row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; + *margin-left: 50.95744680851063%; +} + +.row-fluid .offset5 { + margin-left: 44.68085106382979%; + *margin-left: 44.57446808510638%; +} + +.row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; + *margin-left: 42.4468085106383%; +} + +.row-fluid .offset4 { + margin-left: 36.170212765957444%; + *margin-left: 36.06382978723405%; +} + +.row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; + *margin-left: 33.93617021276596%; +} + +.row-fluid .offset3 { + margin-left: 27.659574468085104%; + *margin-left: 27.5531914893617%; +} + +.row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; + *margin-left: 25.425531914893618%; +} + +.row-fluid .offset2 { + margin-left: 19.148936170212764%; + *margin-left: 19.04255319148936%; +} + +.row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; + *margin-left: 16.914893617021278%; +} + +.row-fluid .offset1 { + margin-left: 10.638297872340425%; + *margin-left: 10.53191489361702%; +} + +.row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; + *margin-left: 8.404255319148938%; +} + +[class*="span"].hide, +.row-fluid [class*="span"].hide { + display: none; +} + +[class*="span"].pull-right, +.row-fluid [class*="span"].pull-right { + float: right; +} + +.container { + margin-right: auto; + margin-left: auto; + *zoom: 1; +} + +.container:before, +.container:after { + display: table; + line-height: 0; + content: ""; +} + +.container:after { + clear: both; +} + +.container-fluid { + padding-right: 20px; + padding-left: 20px; + *zoom: 1; +} + +.container-fluid:before, +.container-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.container-fluid:after { + clear: both; +} + +p { + margin: 0 0 10px; +} + +.lead { + margin-bottom: 20px; + font-size: 21px; + font-weight: 200; + line-height: 30px; +} + +small { + font-size: 85%; +} + +strong { + font-weight: bold; +} + +em { + font-style: italic; +} + +cite { + font-style: normal; +} + +.muted { + color: #999999; +} + +a.muted:hover, +a.muted:focus { + color: #808080; +} + +.text-warning { + color: #c09853; +} + +a.text-warning:hover, +a.text-warning:focus { + color: #a47e3c; +} + +.text-error { + color: #b94a48; +} + +a.text-error:hover, +a.text-error:focus { + color: #953b39; +} + +.text-info { + color: #3a87ad; +} + +a.text-info:hover, +a.text-info:focus { + color: #2d6987; +} + +.text-success { + color: #468847; +} + +a.text-success:hover, +a.text-success:focus { + color: #356635; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 10px 0; + font-family: inherit; + font-weight: bold; + line-height: 20px; + color: inherit; + text-rendering: optimizelegibility; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} + +h1, +h2, +h3 { + line-height: 40px; +} + +h1 { + font-size: 38.5px; +} + +h2 { + font-size: 31.5px; +} + +h3 { + font-size: 24.5px; +} + +h4 { + font-size: 17.5px; +} + +h5 { + font-size: 14px; +} + +h6 { + font-size: 11.9px; +} + +h1 small { + font-size: 24.5px; +} + +h2 small { + font-size: 17.5px; +} + +h3 small { + font-size: 14px; +} + +h4 small { + font-size: 14px; +} + +.page-header { + padding-bottom: 9px; + margin: 20px 0 30px; + border-bottom: 1px solid #eeeeee; +} + +ul, +ol { + padding: 0; + margin: 0 0 10px 25px; +} + +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} + +li { + line-height: 20px; +} + +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} + +ul.inline, +ol.inline { + margin-left: 0; + list-style: none; +} + +ul.inline > li, +ol.inline > li { + display: inline-block; + *display: inline; + padding-right: 5px; + padding-left: 5px; + *zoom: 1; +} + +dl { + margin-bottom: 20px; +} + +dt, +dd { + line-height: 20px; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 10px; +} + +.dl-horizontal { + *zoom: 1; +} + +.dl-horizontal:before, +.dl-horizontal:after { + display: table; + line-height: 0; + content: ""; +} + +.dl-horizontal:after { + clear: both; +} + +.dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; +} + +.dl-horizontal dd { + margin-left: 180px; +} + +hr { + margin: 20px 0; + border: 0; + border-top: 1px solid #eeeeee; + border-bottom: 1px solid #ffffff; +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 0 0 0 15px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} + +blockquote p { + margin-bottom: 0; + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} + +blockquote small { + display: block; + line-height: 20px; + color: #999999; +} + +blockquote small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} + +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} + +blockquote.pull-right small:before { + content: ''; +} + +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} + +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 20px; +} + +code, +pre { + padding: 0 3px 2px; + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +code { + padding: 2px 4px; + color: #d14; + white-space: nowrap; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 20px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +pre.prettyprint { + margin-bottom: 20px; +} + +pre code { + padding: 0; + color: inherit; + white-space: pre; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +form { + margin: 0 0 20px; +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: 40px; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +legend small { + font-size: 15px; + color: #999999; +} + +label, +input, +button, +select, +textarea { + font-size: 14px; + font-weight: normal; + line-height: 20px; +} + +input, +button, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +label { + display: block; + margin-bottom: 5px; +} + +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display: inline-block; + height: 20px; + padding: 4px 6px; + margin-bottom: 10px; + font-size: 14px; + line-height: 20px; + color: #555555; + vertical-align: middle; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +input, +textarea, +.uneditable-input { + width: 206px; +} + +textarea { + height: auto; +} + +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + *margin-top: 0; + line-height: normal; +} + +input[type="file"], +input[type="image"], +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} + +select, +input[type="file"] { + height: 30px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 30px; +} + +select { + width: 220px; + background-color: #ffffff; + border: 1px solid #cccccc; +} + +select[multiple], +select[size] { + height: auto; +} + +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.uneditable-input, +.uneditable-textarea { + color: #999999; + cursor: not-allowed; + background-color: #fcfcfc; + border-color: #cccccc; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); +} + +.uneditable-input { + overflow: hidden; + white-space: nowrap; +} + +.uneditable-textarea { + width: auto; + height: auto; +} + +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #999999; +} + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #999999; +} + +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #999999; +} + +.radio, +.checkbox { + min-height: 20px; + padding-left: 20px; +} + +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -20px; +} + +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} + +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} + +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} + +.input-mini { + width: 60px; +} + +.input-small { + width: 90px; +} + +.input-medium { + width: 150px; +} + +.input-large { + width: 210px; +} + +.input-xlarge { + width: 270px; +} + +.input-xxlarge { + width: 530px; +} + +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} + +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} + +input, +textarea, +.uneditable-input { + margin-left: 0; +} + +.controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; +} + +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 926px; +} + +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 846px; +} + +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 766px; +} + +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 686px; +} + +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 606px; +} + +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 526px; +} + +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 446px; +} + +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 366px; +} + +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 286px; +} + +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 206px; +} + +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 126px; +} + +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 46px; +} + +.controls-row { + *zoom: 1; +} + +.controls-row:before, +.controls-row:after { + display: table; + line-height: 0; + content: ""; +} + +.controls-row:after { + clear: both; +} + +.controls-row [class*="span"], +.row-fluid .controls-row [class*="span"] { + float: left; +} + +.controls-row .checkbox[class*="span"], +.controls-row .radio[class*="span"] { + padding-top: 5px; +} + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #eeeeee; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} + +.control-group.warning .control-label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #c09853; +} + +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #c09853; +} + +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; +} + +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} + +.control-group.error .control-label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #b94a48; +} + +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #b94a48; +} + +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +} + +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} + +.control-group.success .control-label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #468847; +} + +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #468847; +} + +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; +} + +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} + +.control-group.info .control-label, +.control-group.info .help-block, +.control-group.info .help-inline { + color: #3a87ad; +} + +.control-group.info .checkbox, +.control-group.info .radio, +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + color: #3a87ad; +} + +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + border-color: #3a87ad; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.info input:focus, +.control-group.info select:focus, +.control-group.info textarea:focus { + border-color: #2d6987; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; +} + +.control-group.info .input-prepend .add-on, +.control-group.info .input-append .add-on { + color: #3a87ad; + background-color: #d9edf7; + border-color: #3a87ad; +} + +input:focus:invalid, +textarea:focus:invalid, +select:focus:invalid { + color: #b94a48; + border-color: #ee5f5b; +} + +input:focus:invalid:focus, +textarea:focus:invalid:focus, +select:focus:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} + +.form-actions { + padding: 19px 20px 20px; + margin-top: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} + +.form-actions:before, +.form-actions:after { + display: table; + line-height: 0; + content: ""; +} + +.form-actions:after { + clear: both; +} + +.help-block, +.help-inline { + color: #595959; +} + +.help-block { + display: block; + margin-bottom: 10px; +} + +.help-inline { + display: inline-block; + *display: inline; + padding-left: 5px; + vertical-align: middle; + *zoom: 1; +} + +.input-append, +.input-prepend { + display: inline-block; + margin-bottom: 10px; + font-size: 0; + white-space: nowrap; + vertical-align: middle; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input, +.input-append .dropdown-menu, +.input-prepend .dropdown-menu, +.input-append .popover, +.input-prepend .popover { + font-size: 14px; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: top; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-append input:focus, +.input-prepend input:focus, +.input-append select:focus, +.input-prepend select:focus, +.input-append .uneditable-input:focus, +.input-prepend .uneditable-input:focus { + z-index: 2; +} + +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 20px; + min-width: 16px; + padding: 4px 5px; + font-size: 14px; + font-weight: normal; + line-height: 20px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #eeeeee; + border: 1px solid #ccc; +} + +.input-append .add-on, +.input-prepend .add-on, +.input-append .btn, +.input-prepend .btn, +.input-append .btn-group > .dropdown-toggle, +.input-prepend .btn-group > .dropdown-toggle { + vertical-align: top; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-append .active, +.input-prepend .active { + background-color: #a9dba9; + border-color: #46a546; +} + +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} + +.input-prepend .add-on:first-child, +.input-prepend .btn:first-child { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-append input, +.input-append select, +.input-append .uneditable-input { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-append input + .btn-group .btn:last-child, +.input-append select + .btn-group .btn:last-child, +.input-append .uneditable-input + .btn-group .btn:last-child { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-append .add-on, +.input-append .btn, +.input-append .btn-group { + margin-left: -1px; +} + +.input-append .add-on:last-child, +.input-append .btn:last-child, +.input-append .btn-group:last-child > .dropdown-toggle { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend.input-append input + .btn-group .btn, +.input-prepend.input-append select + .btn-group .btn, +.input-prepend.input-append .uneditable-input + .btn-group .btn { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append .btn-group:first-child { + margin-left: 0; +} + +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom: 0; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +/* Allow for input prepend/append in search forms */ + +.form-search .input-append .search-query, +.form-search .input-prepend .search-query { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.form-search .input-append .search-query { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search .input-append .btn { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .search-query { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .btn { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + margin-bottom: 0; + vertical-align: middle; + *zoom: 1; +} + +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} + +.form-search label, +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { + display: inline-block; +} + +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} + +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} + +.control-group { + margin-bottom: 10px; +} + +legend + .control-group { + margin-top: 20px; + -webkit-margin-top-collapse: separate; +} + +.form-horizontal .control-group { + margin-bottom: 20px; + *zoom: 1; +} + +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + line-height: 0; + content: ""; +} + +.form-horizontal .control-group:after { + clear: both; +} + +.form-horizontal .control-label { + float: left; + width: 160px; + padding-top: 5px; + text-align: right; +} + +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 180px; + *margin-left: 0; +} + +.form-horizontal .controls:first-child { + *padding-left: 180px; +} + +.form-horizontal .help-block { + margin-bottom: 0; +} + +.form-horizontal input + .help-block, +.form-horizontal select + .help-block, +.form-horizontal textarea + .help-block, +.form-horizontal .uneditable-input + .help-block, +.form-horizontal .input-prepend + .help-block, +.form-horizontal .input-append + .help-block { + margin-top: 10px; +} + +.form-horizontal .form-actions { + padding-left: 180px; +} + +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} + +.table { + width: 100%; + margin-bottom: 20px; +} + +.table th, +.table td { + padding: 8px; + line-height: 20px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.table th { + font-weight: bold; +} + +.table thead th { + vertical-align: bottom; +} + +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} + +.table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table .table { + background-color: #ffffff; +} + +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} + +.table-bordered { + border: 1px solid #dddddd; + border-collapse: separate; + *border-collapse: collapse; + border-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.table-bordered th, +.table-bordered td { + border-left: 1px solid #dddddd; +} + +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} + +.table-bordered thead:first-child tr:first-child > th:first-child, +.table-bordered tbody:first-child tr:first-child > td:first-child, +.table-bordered tbody:first-child tr:first-child > th:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered thead:first-child tr:first-child > th:last-child, +.table-bordered tbody:first-child tr:first-child > td:last-child, +.table-bordered tbody:first-child tr:first-child > th:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-bordered thead:last-child tr:last-child > th:first-child, +.table-bordered tbody:last-child tr:last-child > td:first-child, +.table-bordered tbody:last-child tr:last-child > th:first-child, +.table-bordered tfoot:last-child tr:last-child > td:first-child, +.table-bordered tfoot:last-child tr:last-child > th:first-child { + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.table-bordered thead:last-child tr:last-child > th:last-child, +.table-bordered tbody:last-child tr:last-child > td:last-child, +.table-bordered tbody:last-child tr:last-child > th:last-child, +.table-bordered tfoot:last-child tr:last-child > td:last-child, +.table-bordered tfoot:last-child tr:last-child > th:last-child { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:first-child { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomleft: 0; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomright: 0; +} + +.table-bordered caption + thead tr:first-child th:first-child, +.table-bordered caption + tbody tr:first-child td:first-child, +.table-bordered colgroup + thead tr:first-child th:first-child, +.table-bordered colgroup + tbody tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered caption + thead tr:first-child th:last-child, +.table-bordered caption + tbody tr:first-child td:last-child, +.table-bordered colgroup + thead tr:first-child th:last-child, +.table-bordered colgroup + tbody tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-striped tbody > tr:nth-child(odd) > td, +.table-striped tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} + +.table-hover tbody tr:hover > td, +.table-hover tbody tr:hover > th { + background-color: #f5f5f5; +} + +table td[class*="span"], +table th[class*="span"], +.row-fluid table td[class*="span"], +.row-fluid table th[class*="span"] { + display: table-cell; + float: none; + margin-left: 0; +} + +.table td.span1, +.table th.span1 { + float: none; + width: 44px; + margin-left: 0; +} + +.table td.span2, +.table th.span2 { + float: none; + width: 124px; + margin-left: 0; +} + +.table td.span3, +.table th.span3 { + float: none; + width: 204px; + margin-left: 0; +} + +.table td.span4, +.table th.span4 { + float: none; + width: 284px; + margin-left: 0; +} + +.table td.span5, +.table th.span5 { + float: none; + width: 364px; + margin-left: 0; +} + +.table td.span6, +.table th.span6 { + float: none; + width: 444px; + margin-left: 0; +} + +.table td.span7, +.table th.span7 { + float: none; + width: 524px; + margin-left: 0; +} + +.table td.span8, +.table th.span8 { + float: none; + width: 604px; + margin-left: 0; +} + +.table td.span9, +.table th.span9 { + float: none; + width: 684px; + margin-left: 0; +} + +.table td.span10, +.table th.span10 { + float: none; + width: 764px; + margin-left: 0; +} + +.table td.span11, +.table th.span11 { + float: none; + width: 844px; + margin-left: 0; +} + +.table td.span12, +.table th.span12 { + float: none; + width: 924px; + margin-left: 0; +} + +.table tbody tr.success > td { + background-color: #dff0d8; +} + +.table tbody tr.error > td { + background-color: #f2dede; +} + +.table tbody tr.warning > td { + background-color: #fcf8e3; +} + +.table tbody tr.info > td { + background-color: #d9edf7; +} + +.table-hover tbody tr.success:hover > td { + background-color: #d0e9c6; +} + +.table-hover tbody tr.error:hover > td { + background-color: #ebcccc; +} + +.table-hover tbody tr.warning:hover > td { + background-color: #faf2cc; +} + +.table-hover tbody tr.info:hover > td { + background-color: #c4e3f3; +} + +[class^="icon-"], +[class*=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + margin-top: 1px; + *margin-right: .3em; + line-height: 14px; + vertical-align: text-top; + background-image: url("../img/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat; +} + +/* White icons with optional class, or on hover/focus/active states of certain elements */ + +.icon-white, +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:focus > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > li > a:focus > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"], +.dropdown-submenu:hover > a > [class^="icon-"], +.dropdown-submenu:focus > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"], +.dropdown-submenu:focus > a > [class*=" icon-"] { + background-image: url("../img/glyphicons-halflings-white.png"); +} + +.icon-glass { + background-position: 0 0; +} + +.icon-music { + background-position: -24px 0; +} + +.icon-search { + background-position: -48px 0; +} + +.icon-envelope { + background-position: -72px 0; +} + +.icon-heart { + background-position: -96px 0; +} + +.icon-star { + background-position: -120px 0; +} + +.icon-star-empty { + background-position: -144px 0; +} + +.icon-user { + background-position: -168px 0; +} + +.icon-film { + background-position: -192px 0; +} + +.icon-th-large { + background-position: -216px 0; +} + +.icon-th { + background-position: -240px 0; +} + +.icon-th-list { + background-position: -264px 0; +} + +.icon-ok { + background-position: -288px 0; +} + +.icon-remove { + background-position: -312px 0; +} + +.icon-zoom-in { + background-position: -336px 0; +} + +.icon-zoom-out { + background-position: -360px 0; +} + +.icon-off { + background-position: -384px 0; +} + +.icon-signal { + background-position: -408px 0; +} + +.icon-cog { + background-position: -432px 0; +} + +.icon-trash { + background-position: -456px 0; +} + +.icon-home { + background-position: 0 -24px; +} + +.icon-file { + background-position: -24px -24px; +} + +.icon-time { + background-position: -48px -24px; +} + +.icon-road { + background-position: -72px -24px; +} + +.icon-download-alt { + background-position: -96px -24px; +} + +.icon-download { + background-position: -120px -24px; +} + +.icon-upload { + background-position: -144px -24px; +} + +.icon-inbox { + background-position: -168px -24px; +} + +.icon-play-circle { + background-position: -192px -24px; +} + +.icon-repeat { + background-position: -216px -24px; +} + +.icon-refresh { + background-position: -240px -24px; +} + +.icon-list-alt { + background-position: -264px -24px; +} + +.icon-lock { + background-position: -287px -24px; +} + +.icon-flag { + background-position: -312px -24px; +} + +.icon-headphones { + background-position: -336px -24px; +} + +.icon-volume-off { + background-position: -360px -24px; +} + +.icon-volume-down { + background-position: -384px -24px; +} + +.icon-volume-up { + background-position: -408px -24px; +} + +.icon-qrcode { + background-position: -432px -24px; +} + +.icon-barcode { + background-position: -456px -24px; +} + +.icon-tag { + background-position: 0 -48px; +} + +.icon-tags { + background-position: -25px -48px; +} + +.icon-book { + background-position: -48px -48px; +} + +.icon-bookmark { + background-position: -72px -48px; +} + +.icon-print { + background-position: -96px -48px; +} + +.icon-camera { + background-position: -120px -48px; +} + +.icon-font { + background-position: -144px -48px; +} + +.icon-bold { + background-position: -167px -48px; +} + +.icon-italic { + background-position: -192px -48px; +} + +.icon-text-height { + background-position: -216px -48px; +} + +.icon-text-width { + background-position: -240px -48px; +} + +.icon-align-left { + background-position: -264px -48px; +} + +.icon-align-center { + background-position: -288px -48px; +} + +.icon-align-right { + background-position: -312px -48px; +} + +.icon-align-justify { + background-position: -336px -48px; +} + +.icon-list { + background-position: -360px -48px; +} + +.icon-indent-left { + background-position: -384px -48px; +} + +.icon-indent-right { + background-position: -408px -48px; +} + +.icon-facetime-video { + background-position: -432px -48px; +} + +.icon-picture { + background-position: -456px -48px; +} + +.icon-pencil { + background-position: 0 -72px; +} + +.icon-map-marker { + background-position: -24px -72px; +} + +.icon-adjust { + background-position: -48px -72px; +} + +.icon-tint { + background-position: -72px -72px; +} + +.icon-edit { + background-position: -96px -72px; +} + +.icon-share { + background-position: -120px -72px; +} + +.icon-check { + background-position: -144px -72px; +} + +.icon-move { + background-position: -168px -72px; +} + +.icon-step-backward { + background-position: -192px -72px; +} + +.icon-fast-backward { + background-position: -216px -72px; +} + +.icon-backward { + background-position: -240px -72px; +} + +.icon-play { + background-position: -264px -72px; +} + +.icon-pause { + background-position: -288px -72px; +} + +.icon-stop { + background-position: -312px -72px; +} + +.icon-forward { + background-position: -336px -72px; +} + +.icon-fast-forward { + background-position: -360px -72px; +} + +.icon-step-forward { + background-position: -384px -72px; +} + +.icon-eject { + background-position: -408px -72px; +} + +.icon-chevron-left { + background-position: -432px -72px; +} + +.icon-chevron-right { + background-position: -456px -72px; +} + +.icon-plus-sign { + background-position: 0 -96px; +} + +.icon-minus-sign { + background-position: -24px -96px; +} + +.icon-remove-sign { + background-position: -48px -96px; +} + +.icon-ok-sign { + background-position: -72px -96px; +} + +.icon-question-sign { + background-position: -96px -96px; +} + +.icon-info-sign { + background-position: -120px -96px; +} + +.icon-screenshot { + background-position: -144px -96px; +} + +.icon-remove-circle { + background-position: -168px -96px; +} + +.icon-ok-circle { + background-position: -192px -96px; +} + +.icon-ban-circle { + background-position: -216px -96px; +} + +.icon-arrow-left { + background-position: -240px -96px; +} + +.icon-arrow-right { + background-position: -264px -96px; +} + +.icon-arrow-up { + background-position: -289px -96px; +} + +.icon-arrow-down { + background-position: -312px -96px; +} + +.icon-share-alt { + background-position: -336px -96px; +} + +.icon-resize-full { + background-position: -360px -96px; +} + +.icon-resize-small { + background-position: -384px -96px; +} + +.icon-plus { + background-position: -408px -96px; +} + +.icon-minus { + background-position: -433px -96px; +} + +.icon-asterisk { + background-position: -456px -96px; +} + +.icon-exclamation-sign { + background-position: 0 -120px; +} + +.icon-gift { + background-position: -24px -120px; +} + +.icon-leaf { + background-position: -48px -120px; +} + +.icon-fire { + background-position: -72px -120px; +} + +.icon-eye-open { + background-position: -96px -120px; +} + +.icon-eye-close { + background-position: -120px -120px; +} + +.icon-warning-sign { + background-position: -144px -120px; +} + +.icon-plane { + background-position: -168px -120px; +} + +.icon-calendar { + background-position: -192px -120px; +} + +.icon-random { + width: 16px; + background-position: -216px -120px; +} + +.icon-comment { + background-position: -240px -120px; +} + +.icon-magnet { + background-position: -264px -120px; +} + +.icon-chevron-up { + background-position: -288px -120px; +} + +.icon-chevron-down { + background-position: -313px -119px; +} + +.icon-retweet { + background-position: -336px -120px; +} + +.icon-shopping-cart { + background-position: -360px -120px; +} + +.icon-folder-close { + width: 16px; + background-position: -384px -120px; +} + +.icon-folder-open { + width: 16px; + background-position: -408px -120px; +} + +.icon-resize-vertical { + background-position: -432px -119px; +} + +.icon-resize-horizontal { + background-position: -456px -118px; +} + +.icon-hdd { + background-position: 0 -144px; +} + +.icon-bullhorn { + background-position: -24px -144px; +} + +.icon-bell { + background-position: -48px -144px; +} + +.icon-certificate { + background-position: -72px -144px; +} + +.icon-thumbs-up { + background-position: -96px -144px; +} + +.icon-thumbs-down { + background-position: -120px -144px; +} + +.icon-hand-right { + background-position: -144px -144px; +} + +.icon-hand-left { + background-position: -168px -144px; +} + +.icon-hand-up { + background-position: -192px -144px; +} + +.icon-hand-down { + background-position: -216px -144px; +} + +.icon-circle-arrow-right { + background-position: -240px -144px; +} + +.icon-circle-arrow-left { + background-position: -264px -144px; +} + +.icon-circle-arrow-up { + background-position: -288px -144px; +} + +.icon-circle-arrow-down { + background-position: -312px -144px; +} + +.icon-globe { + background-position: -336px -144px; +} + +.icon-wrench { + background-position: -360px -144px; +} + +.icon-tasks { + background-position: -384px -144px; +} + +.icon-filter { + background-position: -408px -144px; +} + +.icon-briefcase { + background-position: -432px -144px; +} + +.icon-fullscreen { + background-position: -456px -144px; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle { + *margin-bottom: -3px; +} + +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} + +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} + +.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; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #333333; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-submenu:hover > a, +.dropdown-submenu:focus > a { + color: #ffffff; + text-decoration: none; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + outline: 0; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.open { + *z-index: 1000; +} + +.open > .dropdown-menu { + display: block; +} + +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 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 solid #000000; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +.dropdown-submenu { + position: relative; +} + +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + -webkit-border-radius: 0 6px 6px 6px; + -moz-border-radius: 0 6px 6px 6px; + border-radius: 0 6px 6px 6px; +} + +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} + +.dropup .dropdown-submenu > .dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; + -webkit-border-radius: 5px 5px 5px 0; + -moz-border-radius: 5px 5px 5px 0; + border-radius: 5px 5px 5px 0; +} + +.dropdown-submenu > a:after { + display: block; + float: right; + width: 0; + height: 0; + margin-top: 5px; + margin-right: -10px; + border-color: transparent; + border-left-color: #cccccc; + border-style: solid; + border-width: 5px 0 5px 5px; + content: " "; +} + +.dropdown-submenu:hover > a:after { + border-left-color: #ffffff; +} + +.dropdown-submenu.pull-left { + float: none; +} + +.dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.dropdown .dropdown-menu .nav-header { + padding-right: 20px; + padding-left: 20px; +} + +.typeahead { + z-index: 1051; + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + 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-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +.collapse.in { + height: auto; +} + +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 20px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.btn { + display: inline-block; + *display: inline; + padding: 4px 12px; + margin-bottom: 0; + *margin-left: .3em; + font-size: 14px; + line-height: 20px; + color: #333333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + vertical-align: middle; + cursor: pointer; + background-color: #f5f5f5; + *background-color: #e6e6e6; + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); + background-repeat: repeat-x; + border: 1px solid #cccccc; + *border: 0; + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + border-bottom-color: #b3b3b3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn:hover, +.btn:focus, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + color: #333333; + background-color: #e6e6e6; + *background-color: #d9d9d9; +} + +.btn:active, +.btn.active { + background-color: #cccccc \9; +} + +.btn:first-child { + *margin-left: 0; +} + +.btn:hover, +.btn:focus { + color: #333333; + text-decoration: none; + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn.active, +.btn:active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn.disabled, +.btn[disabled] { + cursor: default; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-large { + padding: 11px 19px; + font-size: 17.5px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.btn-large [class^="icon-"], +.btn-large [class*=" icon-"] { + margin-top: 4px; +} + +.btn-small { + padding: 2px 10px; + font-size: 11.9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.btn-small [class^="icon-"], +.btn-small [class*=" icon-"] { + margin-top: 0; +} + +.btn-mini [class^="icon-"], +.btn-mini [class*=" icon-"] { + margin-top: -1px; +} + +.btn-mini { + padding: 0 6px; + font-size: 10.5px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} + +.btn-primary { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #006dcc; + *background-color: #0044cc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(to bottom, #0088cc, #0044cc); + background-repeat: repeat-x; + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + color: #ffffff; + background-color: #0044cc; + *background-color: #003bb3; +} + +.btn-primary:active, +.btn-primary.active { + background-color: #003399 \9; +} + +.btn-warning { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #faa732; + *background-color: #f89406; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + color: #ffffff; + background-color: #f89406; + *background-color: #df8505; +} + +.btn-warning:active, +.btn-warning.active { + background-color: #c67605 \9; +} + +.btn-danger { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #da4f49; + *background-color: #bd362f; + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); + background-repeat: repeat-x; + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + color: #ffffff; + background-color: #bd362f; + *background-color: #a9302a; +} + +.btn-danger:active, +.btn-danger.active { + background-color: #942a25 \9; +} + +.btn-success { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #5bb75b; + *background-color: #51a351; + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(to bottom, #62c462, #51a351); + background-repeat: repeat-x; + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + color: #ffffff; + background-color: #51a351; + *background-color: #499249; +} + +.btn-success:active, +.btn-success.active { + background-color: #408140 \9; +} + +.btn-info { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #49afcd; + *background-color: #2f96b4; + background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); + background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); + background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); + background-repeat: repeat-x; + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + color: #ffffff; + background-color: #2f96b4; + *background-color: #2a85a0; +} + +.btn-info:active, +.btn-info.active { + background-color: #24748c \9; +} + +.btn-inverse { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #363636; + *background-color: #222222; + background-image: -moz-linear-gradient(top, #444444, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); + background-image: -webkit-linear-gradient(top, #444444, #222222); + background-image: -o-linear-gradient(top, #444444, #222222); + background-image: linear-gradient(to bottom, #444444, #222222); + background-repeat: repeat-x; + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-inverse:hover, +.btn-inverse:focus, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + color: #ffffff; + background-color: #222222; + *background-color: #151515; +} + +.btn-inverse:active, +.btn-inverse.active { + background-color: #080808 \9; +} + +button.btn, +input[type="submit"].btn { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} + +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-link { + color: #0088cc; + cursor: pointer; + border-color: transparent; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-link:hover, +.btn-link:focus { + color: #005580; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +.btn-link[disabled]:focus { + color: #333333; + text-decoration: none; +} + +.btn-group { + position: relative; + display: inline-block; + *display: inline; + *margin-left: .3em; + font-size: 0; + white-space: nowrap; + vertical-align: middle; + *zoom: 1; +} + +.btn-group:first-child { + *margin-left: 0; +} + +.btn-group + .btn-group { + margin-left: 5px; +} + +.btn-toolbar { + margin-top: 10px; + margin-bottom: 10px; + font-size: 0; +} + +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group { + margin-left: 5px; +} + +.btn-group > .btn { + position: relative; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group > .btn + .btn { + margin-left: -1px; +} + +.btn-group > .btn, +.btn-group > .dropdown-menu, +.btn-group > .popover { + font-size: 14px; +} + +.btn-group > .btn-mini { + font-size: 10.5px; +} + +.btn-group > .btn-small { + font-size: 11.9px; +} + +.btn-group > .btn-large { + font-size: 17.5px; +} + +.btn-group > .btn:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.btn-group > .btn.large:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index: 2; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group > .btn + .dropdown-toggle { + *padding-top: 5px; + padding-right: 8px; + *padding-bottom: 5px; + padding-left: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group > .btn-mini + .dropdown-toggle { + *padding-top: 2px; + padding-right: 5px; + *padding-bottom: 2px; + padding-left: 5px; +} + +.btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; + *padding-bottom: 4px; +} + +.btn-group > .btn-large + .dropdown-toggle { + *padding-top: 7px; + padding-right: 12px; + *padding-bottom: 7px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group.open .btn.dropdown-toggle { + background-color: #e6e6e6; +} + +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #0044cc; +} + +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #f89406; +} + +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f; +} + +.btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351; +} + +.btn-group.open .btn-info.dropdown-toggle { + background-color: #2f96b4; +} + +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #222222; +} + +.btn .caret { + margin-top: 8px; + margin-left: 0; +} + +.btn-large .caret { + margin-top: 6px; +} + +.btn-large .caret { + border-top-width: 5px; + border-right-width: 5px; + border-left-width: 5px; +} + +.btn-mini .caret, +.btn-small .caret { + margin-top: 8px; +} + +.dropup .btn-large .caret { + border-bottom-width: 5px; +} + +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.btn-group-vertical { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} + +.btn-group-vertical > .btn { + display: block; + float: none; + max-width: 100%; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group-vertical > .btn + .btn { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn:first-child { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.btn-group-vertical > .btn:last-child { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.btn-group-vertical > .btn-large:first-child { + -webkit-border-radius: 6px 6px 0 0; + -moz-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} + +.btn-group-vertical > .btn-large:last-child { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 20px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.alert, +.alert h4 { + color: #c09853; +} + +.alert h4 { + margin: 0; +} + +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 20px; +} + +.alert-success { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-success h4 { + color: #468847; +} + +.alert-danger, +.alert-error { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.alert-danger h4, +.alert-error h4 { + color: #b94a48; +} + +.alert-info { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-info h4 { + color: #3a87ad; +} + +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} + +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} + +.alert-block p + p { + margin-top: 5px; +} + +.nav { + margin-bottom: 20px; + margin-left: 0; + list-style: none; +} + +.nav > li > a { + display: block; +} + +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} + +.nav > li > a > img { + max-width: none; +} + +.nav > .pull-right { + float: right; +} + +.nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 20px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} + +.nav li + .nav-header { + margin-top: 9px; +} + +.nav-list { + padding-right: 15px; + padding-left: 15px; + margin-bottom: 0; +} + +.nav-list > li > a, +.nav-list .nav-header { + margin-right: -15px; + margin-left: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} + +.nav-list > li > a { + padding: 3px 15px; +} + +.nav-list > .active > a, +.nav-list > .active > a:hover, +.nav-list > .active > a:focus { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} + +.nav-list [class^="icon-"], +.nav-list [class*=" icon-"] { + margin-right: 2px; +} + +.nav-list .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.nav-tabs, +.nav-pills { + *zoom: 1; +} + +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + line-height: 0; + content: ""; +} + +.nav-tabs:after, +.nav-pills:after { + clear: both; +} + +.nav-tabs > li, +.nav-pills > li { + float: left; +} + +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} + +.nav-tabs { + border-bottom: 1px solid #ddd; +} + +.nav-tabs > li { + margin-bottom: -1px; +} + +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 20px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #dddddd; +} + +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover, +.nav-tabs > .active > a:focus { + color: #555555; + cursor: default; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} + +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.nav-pills > .active > a, +.nav-pills > .active > a:hover, +.nav-pills > .active > a:focus { + color: #ffffff; + background-color: #0088cc; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li > a { + margin-right: 0; +} + +.nav-tabs.nav-stacked { + border-bottom: 0; +} + +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; +} + +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.nav-tabs.nav-stacked > li > a:hover, +.nav-tabs.nav-stacked > li > a:focus { + z-index: 2; + border-color: #ddd; +} + +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} + +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} + +.nav-tabs .dropdown-menu { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.nav-pills .dropdown-menu { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.nav .dropdown-toggle .caret { + margin-top: 6px; + border-top-color: #0088cc; + border-bottom-color: #0088cc; +} + +.nav .dropdown-toggle:hover .caret, +.nav .dropdown-toggle:focus .caret { + border-top-color: #005580; + border-bottom-color: #005580; +} + +/* move down carets for tabs */ + +.nav-tabs .dropdown-toggle .caret { + margin-top: 8px; +} + +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} + +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.nav > .dropdown.active > a:hover, +.nav > .dropdown.active > a:focus { + cursor: pointer; +} + +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover, +.nav > li.dropdown.open.active > a:focus { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} + +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret, +.nav li.dropdown.open a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} + +.tabs-stacked .open > a:hover, +.tabs-stacked .open > a:focus { + border-color: #999999; +} + +.tabbable { + *zoom: 1; +} + +.tabbable:before, +.tabbable:after { + display: table; + line-height: 0; + content: ""; +} + +.tabbable:after { + clear: both; +} + +.tab-content { + overflow: auto; +} + +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} + +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} + +.tab-content > .active, +.pill-content > .active { + display: block; +} + +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} + +.tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} + +.tabs-below > .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.tabs-below > .nav-tabs > li > a:hover, +.tabs-below > .nav-tabs > li > a:focus { + border-top-color: #ddd; + border-bottom-color: transparent; +} + +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover, +.tabs-below > .nav-tabs > .active > a:focus { + border-color: transparent #ddd #ddd #ddd; +} + +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float: none; +} + +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} + +.tabs-left > .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} + +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.tabs-left > .nav-tabs > li > a:hover, +.tabs-left > .nav-tabs > li > a:focus { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} + +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover, +.tabs-left > .nav-tabs .active > a:focus { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} + +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} + +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.tabs-right > .nav-tabs > li > a:hover, +.tabs-right > .nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} + +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover, +.tabs-right > .nav-tabs .active > a:focus { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} + +.nav > .disabled > a { + color: #999999; +} + +.nav > .disabled > a:hover, +.nav > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; +} + +.navbar { + *position: relative; + *z-index: 2; + margin-bottom: 20px; + overflow: visible; +} + +.navbar-inner { + min-height: 40px; + padding-right: 20px; + padding-left: 20px; + background-color: #fafafa; + background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); + background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); + background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); + background-repeat: repeat-x; + border: 1px solid #d4d4d4; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); + *zoom: 1; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); +} + +.navbar-inner:before, +.navbar-inner:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-inner:after { + clear: both; +} + +.navbar .container { + width: auto; +} + +.nav-collapse.collapse { + height: auto; + overflow: visible; +} + +.navbar .brand { + display: block; + float: left; + padding: 10px 20px 10px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + color: #777777; + text-shadow: 0 1px 0 #ffffff; +} + +.navbar .brand:hover, +.navbar .brand:focus { + text-decoration: none; +} + +.navbar-text { + margin-bottom: 0; + line-height: 40px; + color: #777777; +} + +.navbar-link { + color: #777777; +} + +.navbar-link:hover, +.navbar-link:focus { + color: #333333; +} + +.navbar .divider-vertical { + height: 40px; + margin: 0 9px; + border-right: 1px solid #ffffff; + border-left: 1px solid #f2f2f2; +} + +.navbar .btn, +.navbar .btn-group { + margin-top: 5px; +} + +.navbar .btn-group .btn, +.navbar .input-prepend .btn, +.navbar .input-append .btn, +.navbar .input-prepend .btn-group, +.navbar .input-append .btn-group { + margin-top: 0; +} + +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} + +.navbar-form:before, +.navbar-form:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-form:after { + clear: both; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: 5px; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .btn { + display: inline-block; + margin-bottom: 0; +} + +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} + +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 5px; + white-space: nowrap; +} + +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} + +.navbar-search { + position: relative; + float: left; + margin-top: 5px; + margin-bottom: 0; +} + +.navbar-search .search-query { + padding: 4px 14px; + margin-bottom: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.navbar-static-top { + position: static; + margin-bottom: 0; +} + +.navbar-static-top .navbar-inner { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + border-width: 0 0 1px; +} + +.navbar-fixed-bottom .navbar-inner { + border-width: 1px 0 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-right: 0; + padding-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.navbar-fixed-top { + top: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar-fixed-bottom { + bottom: 0; +} + +.navbar-fixed-bottom .navbar-inner { + -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} + +.navbar .nav.pull-right { + float: right; + margin-right: 0; +} + +.navbar .nav > li { + float: left; +} + +.navbar .nav > li > a { + float: none; + padding: 10px 15px 10px; + color: #777777; + text-decoration: none; + text-shadow: 0 1px 0 #ffffff; +} + +.navbar .nav .dropdown-toggle .caret { + margin-top: 8px; +} + +.navbar .nav > li > a:focus, +.navbar .nav > li > a:hover { + color: #333333; + text-decoration: none; + background-color: transparent; +} + +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover, +.navbar .nav > .active > a:focus { + color: #555555; + text-decoration: none; + background-color: #e5e5e5; + -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); +} + +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-right: 5px; + margin-left: 5px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #ededed; + *background-color: #e5e5e5; + background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); + background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); + background-repeat: repeat-x; + border-color: #e5e5e5 #e5e5e5 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} + +.navbar .btn-navbar:hover, +.navbar .btn-navbar:focus, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + color: #ffffff; + background-color: #e5e5e5; + *background-color: #d9d9d9; +} + +.navbar .btn-navbar:active, +.navbar .btn-navbar.active { + background-color: #cccccc \9; +} + +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} + +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} + +.navbar .nav > li > .dropdown-menu:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.navbar .nav > li > .dropdown-menu:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + border-left: 6px solid transparent; + content: ''; +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:before { + top: auto; + bottom: -7px; + border-top: 7px solid #ccc; + border-bottom: 0; + border-top-color: rgba(0, 0, 0, 0.2); +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:after { + top: auto; + bottom: -6px; + border-top: 6px solid #ffffff; + border-bottom: 0; +} + +.navbar .nav li.dropdown > a:hover .caret, +.navbar .nav li.dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + color: #555555; + background-color: #e5e5e5; +} + +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.navbar .pull-right > li > .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:before, +.navbar .nav > li > .dropdown-menu.pull-right:before { + right: 12px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:after, +.navbar .nav > li > .dropdown-menu.pull-right:after { + right: 13px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { + right: 100%; + left: auto; + margin-right: -1px; + margin-left: 0; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.navbar-inverse .navbar-inner { + background-color: #1b1b1b; + background-image: -moz-linear-gradient(top, #222222, #111111); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); + background-image: -webkit-linear-gradient(top, #222222, #111111); + background-image: -o-linear-gradient(top, #222222, #111111); + background-image: linear-gradient(to bottom, #222222, #111111); + background-repeat: repeat-x; + border-color: #252525; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); +} + +.navbar-inverse .brand, +.navbar-inverse .nav > li > a { + color: #999999; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.navbar-inverse .brand:hover, +.navbar-inverse .nav > li > a:hover, +.navbar-inverse .brand:focus, +.navbar-inverse .nav > li > a:focus { + color: #ffffff; +} + +.navbar-inverse .brand { + color: #999999; +} + +.navbar-inverse .navbar-text { + color: #999999; +} + +.navbar-inverse .nav > li > a:focus, +.navbar-inverse .nav > li > a:hover { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .nav .active > a, +.navbar-inverse .nav .active > a:hover, +.navbar-inverse .nav .active > a:focus { + color: #ffffff; + background-color: #111111; +} + +.navbar-inverse .navbar-link { + color: #999999; +} + +.navbar-inverse .navbar-link:hover, +.navbar-inverse .navbar-link:focus { + color: #ffffff; +} + +.navbar-inverse .divider-vertical { + border-right-color: #222222; + border-left-color: #111111; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { + color: #ffffff; + background-color: #111111; +} + +.navbar-inverse .nav li.dropdown > a:hover .caret, +.navbar-inverse .nav li.dropdown > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .navbar-search .search-query { + color: #ffffff; + background-color: #515151; + border-color: #111111; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} + +.navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:focus, +.navbar-inverse .navbar-search .search-query.focused { + padding: 5px 15px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + outline: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); +} + +.navbar-inverse .btn-navbar { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e0e0e; + *background-color: #040404; + background-image: -moz-linear-gradient(top, #151515, #040404); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); + background-image: -webkit-linear-gradient(top, #151515, #040404); + background-image: -o-linear-gradient(top, #151515, #040404); + background-image: linear-gradient(to bottom, #151515, #040404); + background-repeat: repeat-x; + border-color: #040404 #040404 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.navbar-inverse .btn-navbar:hover, +.navbar-inverse .btn-navbar:focus, +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active, +.navbar-inverse .btn-navbar.disabled, +.navbar-inverse .btn-navbar[disabled] { + color: #ffffff; + background-color: #040404; + *background-color: #000000; +} + +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active { + background-color: #000000 \9; +} + +.breadcrumb { + padding: 8px 15px; + margin: 0 0 20px; + list-style: none; + background-color: #f5f5f5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.breadcrumb > li { + display: inline-block; + *display: inline; + text-shadow: 0 1px 0 #ffffff; + *zoom: 1; +} + +.breadcrumb > li > .divider { + padding: 0 5px; + color: #ccc; +} + +.breadcrumb > .active { + color: #999999; +} + +.pagination { + margin: 20px 0; +} + +.pagination ul { + display: inline-block; + *display: inline; + margin-bottom: 0; + margin-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + *zoom: 1; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.pagination ul > li { + display: inline; +} + +.pagination ul > li > a, +.pagination ul > li > span { + float: left; + padding: 4px 12px; + line-height: 20px; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + border-left-width: 0; +} + +.pagination ul > li > a:hover, +.pagination ul > li > a:focus, +.pagination ul > .active > a, +.pagination ul > .active > span { + background-color: #f5f5f5; +} + +.pagination ul > .active > a, +.pagination ul > .active > span { + color: #999999; + cursor: default; +} + +.pagination ul > .disabled > span, +.pagination ul > .disabled > a, +.pagination ul > .disabled > a:hover, +.pagination ul > .disabled > a:focus { + color: #999999; + cursor: default; + background-color: transparent; +} + +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { + border-left-width: 1px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.pagination ul > li:last-child > a, +.pagination ul > li:last-child > span { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.pagination-centered { + text-align: center; +} + +.pagination-right { + text-align: right; +} + +.pagination-large ul > li > a, +.pagination-large ul > li > span { + padding: 11px 19px; + font-size: 17.5px; +} + +.pagination-large ul > li:first-child > a, +.pagination-large ul > li:first-child > span { + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.pagination-large ul > li:last-child > a, +.pagination-large ul > li:last-child > span { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.pagination-mini ul > li:first-child > a, +.pagination-small ul > li:first-child > a, +.pagination-mini ul > li:first-child > span, +.pagination-small ul > li:first-child > span { + -webkit-border-bottom-left-radius: 3px; + border-bottom-left-radius: 3px; + -webkit-border-top-left-radius: 3px; + border-top-left-radius: 3px; + -moz-border-radius-bottomleft: 3px; + -moz-border-radius-topleft: 3px; +} + +.pagination-mini ul > li:last-child > a, +.pagination-small ul > li:last-child > a, +.pagination-mini ul > li:last-child > span, +.pagination-small ul > li:last-child > span { + -webkit-border-top-right-radius: 3px; + border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 3px; + border-bottom-right-radius: 3px; + -moz-border-radius-topright: 3px; + -moz-border-radius-bottomright: 3px; +} + +.pagination-small ul > li > a, +.pagination-small ul > li > span { + padding: 2px 10px; + font-size: 11.9px; +} + +.pagination-mini ul > li > a, +.pagination-mini ul > li > span { + padding: 0 6px; + font-size: 10.5px; +} + +.pager { + margin: 20px 0; + text-align: center; + list-style: none; + *zoom: 1; +} + +.pager:before, +.pager:after { + display: table; + line-height: 0; + content: ""; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #f5f5f5; +} + +.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: #999999; + cursor: default; + background-color: #fff; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.modal { + position: fixed; + top: 10%; + left: 50%; + z-index: 1050; + width: 560px; + margin-left: -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + outline: none; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +.modal.fade { + top: -25%; + -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; + -moz-transition: opacity 0.3s linear, top 0.3s ease-out; + -o-transition: opacity 0.3s linear, top 0.3s ease-out; + transition: opacity 0.3s linear, top 0.3s ease-out; +} + +.modal.fade.in { + top: 10%; +} + +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} + +.modal-header .close { + margin-top: 2px; +} + +.modal-header h3 { + margin: 0; + line-height: 30px; +} + +.modal-body { + position: relative; + max-height: 400px; + padding: 15px; + overflow-y: auto; +} + +.modal-form { + margin-bottom: 0; +} + +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + line-height: 0; + content: ""; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} + +.tooltip { + position: absolute; + z-index: 1030; + display: block; + font-size: 11px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} + +.tooltip-inner { + max-width: 200px; + padding: 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + 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-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-right-color: #000000; + border-width: 5px 5px 5px 0; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-left-color: #000000; + border-width: 5px 0 5px 5px; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + white-space: normal; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.popover.top { + margin-top: -10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-left: -10px; +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} + +.popover-title:empty { + display: none; +} + +.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 { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; +} + +.popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-top-color: #ffffff; + border-bottom-width: 0; +} + +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; +} + +.popover.right .arrow:after { + bottom: -10px; + left: 1px; + border-right-color: #ffffff; + border-left-width: 0; +} + +.popover.bottom .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, 0.25); + border-top-width: 0; +} + +.popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-bottom-color: #ffffff; + border-top-width: 0; +} + +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, 0.25); + border-right-width: 0; +} + +.popover.left .arrow:after { + right: 1px; + bottom: -10px; + border-left-color: #ffffff; + border-right-width: 0; +} + +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} + +.thumbnails:before, +.thumbnails:after { + display: table; + line-height: 0; + content: ""; +} + +.thumbnails:after { + clear: both; +} + +.row-fluid .thumbnails { + margin-left: 0; +} + +.thumbnails > li { + float: left; + margin-bottom: 20px; + margin-left: 20px; +} + +.thumbnail { + display: block; + padding: 4px; + line-height: 20px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #0088cc; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} + +.thumbnail > img { + display: block; + max-width: 100%; + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; + color: #555555; +} + +.media, +.media-body { + overflow: hidden; + *overflow: visible; + zoom: 1; +} + +.media, +.media .media { + margin-top: 15px; +} + +.media:first-child { + margin-top: 0; +} + +.media-object { + display: block; +} + +.media-heading { + margin: 0 0 5px; +} + +.media > .pull-left { + margin-right: 10px; +} + +.media > .pull-right { + margin-left: 10px; +} + +.media-list { + margin-left: 0; + list-style: none; +} + +.label, +.badge { + display: inline-block; + padding: 2px 4px; + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; +} + +.label { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.badge { + padding-right: 9px; + padding-left: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} + +.label:empty, +.badge:empty { + display: none; +} + +a.label:hover, +a.label:focus, +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label-important, +.badge-important { + background-color: #b94a48; +} + +.label-important[href], +.badge-important[href] { + background-color: #953b39; +} + +.label-warning, +.badge-warning { + background-color: #f89406; +} + +.label-warning[href], +.badge-warning[href] { + background-color: #c67605; +} + +.label-success, +.badge-success { + background-color: #468847; +} + +.label-success[href], +.badge-success[href] { + background-color: #356635; +} + +.label-info, +.badge-info { + background-color: #3a87ad; +} + +.label-info[href], +.badge-info[href] { + background-color: #2d6987; +} + +.label-inverse, +.badge-inverse { + background-color: #333333; +} + +.label-inverse[href], +.badge-inverse[href] { + background-color: #1a1a1a; +} + +.btn .label, +.btn .badge { + position: relative; + top: -1px; +} + +.btn-mini .label, +.btn-mini .badge { + top: 0; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-ms-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress .bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + color: #ffffff; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(to bottom, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress .bar + .bar { + -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); +} + +.progress-striped .bar { + background-color: #149bdf; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + 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: -moz-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: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + 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); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} + +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-danger .bar, +.progress .bar-danger { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); +} + +.progress-danger.progress-striped .bar, +.progress-striped .bar-danger { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + 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: -moz-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: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + 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-success .bar, +.progress .bar-success { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(to bottom, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); +} + +.progress-success.progress-striped .bar, +.progress-striped .bar-success { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + 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: -moz-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: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + 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-info .bar, +.progress .bar-info { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(to bottom, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); +} + +.progress-info.progress-striped .bar, +.progress-striped .bar-info { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + 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: -moz-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: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + 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-warning .bar, +.progress .bar-warning { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); +} + +.progress-warning.progress-striped .bar, +.progress-striped .bar-warning { + background-color: #fbb450; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + 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: -moz-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: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + 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); +} + +.accordion { + margin-bottom: 20px; +} + +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.accordion-heading { + border-bottom: 0; +} + +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} + +.accordion-toggle { + cursor: pointer; +} + +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} + +.carousel { + position: relative; + margin-bottom: 20px; + line-height: 1; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} + +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + line-height: 1; +} + +.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: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.right { + right: 15px; + left: auto; +} + +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-indicators { + position: absolute; + top: 15px; + right: 15px; + z-index: 5; + margin: 0; + list-style: none; +} + +.carousel-indicators li { + display: block; + float: left; + width: 10px; + height: 10px; + margin-left: 5px; + text-indent: -999px; + background-color: #ccc; + background-color: rgba(255, 255, 255, 0.25); + border-radius: 5px; +} + +.carousel-indicators .active { + background-color: #fff; +} + +.carousel-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 15px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} + +.carousel-caption h4, +.carousel-caption p { + line-height: 20px; + color: #ffffff; +} + +.carousel-caption h4 { + margin: 0 0 5px; +} + +.carousel-caption p { + margin-bottom: 0; +} + +.hero-unit { + padding: 60px; + margin-bottom: 30px; + font-size: 18px; + font-weight: 200; + line-height: 30px; + color: inherit; + background-color: #eeeeee; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; + color: inherit; +} + +.hero-unit li { + line-height: 30px; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.invisible { + visibility: hidden; +} + +.affix { + position: fixed; +} diff --git a/docs/_static/bootstrap-2.3.2/css/bootstrap.min.css b/docs/_static/bootstrap-2.3.2/css/bootstrap.min.css new file mode 100644 index 00000000..b6428e69 --- /dev/null +++ b/docs/_static/bootstrap-2.3.2/css/bootstrap.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap v2.3.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]: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}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.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 th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.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;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left: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 solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);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-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.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:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;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-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.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{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);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);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);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-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);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-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);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-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));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:-moz-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:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);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)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.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:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed} diff --git a/docs/_static/bootstrap-2.3.2/img/glyphicons-halflings-white.png b/docs/_static/bootstrap-2.3.2/img/glyphicons-halflings-white.png new file mode 100644 index 0000000000000000000000000000000000000000..3bf6484a29d8da269f9bc874b25493a45fae3bae GIT binary patch literal 8777 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 B7G?kd literal 0 HcmV?d00001 diff --git a/docs/_static/bootstrap-2.3.2/img/glyphicons-halflings.png b/docs/_static/bootstrap-2.3.2/img/glyphicons-halflings.png new file mode 100644 index 0000000000000000000000000000000000000000..a9969993201f9cee63cf9f49217646347297b643 GIT binary patch literal 12799 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 literal 0 HcmV?d00001 diff --git a/docs/_static/bootstrap-2.3.2/js/bootstrap.js b/docs/_static/bootstrap-2.3.2/js/bootstrap.js new file mode 100644 index 00000000..638bb187 --- /dev/null +++ b/docs/_static/bootstrap-2.3.2/js/bootstrap.js @@ -0,0 +1,2287 @@ +/* =================================================== + * bootstrap-transition.js v2.3.2 + * http://twitter.github.com/bootstrap/javascript.html#transitions + * =================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) + * ======================================================= */ + + $(function () { + + $.support.transition = (function () { + + var transitionEnd = (function () { + + var el = document.createElement('bootstrap') + , transEndEventNames = { + 'WebkitTransition' : 'webkitTransitionEnd' + , 'MozTransition' : 'transitionend' + , 'OTransition' : 'oTransitionEnd otransitionend' + , 'transition' : 'transitionend' + } + , name + + for (name in transEndEventNames){ + if (el.style[name] !== undefined) { + return transEndEventNames[name] + } + } + + }()) + + return transitionEnd && { + end: transitionEnd + } + + })() + + }) + +}(window.$jqTheme || window.jQuery); +/* ========================================================== + * bootstrap-alert.js v2.3.2 + * http://twitter.github.com/bootstrap/javascript.html#alerts + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* ALERT CLASS DEFINITION + * ====================== */ + + var dismiss = '[data-dismiss="alert"]' + , Alert = function (el) { + $(el).on('click', dismiss, this.close) + } + + Alert.prototype.close = function (e) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + + e && e.preventDefault() + + $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) + + $parent.trigger(e = $.Event('close')) + + if (e.isDefaultPrevented()) return + + $parent.removeClass('in') + + function removeElement() { + $parent + .trigger('closed') + .remove() + } + + $.support.transition && $parent.hasClass('fade') ? + $parent.on($.support.transition.end, removeElement) : + removeElement() + } + + + /* ALERT PLUGIN DEFINITION + * ======================= */ + + var old = $.fn.alert + + $.fn.alert = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('alert') + if (!data) $this.data('alert', (data = new Alert(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.alert.Constructor = Alert + + + /* ALERT NO CONFLICT + * ================= */ + + $.fn.alert.noConflict = function () { + $.fn.alert = old + return this + } + + + /* ALERT DATA-API + * ============== */ + + $(document).on('click.alert.data-api', dismiss, Alert.prototype.close) + +}(window.$jqTheme || window.jQuery); +/* ============================================================ + * bootstrap-button.js v2.3.2 + * http://twitter.github.com/bootstrap/javascript.html#buttons + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* BUTTON PUBLIC CLASS DEFINITION + * ============================== */ + + var Button = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.button.defaults, options) + } + + Button.prototype.setState = function (state) { + var d = 'disabled' + , $el = this.$element + , data = $el.data() + , val = $el.is('input') ? 'val' : 'html' + + state = state + 'Text' + data.resetText || $el.data('resetText', $el[val]()) + + $el[val](data[state] || this.options[state]) + + // push to event loop to allow forms to submit + setTimeout(function () { + state == 'loadingText' ? + $el.addClass(d).attr(d, d) : + $el.removeClass(d).removeAttr(d) + }, 0) + } + + Button.prototype.toggle = function () { + var $parent = this.$element.closest('[data-toggle="buttons-radio"]') + + $parent && $parent + .find('.active') + .removeClass('active') + + this.$element.toggleClass('active') + } + + + /* BUTTON PLUGIN DEFINITION + * ======================== */ + + var old = $.fn.button + + $.fn.button = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('button') + , options = typeof option == 'object' && option + if (!data) $this.data('button', (data = new Button(this, options))) + if (option == 'toggle') data.toggle() + else if (option) data.setState(option) + }) + } + + $.fn.button.defaults = { + loadingText: 'loading...' + } + + $.fn.button.Constructor = Button + + + /* BUTTON NO CONFLICT + * ================== */ + + $.fn.button.noConflict = function () { + $.fn.button = old + return this + } + + + /* BUTTON DATA-API + * =============== */ + + $(document).on('click.button.data-api', '[data-toggle^=button]', function (e) { + var $btn = $(e.target) + if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') + $btn.button('toggle') + }) + +}(window.$jqTheme || window.jQuery); +/* ========================================================== + * bootstrap-carousel.js v2.3.2 + * http://twitter.github.com/bootstrap/javascript.html#carousel + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* CAROUSEL CLASS DEFINITION + * ========================= */ + + var Carousel = function (element, options) { + this.$element = $(element) + this.$indicators = this.$element.find('.carousel-indicators') + this.options = options + this.options.pause == 'hover' && this.$element + .on('mouseenter', $.proxy(this.pause, this)) + .on('mouseleave', $.proxy(this.cycle, this)) + } + + Carousel.prototype = { + + cycle: function (e) { + if (!e) this.paused = false + if (this.interval) clearInterval(this.interval); + this.options.interval + && !this.paused + && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) + return this + } + + , getActiveIndex: function () { + this.$active = this.$element.find('.item.active') + this.$items = this.$active.parent().children() + return this.$items.index(this.$active) + } + + , to: function (pos) { + var activeIndex = this.getActiveIndex() + , that = this + + if (pos > (this.$items.length - 1) || pos < 0) return + + if (this.sliding) { + return this.$element.one('slid', function () { + that.to(pos) + }) + } + + if (activeIndex == pos) { + return this.pause().cycle() + } + + return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos])) + } + + , pause: function (e) { + if (!e) this.paused = true + if (this.$element.find('.next, .prev').length && $.support.transition.end) { + this.$element.trigger($.support.transition.end) + this.cycle(true) + } + clearInterval(this.interval) + this.interval = null + return this + } + + , next: function () { + if (this.sliding) return + return this.slide('next') + } + + , prev: function () { + if (this.sliding) return + return this.slide('prev') + } + + , slide: function (type, next) { + var $active = this.$element.find('.item.active') + , $next = next || $active[type]() + , isCycling = this.interval + , direction = type == 'next' ? 'left' : 'right' + , fallback = type == 'next' ? 'first' : 'last' + , that = this + , e + + this.sliding = true + + isCycling && this.pause() + + $next = $next.length ? $next : this.$element.find('.item')[fallback]() + + e = $.Event('slide', { + relatedTarget: $next[0] + , direction: direction + }) + + if ($next.hasClass('active')) return + + if (this.$indicators.length) { + this.$indicators.find('.active').removeClass('active') + this.$element.one('slid', function () { + var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()]) + $nextIndicator && $nextIndicator.addClass('active') + }) + } + + if ($.support.transition && this.$element.hasClass('slide')) { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + $next.addClass(type) + $next[0].offsetWidth // force reflow + $active.addClass(direction) + $next.addClass(direction) + this.$element.one($.support.transition.end, function () { + $next.removeClass([type, direction].join(' ')).addClass('active') + $active.removeClass(['active', direction].join(' ')) + that.sliding = false + setTimeout(function () { that.$element.trigger('slid') }, 0) + }) + } else { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + $active.removeClass('active') + $next.addClass('active') + this.sliding = false + this.$element.trigger('slid') + } + + isCycling && this.cycle() + + return this + } + + } + + + /* CAROUSEL PLUGIN DEFINITION + * ========================== */ + + var old = $.fn.carousel + + $.fn.carousel = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('carousel') + , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option) + , action = typeof option == 'string' ? option : options.slide + if (!data) $this.data('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() + }) + } + + $.fn.carousel.defaults = { + interval: 5000 + , pause: 'hover' + } + + $.fn.carousel.Constructor = Carousel + + + /* CAROUSEL NO CONFLICT + * ==================== */ + + $.fn.carousel.noConflict = function () { + $.fn.carousel = old + return this + } + + /* CAROUSEL DATA-API + * ================= */ + + $(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { + var $this = $(this), href + , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + , options = $.extend({}, $target.data(), $this.data()) + , slideIndex + + $target.carousel(options) + + if (slideIndex = $this.attr('data-slide-to')) { + $target.data('carousel').pause().to(slideIndex).cycle() + } + + e.preventDefault() + }) + +}(window.$jqTheme || window.jQuery); +/* ============================================================= + * bootstrap-collapse.js v2.3.2 + * http://twitter.github.com/bootstrap/javascript.html#collapse + * ============================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* COLLAPSE PUBLIC CLASS DEFINITION + * ================================ */ + + var Collapse = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.collapse.defaults, options) + + if (this.options.parent) { + this.$parent = $(this.options.parent) + } + + this.options.toggle && this.toggle() + } + + Collapse.prototype = { + + constructor: Collapse + + , dimension: function () { + var hasWidth = this.$element.hasClass('width') + return hasWidth ? 'width' : 'height' + } + + , show: function () { + var dimension + , scroll + , actives + , hasData + + if (this.transitioning || this.$element.hasClass('in')) return + + dimension = this.dimension() + scroll = $.camelCase(['scroll', dimension].join('-')) + actives = this.$parent && this.$parent.find('> .accordion-group > .in') + + if (actives && actives.length) { + hasData = actives.data('collapse') + if (hasData && hasData.transitioning) return + actives.collapse('hide') + hasData || actives.data('collapse', null) + } + + this.$element[dimension](0) + this.transition('addClass', $.Event('show'), 'shown') + $.support.transition && this.$element[dimension](this.$element[0][scroll]) + } + + , hide: function () { + var dimension + if (this.transitioning || !this.$element.hasClass('in')) return + dimension = this.dimension() + this.reset(this.$element[dimension]()) + this.transition('removeClass', $.Event('hide'), 'hidden') + this.$element[dimension](0) + } + + , reset: function (size) { + var dimension = this.dimension() + + this.$element + .removeClass('collapse') + [dimension](size || 'auto') + [0].offsetWidth + + this.$element[size !== null ? 'addClass' : 'removeClass']('collapse') + + return this + } + + , transition: function (method, startEvent, completeEvent) { + var that = this + , complete = function () { + if (startEvent.type == 'show') that.reset() + that.transitioning = 0 + that.$element.trigger(completeEvent) + } + + this.$element.trigger(startEvent) + + if (startEvent.isDefaultPrevented()) return + + this.transitioning = 1 + + this.$element[method]('in') + + $.support.transition && this.$element.hasClass('collapse') ? + this.$element.one($.support.transition.end, complete) : + complete() + } + + , toggle: function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + } + + } + + + /* COLLAPSE PLUGIN DEFINITION + * ========================== */ + + var old = $.fn.collapse + + $.fn.collapse = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('collapse') + , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option) + if (!data) $this.data('collapse', (data = new Collapse(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.collapse.defaults = { + toggle: true + } + + $.fn.collapse.Constructor = Collapse + + + /* COLLAPSE NO CONFLICT + * ==================== */ + + $.fn.collapse.noConflict = function () { + $.fn.collapse = old + return this + } + + + /* COLLAPSE DATA-API + * ================= */ + + $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) { + var $this = $(this), href + , target = $this.attr('data-target') + || e.preventDefault() + || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 + , option = $(target).data('collapse') ? 'toggle' : $this.data() + $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed') + $(target).collapse(option) + }) + +}(window.$jqTheme || window.jQuery); +/* ============================================================ + * bootstrap-dropdown.js v2.3.2 + * http://twitter.github.com/bootstrap/javascript.html#dropdowns + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* DROPDOWN CLASS DEFINITION + * ========================= */ + + var toggle = '[data-toggle=dropdown]' + , Dropdown = function (element) { + var $el = $(element).on('click.dropdown.data-api', this.toggle) + $('html').on('click.dropdown.data-api', function () { + $el.parent().removeClass('open') + }) + } + + Dropdown.prototype = { + + constructor: Dropdown + + , toggle: function (e) { + var $this = $(this) + , $parent + , isActive + + if ($this.is('.disabled, :disabled')) return + + $parent = getParent($this) + + isActive = $parent.hasClass('open') + + clearMenus() + + if (!isActive) { + if ('ontouchstart' in document.documentElement) { + // if mobile we we use a backdrop because click events don't delegate + $('