From 93fae6ac9baf7eab491cd6a0797dca8fc94711c8 Mon Sep 17 00:00:00 2001 From: chriswmackey Date: Fri, 20 Dec 2024 23:19:23 +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 -> 286413 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 | 860 +++ .../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, 47501 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..8027b17e --- /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: 5d4a3feecfa431e12ca46c1031814a2d +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 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 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..bf16db1645b95f9fa2c3ea7f4e76127b9f54a4fa GIT binary patch literal 286413 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 AZ~y=R 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 zcmcIq%Wot{8MoK=c*f6NC+mdlZs=7A>t!?J4M|XB@?e!EVKK3ykYocAYWH;4Om(}b zyXnW;mWUKUS=ORNBBgWSM5IWOIB?*U10aNuA`nNE143N*4^Tuz1P6X!Rlla~v7NA3 znx5&es=oT(k1D@9_0})WkI6r=7zNz+b~=V-dA`M>R5UH$Oa{!0(>K$L-%npjS41l` zwj)0YO_qu=%rLp_S|Rh&?_h9&=Et@hbut9g5i?`k_los=iZ}Q)=JJ-9itX5Cl_7EQ zI&)2bz_i%ctkCHDUeDcaC)@oCk(QHU5We#%Apwrb7uXI_CoYXz`uA6Vx^MAosbZ!P z7$7}P`6+maU9y+B!*~66ce@;fo(Bux<(WMh~HD5 zF;KsnRuYsiUBlc8S&!xz$3?RJxXC-!|e zS|tu*ARP3|eL8{HpHY(jEEwkJA@ck1xgVbk_*?|T6G>>N;=xahHx)Cc;aRq2C~=DM zCsV!_CHxX^^K<+G@H3eUNAlHzu8e+Y1iWf7uW!B>b`4Lv&WxC|P0OnWm(} ztJwc5Qg4me2>YyzAdtd^V~CcNGi-X|u7p(G-d3t^_j6UJMsAha6fK*gRj1?zn=`|& z6P+)MnL<%kx;~zfy(|`Mc2SY*SE_R5UsZt-Y(059Y=m{B{UWRMOHj9RmQYZJr+lR1p+&7M=>ngX+lG{=|Vr5(9Qv|$r zsTa6bJ8I|YPUh2!3ti0C46%D~4mR>EK$OgYf(b>qjNX)uW^=jcN&jRH5OdeOC^lSI zZ7;L=at&Aty^nrc%oR32 zsItj_U6|3`hwhHe?>vaO3gW+25s!|mWZ|TN50dWjgnY6Ta=AdvWtLZWx;i|Ifd}~& z8T283)qLt3*R-ps4Rcd00i{3v=lD#MKYgsGOSe8fWHjG=8YR=Pp?L6`o?)`#f?Xp^ zy7Jt$8Z=_4^uB}S_^k!<15t(jcv7YV9 z3C<<3VuJ<;H{WuZ~q6Z08@0?_o5K^N63Dxfhj zBipjb_uO5~ok71>(gK5Y&XM3$g?(Ae>})r2T^8%Ejjp+D&GHHbog0nlNdAM$ zuvlC}pRl%xjzW5<%5G(4;q1{~(`bsv#9Y9@qSx1Vu%v>coYN8w+oQaC;OMew=G&Bs z%6Y3`<{&#<5tDK^F%iWU!Uvvh+MU(??oC2-#(4u@bsbly%AOCdmP*T$-K^yg4BJbc zx3N@A19`j~;1Fnnwh^;ReQ8# zl=kM8YevinO}@`DKg34+byq-#beBV+yM{tn(cHfY(QVS)zmDMk5ciup@yRupGgH%B z8$$i(5tLN*M)Uu1^!%#cXi2HJGQZdR6VXs%IThnykU8m9l6Dy!@=!ihBP_vNDV4O5 zO4?Z}DGwF$(Q2Zp*A2DQwT=`~(kRNBfcoD`AyN*=5~7ZEs1HW^FH!DiJ3DCR4~RSC z(C{MF5bHtc_d^z`gXXE&N2{!Avuutm)e=(9xL7a~^kZJE7l+n!IYj1|4bjBeZj6kC zBmGkd>gtHT7y78xQM-!9ONN^u4d>ZVH2fqEk~rPqi>N-!Q#8ED^V--L1gJx1L*I`< zDk@QwtmCUl1BwJBS8odwX0q2Lbn!NiqEM%Ua2f?EQ&d;(rediFG@c)`%HSKumaqB=&j0dHoUibW;)3YIB}B^BptBQ+Ebqqwl3 z@Rl^>tIrM()E0}A!~<+E;t-Jwo>DRI8eTs^Uj~U=ct3&GLEM49-w!PveFiKC+fa+L zAsQxbYQQEWVq3XE@P=40lGxWvkT_w(+~%!h5a@+TLa-8GQ|IUzE+Jf$5a|%4{Sp*J zEU|ojXFvvZ5*3FZF}=D{T8SC!H|)s9H2~q#Ejyw*6O3e3PUo%yx0?eq5u8J{*L}S`5P?9>%$OTdw^Q#*^?K-3}Ee`om@lQouAJF9Cd=-nEPJG5Bu<_(=<~OfSEdqQm7|}I+}pD@4x&os$vqGdR(U*du~`d26kcRe57`vwV3PyAaL$4OJqpM| z_Qc6(*NcrEo!fox;sg7gbbT`YxoBX((Y~9&t0M^N4*9NLb=Nly)wzmuCdaLg3B@aa zgOsHRv3e^Bum#;H%6>Ep1880WvArH_Ad3r26eyykTbm|tys(#{oRRMFwo;f38eIz> zybB6A!@b0wIBjCqmd;S#x;jpTDeg+DPi424uvNFGV%naVVBQV74-`!mP2j$;M9M^T zCZ?-WSKbAl0#UH67~vLHgMOW&xmX&4svAOpfvs1(&>aO`E&@JHK=pftzr)|=C~^2r z{zLu||IoRLBR1Zt`yf|111M{;ovMKUSEjua%e`%EpP9ubPG=b{^Hg^dmAy1)&I#&r?#V zLexB5Bf^vhUEeLNO-{YD1}tW`hA_7BUFD*sA^ZsDVT^knak`Ex8^L)8;**I(92g-I znCYWCl*j(aP}5Ik@He4~*V5;aU z3v}tN;mnAIWa>C(_qB*4Efoh}hfOKl;Xgseqs!51FQ-blGtM8#DCpQ~K0DghyKu#= z3c2FhQMc&(F5qV#Kl(54>u)nwB?AFZaX-?+B%423&t;!#QD|1bbl=xpDY*z=qH{5r%COGQS@ZAF^w 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..18455621 --- /dev/null +++ b/docs/_modules/dragonfly_uwg/properties/model.html @@ -0,0 +1,860 @@ + + + + + + + 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: + for shd_geo in shd.geometry: + if isinstance(shd_geo, Face3D): + veg_shds.append(shd_geo) + else: + mesh_area += shd_geo.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 + $('