Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

v0.0.2 with support for default configs

  • Loading branch information...
commit 2a5956c61e4dda6cb7cb2143d86a2da66f575c59 1 parent 900191c
Doug Martin authored March 12, 2013
1  .gitignore
... ...
@@ -1,2 +1,3 @@
1 1
 node_modules
2 2
 *.iml
  3
+.idea
5  .idea/encodings.xml
... ...
@@ -0,0 +1,5 @@
  1
+<?xml version="1.0" encoding="UTF-8"?>
  2
+<project version="4">
  3
+  <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
  4
+</project>
  5
+
5  .idea/misc.xml
... ...
@@ -0,0 +1,5 @@
  1
+<?xml version="1.0" encoding="UTF-8"?>
  2
+<project version="4">
  3
+  <component name="ProjectRootManager" version="2" />
  4
+</project>
  5
+
9  .idea/modules.xml
... ...
@@ -0,0 +1,9 @@
  1
+<?xml version="1.0" encoding="UTF-8"?>
  2
+<project version="4">
  3
+  <component name="ProjectModuleManager">
  4
+    <modules>
  5
+      <module fileurl="file://$PROJECT_DIR$/.idea/gofigure.iml" filepath="$PROJECT_DIR$/.idea/gofigure.iml" />
  6
+    </modules>
  7
+  </component>
  8
+</project>
  9
+
5  .idea/scopes/scope_settings.xml
... ...
@@ -0,0 +1,5 @@
  1
+<component name="DependencyValidationManager">
  2
+  <state>
  3
+    <option name="SKIP_IMPORT_STATEMENTS" value="false" />
  4
+  </state>
  5
+</component>
7  .idea/vcs.xml
... ...
@@ -0,0 +1,7 @@
  1
+<?xml version="1.0" encoding="UTF-8"?>
  2
+<project version="4">
  3
+  <component name="VcsDirectoryMappings">
  4
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
  5
+  </component>
  6
+</project>
  7
+
74  .jshintrc
... ...
@@ -0,0 +1,74 @@
  1
+{
  2
+    "predef": [
  3
+        "jasmine",
  4
+        "spyOn",
  5
+        "it",
  6
+        "console",
  7
+        "describe",
  8
+        "expect",
  9
+        "beforeEach",
  10
+        "afterEach",
  11
+        "waits",
  12
+        "waitsFor",
  13
+        "runs",
  14
+        "$",
  15
+        "jQuery",
  16
+        "_",
  17
+        "require",
  18
+        "define",
  19
+        "sinon",
  20
+        "thumbs"
  21
+    ],
  22
+
  23
+    "node" : true,
  24
+    "browser" : true,
  25
+    "devel" : true,
  26
+    "jquery" : true,
  27
+
  28
+    "bitwise" : false,
  29
+    "camelcase" : true,
  30
+    "curly" : true,
  31
+    "eqeqeq" : true,
  32
+    "forin" : false,
  33
+    "immed" : true,
  34
+    "indent" : 4,
  35
+    "latedef" : true,
  36
+    "newcap" : true,
  37
+    "noarg" : true,
  38
+    "noempty" : true,
  39
+    "nonew" : false,
  40
+    "plusplus" : false,
  41
+    "quotmark" : false,
  42
+    "regexp" : false,
  43
+    "undef" : true,
  44
+    "unused" : false,
  45
+    "strict" : false,
  46
+    "trailing" : true,
  47
+    "white" : false,
  48
+
  49
+    "asi" : false,
  50
+    "boss" : false,
  51
+    "debug" : false,
  52
+    "eqnull" : true,
  53
+    "es5" : true,
  54
+    "esnext" : true,
  55
+    "evil" : false,
  56
+    "expr" : true,
  57
+    "funcscope" : false,
  58
+    "globalstrict" : false,
  59
+    "iterator" : false,
  60
+    "lastsemic" : false,
  61
+    "laxbreak" : false,
  62
+    "laxcomma" : false,
  63
+    "loopfunc" : false,
  64
+    "multistr" : false,
  65
+    "onecase" : false,
  66
+    "proto" : false,
  67
+    "regexdash" : false,
  68
+    "scripturl" : false,
  69
+    "smarttabs" : false,
  70
+    "shadow" : false,
  71
+    "sub" : true,
  72
+    "supernew" : true,
  73
+    "validthis" : false
  74
+}
4  .travis.yml
... ...
@@ -0,0 +1,4 @@
  1
+language: node_js
  2
+node_js:
  3
+  - 0.6
  4
+  - 0.8
47  Gruntfile.js
... ...
@@ -0,0 +1,47 @@
  1
+/*global module:false*/
  2
+module.exports = function (grunt) {
  3
+    var fs = require('fs');
  4
+
  5
+    // grunt doesn't natively support reading config from .jshintrc yet
  6
+    var jshintOptions = JSON.parse(fs.readFileSync('./.jshintrc'));
  7
+
  8
+    // Project configuration.
  9
+    grunt.initConfig({
  10
+        pkg: '<json:package.json>',
  11
+        meta: {
  12
+            banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' +
  13
+                '<%= grunt.template.today("yyyy-mm-dd") %>\n' +
  14
+                '<%= pkg.homepage ? "* " + pkg.homepage + "\n" : "" %>' +
  15
+                '* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author %>;' +
  16
+                ' Licensed <%= pkg.license %> */'
  17
+        },
  18
+
  19
+        jshint: {
  20
+            file: "./lib/*.js",
  21
+            options: {
  22
+                jshintrc: '.jshintrc'
  23
+            }
  24
+        },
  25
+
  26
+        it: {
  27
+            all: {
  28
+                src: 'test/**/*.test.js',
  29
+                options: {
  30
+                    timeout: 3000, // not fully supported yet
  31
+                    reporter: 'dotmatrix'
  32
+                }
  33
+            }
  34
+        },
  35
+        watch: {
  36
+            files: '<config:lint.files>',
  37
+            tasks: 'lint it'
  38
+        },
  39
+        uglify: {}
  40
+    });
  41
+
  42
+    grunt.loadNpmTasks('grunt-it');
  43
+    grunt.loadNpmTasks('grunt-contrib-jshint');
  44
+    // Default task.
  45
+    grunt.registerTask('default', ['jshint', 'it']);
  46
+
  47
+};
21  LICENSE
... ...
@@ -0,0 +1,21 @@
  1
+The MIT License
  2
+
  3
+Copyright (c) 2012-2013 doug@c2fo.com
  4
+
  5
+Permission is hereby granted, free of charge, to any person obtaining a copy
  6
+of this software and associated documentation files (the "Software"), to deal
  7
+in the Software without restriction, including without limitation the rights
  8
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  9
+copies of the Software, and to permit persons to whom the Software is
  10
+furnished to do so, subject to the following conditions:
  11
+
  12
+The above copyright notice and this permission notice shall be included in
  13
+all copies or substantial portions of the Software.
  14
+
  15
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  16
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  17
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  18
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  19
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  20
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  21
+THE SOFTWARE.
85  README.md
Source Rendered
... ...
@@ -1,4 +1,6 @@
1  
-#gofigure
  1
+[![Build Status](https://travis-ci.org/C2FO/gofigure.png)](https://travis-ci.org/C2FO/gofigure)
  2
+
  3
+# gofigure
2 4
 
3 5
 Gofigure is a configuration tool for node to help in the gathering and monitoring of configuration files in node. 
4 6
 
@@ -6,7 +8,7 @@ Gofigure is a configuration tool for node to help in the gathering and monitorin
6 8
 
7 9
     npm install gofigure
8 10
     
9  
-#Usage
  11
+# Usage
10 12
 
11 13
    
12 14
   * [Loading A Configuration](#load)        
@@ -20,7 +22,7 @@ Gofigure is a configuration tool for node to help in the gathering and monitorin
20 22
   * [Environments](#environments)
21 23
 
22 24
 <a name="load"></a>
23  
-##Loading configurations
  25
+## Loading configurations
24 26
 
25 27
 Gofigure currently handles the loading of JSON files for configurations. 
26 28
 
@@ -31,6 +33,7 @@ To Get an instance of a configuration object use the `gofigure` method. The `gof
31 33
   * [monitor](#monitoring) : set to true to monitor changes to configuration files.
32 34
   * `ignoreMissing` : By default `gofigure` will ignore missing directories. Set this to false to precent the ignoring of missing configuration directories.
33 35
   * [environment](#environments) : By default will look for `process.env.NODE_ENV` if this is not set then gofigure will read all properties. If you wish to explicity set the environment then set this property.
  36
+  * `defaultEnvironment` [`*`]: The key that represents default values to be set when an environment is used.
34 37
 
35 38
 ```javascript 
36 39
 
@@ -68,7 +71,7 @@ var config = loader.loadSync();
68 71
 ```
69 72
 
70 73
 <a name="loadDir"></a>
71  
-###Directories of configurations
  74
+### Directories of configurations
72 75
 To load directories that contain configuration files in the options object provide locations property that is an array of directories than contain your configurations.
73 76
 
74 77
 ```javascript
@@ -107,7 +110,7 @@ loader.load(function(err, config){
107 110
 ```
108 111
 
109 112
 <a name="loadFiles"></a>
110  
-###Files
  113
+### Files
111 114
 
112 115
 You may also load specific files rather than entire directories.
113 116
 
@@ -123,12 +126,12 @@ loader.load(function(err, config){
123 126
 Again order matters `/prod/configs/config1.json` will override `__dirname + "/config.json"`
124 127
 
125 128
 <a name="monitoring"></a>
126  
-##Monitoring
  129
+## Monitoring
127 130
 
128 131
 Gofigure supports the monitoring of changes to configuration files. 
129 132
 
130 133
 <a name="monitoringAll"></a>
131  
-###All files
  134
+### All files
132 135
 
133 136
 To enable monitoring you can specify monitor to true in the options.
134 137
 
@@ -143,7 +146,7 @@ loading.on("my.cool.property", function(newValue){
143 146
 });
144 147
 ```
145 148
 <a name="monitoringSome"></a>
146  
-###Individual Files
  149
+### Individual Files
147 150
 
148 151
 To monitor certain files you can use the files property and with object that have a `monitor : true` KV pair.
149 152
 
@@ -167,7 +170,7 @@ loading.on("my.cool.property", function(newValue){
167 170
 Just `config1.json` will be monitored for changes.
168 171
 
169 172
 <a name="monitoringSyntax"></a>
170  
-###Property topic syntax
  173
+### Property topic syntax
171 174
 
172 175
 To listen to all properties
173 176
 
@@ -236,7 +239,7 @@ loading.on("my.{cool|notCool}.{property|otherProperty}", function(propName, newV
236 239
 ```
237 240
 
238 241
 <a name="monitoringCB"></a>
239  
-###Callback Arguments
  242
+### Callback Arguments
240 243
 
241 244
 
242 245
 The property change callback will pass in the following values depending on the arity of the callback.
@@ -383,6 +386,68 @@ var loader = gofigure({
383 386
 
384 387
 ```
385 388
 
  389
+You may also share properties across enviroments by using `*` or overriding `defaultEnvironment` when initializing.
  390
+
  391
+```json
  392
+
  393
+{
  394
+    "*": {
  395
+         "logging":{
  396
+            "patio":{
  397
+                "level":"ERROR",
  398
+                "appenders":[
  399
+                    {
  400
+                        "type":"RollingFileAppender",
  401
+                        "file":"/var/log/myApp/patio.log"
  402
+                    }
  403
+                ]
  404
+            }
  405
+        },
  406
+        "app" : {
  407
+            "host" : "localhost",
  408
+            "port" : "8088"
  409
+        },
  410
+        "MYSQL_DB" : "mysql://test:testpass@localhost:3306/db",
  411
+        "MONGO_DB" : "mongodb://test:testpass@localhost:27017/db"
  412
+    },
  413
+    "development": {
  414
+        "logging":{
  415
+  	        "patio":{
  416
+                "appenders":[{
  417
+                    "type":"ConsoleAppender"
  418
+                }]
  419
+            }
  420
+        },
  421
+        "MYSQL_DB" : "mysql://test:testpass@localhost:3306/dev_db",
  422
+        "MONGO_DB" : "mongodb://test:testpass@localhost:27017/dev_db"
  423
+    },
  424
+    "production": {
  425
+        "app" : {
  426
+            "host" : "prod.mydomain.com",
  427
+            "port" : "80"
  428
+        },
  429
+        "MYSQL_DB" : "mysql://test:testpass@prod.mydomain.com:3306/prod_db",
  430
+        "MONGO_DB" : "mongodb://test:testpass@prod.mydomain.com:27017/prd_db"
  431
+    },
  432
+    "test": {
  433
+        "logging":{
  434
+            "patio":{
  435
+                "level":"INFO"
  436
+            }
  437
+        },
  438
+        "app" : {
  439
+          "host" : "test.mydomain.com",
  440
+          "port" : "80"
  441
+        },
  442
+        "MYSQL_DB" : "mysql://test:testpass@test.mydomain.com:3306/test_db",
  443
+        "MONGO_DB" : "mongodb://test:testpass@test.mydomain.com:27017/test_db"
  444
+    }
  445
+}
  446
+
  447
+```
  448
+
  449
+Now each environment only has to override properties specific to that env.
  450
+
386 451
 License
387 452
 -------
388 453
 
1,104  docs/assets/css/bootstrap-responsive.css
... ...
@@ -1,9 +1,1109 @@
1 1
 /*!
2  
- * Bootstrap Responsive v2.1.0
  2
+ * Bootstrap Responsive v2.3.0
3 3
  *
4 4
  * Copyright 2012 Twitter, Inc
5 5
  * Licensed under the Apache License v2.0
6 6
  * http://www.apache.org/licenses/LICENSE-2.0
7 7
  *
8 8
  * Designed and built with all the love in the world @twitter by @mdo and @fat.
9  
- */.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}.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}}@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;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 .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;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 .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{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"],.row-fluid [class*="span"]{display:block;float:none;width:auto;margin-left:0}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.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}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade.in{top:auto}}@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-group>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}.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:#555;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#555;-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 .dropdown-menu a:hover{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:hover{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:block;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 .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{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 .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}}
  9
+ */
  10
+
  11
+.clearfix {
  12
+  *zoom: 1;
  13
+}
  14
+
  15
+.clearfix:before,
  16
+.clearfix:after {
  17
+  display: table;
  18
+  line-height: 0;
  19
+  content: "";
  20
+}
  21
+
  22
+.clearfix:after {
  23
+  clear: both;
  24
+}
  25
+
  26
+.hide-text {
  27
+  font: 0/0 a;
  28
+  color: transparent;
  29
+  text-shadow: none;
  30
+  background-color: transparent;
  31
+  border: 0;
  32
+}
  33
+
  34
+.input-block-level {
  35
+  display: block;
  36
+  width: 100%;
  37
+  min-height: 30px;
  38
+  -webkit-box-sizing: border-box;
  39
+     -moz-box-sizing: border-box;
  40
+          box-sizing: border-box;
  41
+}
  42
+
  43
+@-ms-viewport {
  44
+  width: device-width;
  45
+}
  46
+
  47
+.hidden {
  48
+  display: none;
  49
+  visibility: hidden;
  50
+}
  51
+
  52
+.visible-phone {
  53
+  display: none !important;
  54
+}
  55
+
  56
+.visible-tablet {
  57
+  display: none !important;
  58
+}
  59
+
  60
+.hidden-desktop {
  61
+  display: none !important;
  62
+}
  63
+
  64
+.visible-desktop {
  65
+  display: inherit !important;
  66
+}
  67
+
  68
+@media (min-width: 768px) and (max-width: 979px) {
  69
+  .hidden-desktop {
  70
+    display: inherit !important;
  71
+  }
  72
+  .visible-desktop {
  73
+    display: none !important ;
  74
+  }
  75
+  .visible-tablet {
  76
+    display: inherit !important;
  77
+  }
  78
+  .hidden-tablet {
  79
+    display: none !important;
  80
+  }
  81
+}
  82
+
  83
+@media (max-width: 767px) {
  84
+  .hidden-desktop {
  85
+    display: inherit !important;
  86
+  }
  87
+  .visible-desktop {
  88
+    display: none !important;
  89
+  }
  90
+  .visible-phone {
  91
+    display: inherit !important;
  92
+  }
  93
+  .hidden-phone {
  94
+    display: none !important;
  95
+  }
  96
+}
  97
+
  98
+.visible-print {
  99
+  display: none !important;
  100
+}
  101
+
  102
+@media print {
  103
+  .visible-print {
  104
+    display: inherit !important;
  105
+  }
  106
+  .hidden-print {
  107
+    display: none !important;
  108
+  }
  109
+}
  110
+
  111
+@media (min-width: 1200px) {
  112
+  .row {
  113
+    margin-left: -30px;
  114
+    *zoom: 1;
  115
+  }
  116
+  .row:before,
  117
+  .row:after {
  118
+    display: table;
  119
+    line-height: 0;
  120
+    content: "";
  121
+  }
  122
+  .row:after {
  123
+    clear: both;
  124
+  }
  125
+  [class*="span"] {
  126
+    float: left;
  127
+    min-height: 1px;
  128
+    margin-left: 30px;
  129
+  }
  130
+  .container,
  131
+  .navbar-static-top .container,
  132
+  .navbar-fixed-top .container,
  133
+  .navbar-fixed-bottom .container {
  134
+    width: 1170px;
  135
+  }
  136
+  .span12 {
  137
+    width: 1170px;
  138
+  }
  139
+  .span11 {
  140
+    width: 1070px;
  141
+  }
  142
+  .span10 {
  143
+    width: 970px;
  144
+  }
  145
+  .span9 {
  146
+    width: 870px;
  147
+  }
  148
+  .span8 {
  149
+    width: 770px;
  150
+  }
  151
+  .span7 {
  152
+    width: 670px;
  153
+  }
  154
+  .span6 {
  155
+    width: 570px;
  156
+  }
  157
+  .span5 {
  158
+    width: 470px;
  159
+  }
  160
+  .span4 {
  161
+    width: 370px;
  162
+  }
  163
+  .span3 {
  164
+    width: 270px;
  165
+  }
  166
+  .span2 {
  167
+    width: 170px;
  168
+  }
  169
+  .span1 {
  170
+    width: 70px;
  171
+  }
  172
+  .offset12 {
  173
+    margin-left: 1230px;
  174
+  }
  175
+  .offset11 {
  176
+    margin-left: 1130px;
  177
+  }
  178
+  .offset10 {
  179
+    margin-left: 1030px;
  180
+  }
  181
+  .offset9 {
  182
+    margin-left: 930px;
  183
+  }
  184
+  .offset8 {
  185
+    margin-left: 830px;
  186
+  }
  187
+  .offset7 {
  188
+    margin-left: 730px;
  189
+  }
  190
+  .offset6 {
  191
+    margin-left: 630px;
  192
+  }
  193
+  .offset5 {
  194
+    margin-left: 530px;
  195
+  }
  196
+  .offset4 {
  197
+    margin-left: 430px;
  198
+  }
  199
+  .offset3 {
  200
+    margin-left: 330px;
  201
+  }
  202
+  .offset2 {
  203
+    margin-left: 230px;
  204
+  }
  205
+  .offset1 {
  206
+    margin-left: 130px;
  207
+  }
  208
+  .row-fluid {
  209
+    width: 100%;
  210
+    *zoom: 1;
  211
+  }
  212
+  .row-fluid:before,
  213
+  .row-fluid:after {
  214
+    display: table;
  215
+    line-height: 0;
  216
+    content: "";
  217
+  }
  218
+  .row-fluid:after {
  219
+    clear: both;
  220
+  }
  221
+  .row-fluid [class*="span"] {
  222
+    display: block;
  223
+    float: left;
  224
+    width: 100%;
  225
+    min-height: 30px;
  226
+    margin-left: 2.564102564102564%;
  227
+    *margin-left: 2.5109110747408616%;
  228
+    -webkit-box-sizing: border-box;
  229
+       -moz-box-sizing: border-box;
  230
+            box-sizing: border-box;
  231
+  }
  232
+  .row-fluid [class*="span"]:first-child {
  233
+    margin-left: 0;
  234
+  }
  235
+  .row-fluid .controls-row [class*="span"] + [class*="span"] {
  236
+    margin-left: 2.564102564102564%;
  237
+  }
  238
+  .row-fluid .span12 {
  239
+    width: 100%;
  240
+    *width: 99.94680851063829%;
  241
+  }
  242
+  .row-fluid .span11 {
  243
+    width: 91.45299145299145%;
  244
+    *width: 91.39979996362975%;
  245
+  }
  246
+  .row-fluid .span10 {
  247
+    width: 82.90598290598291%;
  248
+    *width: 82.8527914166212%;
  249
+  }
  250
+  .row-fluid .span9 {
  251
+    width: 74.35897435897436%;
  252
+    *width: 74.30578286961266%;
  253
+  }
  254
+  .row-fluid .span8 {
  255
+    width: 65.81196581196582%;
  256
+    *width: 65.75877432260411%;
  257
+  }
  258
+  .row-fluid .span7 {
  259
+    width: 57.26495726495726%;
  260
+    *width: 57.21176577559556%;
  261
+  }
  262
+  .row-fluid .span6 {
  263
+    width: 48.717948717948715%;
  264
+    *width: 48.664757228587014%;
  265
+  }
  266
+  .row-fluid .span5 {
  267
+    width: 40.17094017094017%;
  268
+    *width: 40.11774868157847%;
  269
+  }
  270
+  .row-fluid .span4 {
  271
+    width: 31.623931623931625%;
  272
+    *width: 31.570740134569924%;
  273
+  }
  274
+  .row-fluid .span3 {
  275
+    width: 23.076923076923077%;
  276
+    *width: 23.023731587561375%;
  277
+  }
  278
+  .row-fluid .span2 {
  279
+    width: 14.52991452991453%;
  280
+    *width: 14.476723040552828%;
  281
+  }
  282
+  .row-fluid .span1 {
  283
+    width: 5.982905982905983%;
  284
+    *width: 5.929714493544281%;
  285
+  }
  286
+  .row-fluid .offset12 {
  287
+    margin-left: 105.12820512820512%;
  288
+    *margin-left: 105.02182214948171%;
  289
+  }
  290
+  .row-fluid .offset12:first-child {
  291
+    margin-left: 102.56410256410257%;
  292
+    *margin-left: 102.45771958537915%;
  293
+  }
  294
+  .row-fluid .offset11 {
  295
+    margin-left: 96.58119658119658%;
  296
+    *margin-left: 96.47481360247316%;
  297
+  }
  298
+  .row-fluid .offset11:first-child {
  299
+    margin-left: 94.01709401709402%;
  300
+    *margin-left: 93.91071103837061%;
  301
+  }
  302
+  .row-fluid .offset10 {
  303
+    margin-left: 88.03418803418803%;
  304
+    *margin-left: 87.92780505546462%;
  305
+  }
  306
+  .row-fluid .offset10:first-child {
  307
+    margin-left: 85.47008547008548%;
  308
+    *margin-left: 85.36370249136206%;
  309
+  }
  310
+  .row-fluid .offset9 {
  311
+    margin-left: 79.48717948717949%;
  312
+    *margin-left: 79.38079650845607%;
  313
+  }
  314
+  .row-fluid .offset9:first-child {
  315
+    margin-left: 76.92307692307693%;
  316
+    *margin-left: 76.81669394435352%;
  317
+  }
  318
+  .row-fluid .offset8 {
  319
+    margin-left: 70.94017094017094%;
  320
+    *margin-left: 70.83378796144753%;
  321
+  }
  322
+  .row-fluid .offset8:first-child {
  323
+    margin-left: 68.37606837606839%;
  324
+    *margin-left: 68.26968539734497%;
  325
+  }
  326
+  .row-fluid .offset7 {
  327
+    margin-left: 62.393162393162385%;
  328
+    *margin-left: 62.28677941443899%;
  329
+  }
  330
+  .row-fluid .offset7:first-child {
  331
+    margin-left: 59.82905982905982%;
  332
+    *margin-left: 59.72267685033642%;
  333
+  }
  334
+  .row-fluid .offset6 {
  335
+    margin-left: 53.84615384615384%;
  336
+    *margin-left: 53.739770867430444%;
  337
+  }
  338
+  .row-fluid .offset6:first-child {
  339
+    margin-left: 51.28205128205128%;
  340
+    *margin-left: 51.175668303327875%;
  341
+  }
  342
+  .row-fluid .offset5 {
  343
+    margin-left: 45.299145299145295%;
  344
+    *margin-left: 45.1927623204219%;
  345
+  }
  346
+  .row-fluid .offset5:first-child {
  347
+    margin-left: 42.73504273504273%;
  348
+    *margin-left: 42.62865975631933%;
  349
+  }
  350
+  .row-fluid .offset4 {
  351
+    margin-left: 36.75213675213675%;
  352
+    *margin-left: 36.645753773413354%;
  353
+  }
  354
+  .row-fluid .offset4:first-child {
  355
+    margin-left: 34.18803418803419%;
  356
+    *margin-left: 34.081651209310785%;
  357
+  }
  358
+  .row-fluid .offset3 {
  359
+    margin-left: 28.205128205128204%;
  360
+    *margin-left: 28.0987452264048%;
  361
+  }
  362
+  .row-fluid .offset3:first-child {
  363
+    margin-left: 25.641025641025642%;
  364
+    *margin-left: 25.53464266230224%;
  365
+  }
  366
+  .row-fluid .offset2 {
  367
+    margin-left: 19.65811965811966%;
  368
+    *margin-left: 19.551736679396257%;
  369
+  }
  370
+  .row-fluid .offset2:first-child {
  371
+    margin-left: 17.094017094017094%;
  372
+    *margin-left: 16.98763411529369%;
  373
+  }
  374
+  .row-fluid .offset1 {
  375
+    margin-left: 11.11111111111111%;
  376
+    *margin-left: 11.004728132387708%;
  377
+  }
  378
+  .row-fluid .offset1:first-child {
  379
+    margin-left: 8.547008547008547%;
  380
+    *margin-left: 8.440625568285142%;
  381
+  }
  382
+  input,
  383
+  textarea,
  384
+  .uneditable-input {
  385
+    margin-left: 0;
  386
+  }
  387
+  .controls-row [class*="span"] + [class*="span"] {
  388
+    margin-left: 30px;
  389
+  }
  390
+  input.span12,
  391
+  textarea.span12,
  392
+  .uneditable-input.span12 {
  393
+    width: 1156px;
  394
+  }
  395
+  input.span11,
  396
+  textarea.span11,
  397
+  .uneditable-input.span11 {
  398
+    width: 1056px;
  399
+  }
  400
+  input.span10,
  401
+  textarea.span10,
  402
+  .uneditable-input.span10 {
  403
+    width: 956px;
  404
+  }
  405
+  input.span9,
  406
+  textarea.span9,
  407
+  .uneditable-input.span9 {
  408
+    width: 856px;
  409
+  }
  410
+  input.span8,
  411
+  textarea.span8,
  412
+  .uneditable-input.span8 {
  413
+    width: 756px;
  414
+  }
  415
+  input.span7,
  416
+  textarea.span7,
  417
+  .uneditable-input.span7 {
  418
+    width: 656px;
  419
+  }
  420
+  input.span6,
  421
+  textarea.span6,
  422
+  .uneditable-input.span6 {
  423
+    width: 556px;
  424
+  }
  425
+  input.span5,
  426
+  textarea.span5,
  427
+  .uneditable-input.span5 {
  428
+    width: 456px;
  429
+  }
  430
+  input.span4,
  431
+  textarea.span4,
  432
+  .uneditable-input.span4 {
  433
+    width: 356px;
  434
+  }
  435
+  input.span3,
  436
+  textarea.span3,
  437
+  .uneditable-input.span3 {
  438
+    width: 256px;
  439
+  }
  440
+  input.span2,
  441
+  textarea.span2,
  442
+  .uneditable-input.span2 {
  443
+    width: 156px;
  444
+  }
  445
+  input.span1,
  446
+  textarea.span1,
  447
+  .uneditable-input.span1 {
  448
+    width: 56px;
  449
+  }
  450
+  .thumbnails {
  451
+    margin-left: -30px;
  452
+  }
  453
+  .thumbnails > li {
  454
+    margin-left: 30px;
  455
+  }
  456
+  .row-fluid .thumbnails {
  457
+    margin-left: 0;
  458
+  }
  459
+}
  460
+
  461
+@media (min-width: 768px) and (max-width: 979px) {
  462
+  .row {
  463
+    margin-left: -20px;
  464
+    *zoom: 1;
  465
+  }
  466
+  .row:before,
  467
+  .row:after {
  468
+    display: table;
  469
+    line-height: 0;
  470
+    content: "";
  471
+  }
  472
+  .row:after {
  473
+    clear: both;
  474
+  }
  475
+  [class*="span"] {
  476
+    float: left;
  477
+    min-height: 1px;
  478
+    margin-left: 20px;
  479
+  }
  480
+  .container,
  481
+  .navbar-static-top .container,
  482
+  .navbar-fixed-top .container,
  483
+  .navbar-fixed-bottom .container {
  484
+    width: 724px;
  485
+  }
  486
+  .span12 {
  487
+    width: 724px;
  488
+  }
  489
+  .span11 {
  490
+    width: 662px;
  491
+  }
  492
+  .span10 {
  493
+    width: 600px;
  494
+  }
  495
+  .span9 {
  496
+    width: 538px;
  497
+  }
  498
+  .span8 {
  499
+    width: 476px;
  500
+  }
  501
+  .span7 {
  502
+    width: 414px;
  503
+  }
  504
+  .span6 {
  505
+    width: 352px;
  506
+  }
  507
+  .span5 {
  508
+    width: 290px;
  509
+  }
  510
+  .span4 {
  511
+    width: 228px;
  512
+  }
  513
+  .span3 {
  514
+    width: 166px;
  515
+  }
  516
+  .span2 {
  517
+    width: 104px;
  518
+  }
  519
+  .span1 {
  520
+    width: 42px;
  521
+  }
  522
+  .offset12 {
  523
+    margin-left: 764px;
  524
+  }
  525
+  .offset11 {
  526
+    margin-left: 702px;
  527
+  }
  528
+  .offset10 {
  529
+    margin-left: 640px;
  530
+  }
  531
+  .offset9 {
  532
+    margin-left: 578px;
  533
+  }
  534
+  .offset8 {
  535
+    margin-left: 516px;
  536
+  }
  537
+  .offset7 {
  538
+    margin-left: 454px;
  539
+  }
  540
+  .offset6 {
  541
+    margin-left: 392px;
  542
+  }
  543
+  .offset5 {
  544
+    margin-left: 330px;
  545
+  }
  546
+  .offset4 {
  547
+    margin-left: 268px;
  548
+  }
  549
+  .offset3 {
  550
+    margin-left: 206px;
  551
+  }
  552
+  .offset2 {
  553
+    margin-left: 144px;
  554
+  }
  555
+  .offset1 {
  556
+    margin-left: 82px;
  557
+  }
  558
+  .row-fluid {
  559
+    width: 100%;
  560
+    *zoom: 1;
  561
+  }
  562
+  .row-fluid:before,
  563
+  .row-fluid:after {
  564
+    display: table;
  565
+    line-height: 0;
  566
+    content: "";
  567
+  }
  568
+  .row-fluid:after {
  569
+    clear: both;
  570
+  }
  571
+  .row-fluid [class*="span"] {
  572
+    display: block;
  573
+    float: left;
  574
+    width: 100%;
  575
+    min-height: 30px;
  576
+    margin-left: 2.7624309392265194%;
  577
+    *margin-left: 2.709239449864817%;
  578
+    -webkit-box-sizing: border-box;
  579
+       -moz-box-sizing: border-box;
  580
+            box-sizing: border-box;
  581
+  }
  582
+  .row-fluid [class*="span"]:first-child {
  583
+    margin-left: 0;
  584
+  }
  585
+  .row-fluid .controls-row [class*="span"] + [class*="span"] {
  586
+    margin-left: 2.7624309392265194%;
  587
+  }
  588
+  .row-fluid .span12 {
  589
+    width: 100%;
  590
+    *width: 99.94680851063829%;
  591
+  }
  592
+  .row-fluid .span11 {
  593
+    width: 91.43646408839778%;
  594
+    *width: 91.38327259903608%;
  595
+  }
  596
+  .row-fluid .span10 {
  597
+    width: 82.87292817679558%;
  598
+    *width: 82.81973668743387%;
  599
+  }
  600
+  .row-fluid .span9 {
  601
+    width: 74.30939226519337%;
  602
+    *width: 74.25620077583166%;
  603
+  }
  604
+  .row-fluid .span8 {
  605
+    width: 65.74585635359117%;
  606
+    *width: 65.69266486422946%;
  607
+  }
  608
+  .row-fluid .span7 {
  609
+    width: 57.18232044198895%;
  610
+    *width: 57.12912895262725%;
  611
+  }
  612
+  .row-fluid .span6 {
  613
+    width: 48.61878453038674%;
  614
+    *width: 48.56559304102504%;
  615
+  }
  616
+  .row-fluid .span5 {
  617
+    width: 40.05524861878453%;
  618
+    *width: 40.00205712942283%;
  619
+  }
  620
+  .row-fluid .span4 {
  621
+    width: 31.491712707182323%;
  622
+    *width: 31.43852121782062%;
  623
+  }
  624
+  .row-fluid .span3 {
  625
+    width: 22.92817679558011%;
  626
+    *width: 22.87498530621841%;
  627
+  }
  628
+  .row-fluid .span2 {
  629
+    width: 14.3646408839779%;
  630
+    *width: 14.311449394616199%;
  631
+  }
  632
+  .row-fluid .span1 {
  633
+    width: 5.801104972375691%;
  634
+    *width: 5.747913483013988%;
  635
+  }
  636
+  .row-fluid .offset12 {
  637
+    margin-left: 105.52486187845304%;
  638
+    *margin-left: 105.41847889972962%;
  639
+  }
  640
+  .row-fluid .offset12:first-child {
  641
+    margin-left: 102.76243093922652%;
  642
+    *margin-left: 102.6560479605031%;
  643
+  }
  644
+  .row-fluid .offset11 {
  645
+    margin-left: 96.96132596685082%;
  646
+    *margin-left: 96.8549429881274%;
  647
+  }
  648
+  .row-fluid .offset11:first-child {
  649
+    margin-left: 94.1988950276243%;
  650
+    *margin-left: 94.09251204890089%;
  651
+  }
  652
+  .row-fluid .offset10 {
  653
+    margin-left: 88.39779005524862%;
  654
+    *margin-left: 88.2914070765252%;
  655
+  }
  656
+  .row-fluid .offset10:first-child {
  657
+    margin-left: 85.6353591160221%;
  658
+    *margin-left: 85.52897613729868%;
  659
+  }
  660
+  .row-fluid .offset9 {
  661
+    margin-left: 79.8342541436464%;
  662
+    *margin-left: 79.72787116492299%;
  663
+  }
  664
+  .row-fluid .offset9:first-child {
  665
+    margin-left: 77.07182320441989%;
  666
+    *margin-left: 76.96544022569647%;
  667
+  }
  668
+  .row-fluid .offset8 {
  669
+    margin-left: 71.2707182320442%;
  670
+    *margin-left: 71.16433525332079%;
  671
+  }
  672
+  .row-fluid .offset8:first-child {
  673
+    margin-left: 68.50828729281768%;
  674
+    *margin-left: 68.40190431409427%;
  675
+  }
  676
+  .row-fluid .offset7 {
  677
+    margin-left: 62.70718232044199%;
  678
+    *margin-left: 62.600799341718584%;
  679
+  }
  680
+  .row-fluid .offset7:first-child {
  681
+    margin-left: 59.94475138121547%;
  682
+    *margin-left: 59.838368402492065%;
  683
+  }
  684
+  .row-fluid .offset6 {
  685
+    margin-left: 54.14364640883978%;
  686
+    *margin-left: 54.037263430116376%;
  687
+  }
  688
+  .row-fluid .offset6:first-child {
  689
+    margin-left: 51.38121546961326%;
  690
+    *margin-left: 51.27483249088986%;
  691
+  }
  692
+  .row-fluid .offset5 {
  693
+    margin-left: 45.58011049723757%;
  694
+    *margin-left: 45.47372751851417%;
  695
+  }
  696
+  .row-fluid .offset5:first-child {
  697
+    margin-left: 42.81767955801105%;
  698
+    *margin-left: 42.71129657928765%;
  699
+  }
  700
+  .row-fluid .offset4 {
  701
+    margin-left: 37.01657458563536%;
  702
+    *margin-left: 36.91019160691196%;
  703
+  }
  704
+  .row-fluid .offset4:first-child {
  705
+    margin-left: 34.25414364640884%;
  706
+    *margin-left: 34.14776066768544%;
  707
+  }
  708
+  .row-fluid .offset3 {
  709
+    margin-left: 28.45303867403315%;
  710
+    *margin-left: 28.346655695309746%;
  711
+  }
  712
+  .row-fluid .offset3:first-child {
  713
+    margin-left: 25.69060773480663%;
  714
+    *margin-left: 25.584224756083227%;
  715
+  }
  716
+  .row-fluid .offset2 {
  717
+    margin-left: 19.88950276243094%;
  718
+    *margin-left: 19.783119783707537%;
  719
+  }
  720
+  .row-fluid .offset2:first-child {
  721
+    margin-left: 17.12707182320442%;
  722
+    *margin-left: 17.02068884448102%;
  723
+  }
  724
+  .row-fluid .offset1 {
  725
+    margin-left: 11.32596685082873%;
  726
+    *margin-left: 11.219583872105325%;
  727
+  }
  728
+  .row-fluid .offset1:first-child {
  729
+    margin-left: 8.56353591160221%;
  730
+    *margin-left: 8.457152932878806%;
  731
+  }
  732
+  input,
  733
+  textarea,
  734
+  .uneditable-input {
  735
+    margin-left: 0;
  736
+  }
  737
+  .controls-row [class*="span"] + [class*="span"] {
  738
+    margin-left: 20px;
  739
+  }
  740
+  input.span12,
  741
+  textarea.span12,
  742
+  .uneditable-input.span12 {
  743
+    width: 710px;
  744
+  }
  745
+  input.span11,
  746
+  textarea.span11,
  747
+  .uneditable-input.span11 {
  748
+    width: 648px;
  749
+  }
  750
+  input.span10,
  751
+  textarea.span10,
  752
+  .uneditable-input.span10 {
  753
+    width: 586px;
  754
+  }
  755
+  input.span9,
  756
+  textarea.span9,
  757
+  .uneditable-input.span9 {
  758
+    width: 524px;
  759
+  }
  760
+  input.span8,
  761
+  textarea.span8,
  762
+  .uneditable-input.span8 {
  763
+    width: 462px;
  764
+  }
  765
+  input.span7,
  766
+  textarea.span7,
  767
+  .uneditable-input.span7 {
  768
+    width: 40