Search Results

Search found 11262 results on 451 pages for 'important directories'.

Page 37/451 | < Previous Page | 33 34 35 36 37 38 39 40 41 42 43 44  | Next Page >

  • Automatically zoom out the camera to show all players

    - by user36159
    I am building a game in XNA that takes place in a rectangular arena. The game is multiplayer and each player may go where they like within the arena. The camera is a perspective camera that looks directly downwards. The camera should be automatically repositioned based on the game state. Currently, the xy position is a weighted sum of the xy positions of important entities. I would like the camera's z position to be calculated from the xy coordinates so that it zooms out to the point where all important entities are visible. My current approach is to: hw = the greatest x distance from the camera to an important entity hh = the greatest y distance from the camera to an important entity Calculate z = max(hw / tan(FoVx), hh / tan(FoVy)) My code seems to almost work as it should, but the resulting z values are always too low by a factor of about 4. Any ideas?

    Read the article

  • Automatically zoom out the camera to show all players (XNA)

    - by user36159
    I am building a game in XNA that takes place in a rectangular arena. The game is multiplayer and each player may go where they like within the arena. The camera is a persepective camera that looks directly downwards. The camera should be automatically repositioned based on the game state. Currently, the xy position is a weighted sum of the xy positions of important entities. I would like the camera's z position to be calculated from the xy coordinates so that it zooms out to the point where all important entities are visible. My current approach is to: hw = the greatest x distance from the camera to an important entity hh = the greatest y distance from the camera to an important entity Calculate z = max(hw / tan(FoVx), hh / tan(FoVy)) My code seems to almost work as it should, but the resulting z values are always too low by a factor of about 4. Any ideas?

    Read the article

  • Basic Ubuntu FTP Server

    - by JPrescottSanders
    I would like to setup a basic FTP server on my Ubuntu Server install. I have been playing with VSFTPD, but am having issues getting the server to allow me to create directories and copy files. I have set the system to allow local users, but it appears that doesn't mean I get access to create directories. This may be an instance where I need to be better grounded in Unbuntu server setup in order to configure this FTP server adequately. The end goal is to be able to move files from my local dev folder into my www folder for deployment. Directories need to be able to move as well. Any help would be greatly appreciated.

    Read the article

  • Search Engine Optimization Basics - Know Your Keywords

    I laugh to myself when I hear everyone in SEO talking about how the most important thing to improve your website's position in Google is backlinks. Now don't get me wrong, I definitely agree that building backlinks to your pages is important, but there is something that I consider much more important - and that is keyword research.

    Read the article

  • can't chmod on external hard disk?

    - by G. He
    I have an USB3.0 external hard disk, partitioned to 3 NTFS partitions. When I plug the hard disk in, the 3 partitions automatically mounted under /media. So far so good. I can read and write to files, or mkdir, etc on these partitions. But I can't do chmod/chown on any of the files/directories on these partitions. The owner:group always myself, and the mode are always 700 for directories and 600 for files. I have another partition on internal harddisk also mounted. That partition works fine. I looked the output of mount command, the only difference between mount options is that there is one extra 'default_permissions' on the external hard disks. Anyway I can set the owner:group and mode on these files and directories.

    Read the article

  • What in /home would benefit from being on an SSD?

    - by N.N.
    In Is a 40GB SSD practical to use for ' / ' Jorge describes how he symlinks directories in his /home that would benefit from being on an SSD. The directories he names are ~/.cache ~/.config ~/.gconf I know how to make the symlinks. What I am asking for is if this is a good list of directories in /home that benefits from being on an SSD? I figure that good items on such a list are files that are read often. The reason for asking this is that I cannot fit all of /home on the SSD but I still want to get as much performance out of the SSD as possible.

    Read the article

  • How to modify the style of jQuery DatePicker's disabled dates?

    - by Clay
    Given this page: http://jqueryui.com/demos/datepicker/#min-max And viewing its source: http://jqueryui.com/themeroller/css/parseTheme.css.php I can change the following line (using Chrome's inspect element feature) and see those changes reflected: .ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } However, if I try to override my own test page with something like... .ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .99 !important; filter:Alpha(Opacity=99) !important; background-image: none !important; color:Red !important; } ...I do not see my changes reflected in the calendar. I can make other changes in my own test page and those are reflected for other classes in the datepicker. So, I'm not having any kind of path issue to the .js or .css files. What am I missing here? UPDATE/SOLUTION Firebug to the rescue...this took care of my styling needs: .ui-datepicker-week-end{color: #c0c0c0 !important;} div#ui-datepicker-div.ui-datepicker{color: #c0c0c0;} div#ui-datepicker-div.ui-datepicker:hover{cursor: default important;} .ui-datepicker-calendar th{color: #222222 !important;}

    Read the article

  • jQuery: list appended not displaying bullets

    - by Shizhidi
    I have the following html: <!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> </head> <body> <span>not so important</span> <span title="some specific text"><img src="/img/some.gif" /></span> <span title="more specific text">important 1</span> <span title="more specific text">important 2</span> <span title="more specific text">important 3</span> <span title="more specific text"><img src="/img/some.gif" /></span> <ul> <li>example 1</li> <li>example 2</li> <li>example 3</li> <ul> <script> var ul = $('body').append($('<ul>')); $("span[title*='specific text']") .contents() .filter(function(){ return $(this).nodeType != 1; }) .each(function(){ ul.append($('<li>' + $(this).text() + '</li>')); }) </script> </body> </html> I want to retrieve the text within a 'span' whose title attribute contains "specific text", in this case "important 1", "important 2" and "important 3". Then I want to list them below just like the example. However the bullets do not appear, why is that? Any hints would be appreciated!

    Read the article

  • Twitter Bootstrap styling conflicts with plug-ins like jqGrid and other third part libraries

    - by Renso
    Issues:The concern is that the Twitter Bootstrap framework is that some of their css selectors are simply too generic and have incompatibility issues and conflicts with most third party plug-ins and css libraries, like jQuery-UI and jqGrid.My most pressing concern is only with the generic selector for the styling of "INPUT" controls.Some concerns:So basically anyone using BS (Bootstrap) will have to override styling 100% of the time on all input controls on all their web pages for all the plug-ins they use that render their own styling for input controls. This seems to chisel away any reason for using Bootstrap. Overriding Bootstrap css in this case seems illogical at best as it implies the BS styling is not correct or as granular as it is supposed to be. It also suggests you realize there is an issue here. Any person who has written a fair amount of css will realize that it is a mammoth task to to take an existing app, converting it to BS and then having to find all non-BS input controls and styling them all. The worst part is that there is no generic styling for this as each input control has a different source/context, some are regular tags and some belong to plug-ins, each with their own flavor of styling. For new web apps the challenge is not that different, each time you add a new plug-in you will have to test all facets of it, and I mean all of it, pop-ups, etc, that contain any kind of input control to make sure it is styled correctly. I am having a hard time seeing the benefits of BS in this context. So until the BS team addresses the issue, or not, you may be wondering what is the easiest solution.Help the community to drive this issue home by creating a new issue on github, see my entry here: https://github.com/twitter/bootstrap/issues/4008. As you can see I got some good and some negative feedback, but we all agree it is an issue. I do believe my solution below should be reverse compatible if the proper class declarations were followed as recommended by Bootstrap.The solution:Add a higher-level qualifier to the input selector, which may not break anything.  Add "control-group" and "controls" classes as higher-level selectors, as they have to be declared inside those classes anyway as far as I understand the design approach of BS. So in my example below can modify the css without possible breaking anything, see the css at the bottom. I tested this briefly and seems to render just as expected. May not be complete as I only spent a few minutes on the css. Your feedback will be greatly appreciated. <div class="control-group">    <label title="" for="Contact_FirstName" class="control-label">First Name</label>    <div class="controls">        <input type="text" value="" name="Contact.FirstName" id="Contact_FirstName" data-val-required="The Reader Contact&amp;#39;s First Name is required" data-val-length-min="2" data-val-length-max="250" data-val-length="The maximum length allowed for the Reader Contact&amp;#39;s First Name is 250 characters and must be two or more characters long" data-val="true" class="input-medium">        <span data-valmsg-replace="true" data-valmsg-for="Contact.FirstName" class="field-validation-valid"></span>    </div></div>Here are the SCSS (SASS) updates. In stead of just including the updates I decided to include the entire bootstrap SCSS file so you can just copy-and-paste it in stead of trying to figure out what selectors have changed./*! * Bootstrap v2.0.4 * Enhacement by Renso Hollhumer * 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. * Enhancement by Renso Hollhumer: To isolate styling of INPUT tags to the Bootstrap context only */.clearfix {  *zoom: 1;}.clearfix:before,.clearfix:after {  display: table;  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: 28px;  -webkit-box-sizing: border-box;  -moz-box-sizing: border-box;  -ms-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 {  max-width: 100%;  vertical-align: middle;  border: 0;  -ms-interpolation-mode: bicubic;}#map_canvas 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,input[type="button"],input[type="reset"],input[type="submit"] {  cursor: pointer;  -webkit-appearance: button;}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;}body {  margin: 0;  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;  font-size: 13px;  line-height: 18px;  color: #333333;  background-color: #ffffff;}a {  color: #0088cc;  text-decoration: none;}a:hover {  color: #005580;  text-decoration: underline;}.row {  margin-left: -20px;  *zoom: 1;}.row:before,.row:after {  display: table;  content: "";}.row:after {  clear: both;}[class*="span"] {  float: left;  margin-left: 20px;}.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;  content: "";}.row-fluid:after {  clear: both;}.row-fluid [class*="span"] {  display: block;  width: 100%;  min-height: 28px;  -webkit-box-sizing: border-box;  -moz-box-sizing: border-box;  -ms-box-sizing: border-box;  box-sizing: border-box;  float: left;  margin-left: 2.127659574%;  *margin-left: 2.0744680846382977%;}.row-fluid [class*="span"]:first-child {  margin-left: 0;}.row-fluid .span12 {  width: 99.99999998999999%;  *width: 99.94680850063828%;}.row-fluid .span11 {  width: 91.489361693%;  *width: 91.4361702036383%;}.row-fluid .span10 {  width: 82.97872339599999%;  *width: 82.92553190663828%;}.row-fluid .span9 {  width: 74.468085099%;  *width: 74.4148936096383%;}.row-fluid .span8 {  width: 65.95744680199999%;  *width: 65.90425531263828%;}.row-fluid .span7 {  width: 57.446808505%;  *width: 57.3936170156383%;}.row-fluid .span6 {  width: 48.93617020799999%;  *width: 48.88297871863829%;}.row-fluid .span5 {  width: 40.425531911%;  *width: 40.3723404216383%;}.row-fluid .span4 {  width: 31.914893614%;  *width: 31.8617021246383%;}.row-fluid .span3 {  width: 23.404255317%;  *width: 23.3510638276383%;}.row-fluid .span2 {  width: 14.89361702%;  *width: 14.8404255306383%;}.row-fluid .span1 {  width: 6.382978723%;  *width: 6.329787233638298%;}.container {  margin-right: auto;  margin-left: auto;  *zoom: 1;}.container:before,.container:after {  display: table;  content: "";}.container:after {  clear: both;}.container-fluid {  padding-right: 20px;  padding-left: 20px;  *zoom: 1;}.container-fluid:before,.container-fluid:after {  display: table;  content: "";}.container-fluid:after {  clear: both;}p {  margin: 0 0 9px;}p small {  font-size: 11px;  color: #999999;}.lead {  margin-bottom: 18px;  font-size: 20px;  font-weight: 200;  line-height: 27px;}h1,h2,h3,h4,h5,h6 {  margin: 0;  font-family: inherit;  font-weight: bold;  color: inherit;  text-rendering: optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small {  font-weight: normal;  color: #999999;}h1 {  font-size: 30px;  line-height: 36px;}h1 small {  font-size: 18px;}h2 {  font-size: 24px;  line-height: 36px;}h2 small {  font-size: 18px;}h3 {  font-size: 18px;  line-height: 27px;}h3 small {  font-size: 14px;}h4,h5,h6 {  line-height: 18px;}h4 {  font-size: 14px;}h4 small {  font-size: 12px;}h5 {  font-size: 12px;}h6 {  font-size: 11px;  color: #999999;  text-transform: uppercase;}.page-header {  padding-bottom: 17px;  margin: 18px 0;  border-bottom: 1px solid #eeeeee;}.page-header h1 {  line-height: 1;}ul,ol {  padding: 0;  margin: 0 0 9px 25px;}ul ul,ul ol,ol ol,ol ul {  margin-bottom: 0;}ul {  list-style: disc;}ol {  list-style: decimal;}li {  line-height: 18px;}ul.unstyled,ol.unstyled {  margin-left: 0;  list-style: none;}dl {  margin-bottom: 18px;}dt,dd {  line-height: 18px;}dt {  font-weight: bold;  line-height: 17px;}dd {  margin-left: 9px;}.dl-horizontal dt {  float: left;  width: 120px;  clear: left;  text-align: right;  overflow: hidden;  text-overflow: ellipsis;  white-space: nowrap;}.dl-horizontal dd {  margin-left: 130px;}hr {  margin: 18px 0;  border: 0;  border-top: 1px solid #eeeeee;  border-bottom: 1px solid #ffffff;}strong {  font-weight: bold;}em {  font-style: italic;}.muted {  color: #999999;}abbr[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 18px;  border-left: 5px solid #eeeeee;}blockquote p {  margin-bottom: 0;  font-size: 16px;  font-weight: 300;  line-height: 22.5px;}blockquote small {  display: block;  line-height: 18px;  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;}q:before,q:after,blockquote:before,blockquote:after {  content: "";}address {  display: block;  margin-bottom: 18px;  font-style: normal;  line-height: 18px;}small {  font-size: 100%;}cite {  font-style: normal;}code,pre {  padding: 0 3px 2px;  font-family: Menlo, Monaco, 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;  background-color: #f7f7f9;  border: 1px solid #e1e1e8;}pre {  display: block;  padding: 8.5px;  margin: 0 0 9px;  font-size: 12.025px;  line-height: 18px;  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: 18px;}pre code {  padding: 0;  color: inherit;  background-color: transparent;  border: 0;}.pre-scrollable {  max-height: 340px;  overflow-y: scroll;}.label,.badge {  font-size: 10.998px;  font-weight: bold;  line-height: 14px;  color: #ffffff;  vertical-align: baseline;  white-space: nowrap;  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);  background-color: #999999;}.label {  padding: 1px 4px 2px;  -webkit-border-radius: 3px;  -moz-border-radius: 3px;  border-radius: 3px;}.badge {  padding: 1px 9px 2px;  -webkit-border-radius: 9px;  -moz-border-radius: 9px;  border-radius: 9px;}a.label:hover,a.badge:hover {  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;}table {  max-width: 100%;  background-color: transparent;  border-collapse: collapse;  border-spacing: 0;}.table {  width: 100%;  margin-bottom: 18px;}.table th,.table td {  padding: 8px;  line-height: 18px;  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-condensed th,.table-condensed td {  padding: 4px 5px;}.table-bordered {  border: 1px solid #dddddd;  border-collapse: separate;  *border-collapse: collapsed;  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 {  -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 {  -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 {  -webkit-border-radius: 0 0 0 4px;  -moz-border-radius: 0 0 0 4px;  border-radius: 0 0 0 4px;  -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 {  -webkit-border-bottom-right-radius: 4px;  border-bottom-right-radius: 4px;  -moz-border-radius-bottomright: 4px;}.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th {  background-color: #f9f9f9;}.table tbody tr:hover td,.table tbody tr:hover th {  background-color: #f5f5f5;}table .span1 {  float: none;  width: 44px;  margin-left: 0;}table .span2 {  float: none;  width: 124px;  margin-left: 0;}table .span3 {  float: none;  width: 204px;  margin-left: 0;}table .span4 {  float: none;  width: 284px;  margin-left: 0;}table .span5 {  float: none;  width: 364px;  margin-left: 0;}table .span6 {  float: none;  width: 444px;  margin-left: 0;}table .span7 {  float: none;  width: 524px;  margin-left: 0;}table .span8 {  float: none;  width: 604px;  margin-left: 0;}table .span9 {  float: none;  width: 684px;  margin-left: 0;}table .span10 {  float: none;  width: 764px;  margin-left: 0;}table .span11 {  float: none;  width: 844px;  margin-left: 0;}table .span12 {  float: none;  width: 924px;  margin-left: 0;}table .span13 {  float: none;  width: 1004px;  margin-left: 0;}table .span14 {  float: none;  width: 1084px;  margin-left: 0;}table .span15 {  float: none;  width: 1164px;  margin-left: 0;}table .span16 {  float: none;  width: 1244px;  margin-left: 0;}table .span17 {  float: none;  width: 1324px;  margin-left: 0;}table .span18 {  float: none;  width: 1404px;  margin-left: 0;}table .span19 {  float: none;  width: 1484px;  margin-left: 0;}table .span20 {  float: none;  width: 1564px;  margin-left: 0;}table .span21 {  float: none;  width: 1644px;  margin-left: 0;}table .span22 {  float: none;  width: 1724px;  margin-left: 0;}table .span23 {  float: none;  width: 1804px;  margin-left: 0;}table .span24 {  float: none;  width: 1884px;  margin-left: 0;}form {  margin: 0 0 18px;}fieldset {  padding: 0;  margin: 0;  border: 0;}legend {  display: block;  width: 100%;  padding: 0;  margin-bottom: 27px;  font-size: 19.5px;  line-height: 36px;  color: #333333;  border: 0;  border-bottom: 1px solid #e5e5e5;}legend small {  font-size: 13.5px;  color: #999999;}.control-group .controls {    label,    input,    button,    select,    textarea {      font-size: 13px;      font-weight: normal;      line-height: 18px;    }}.control-group .controls {    input,    button,    select,    textarea {      font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;    }}label {  display: block;  margin-bottom: 5px;}.control-group .controls {    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: 18px;      padding: 4px;      margin-bottom: 9px;      font-size: 13px;      line-height: 18px;      color: #555555;    }}.control-group .controls {    input,    textarea {      width: 210px;    }}.control-group .controls {    textarea {      height: auto;    }}.control-group .controls {    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-border-radius: 3px;      -moz-border-radius: 3px;      border-radius: 3px;      -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;      -ms-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;    }}.control-group .controls {    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,.075), 0 0 8px rgba(82,168,236,.6);      -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);      box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);    }}.control-group .controls {    input[type="radio"],    input[type="checkbox"] {      margin: 3px 0;      *margin-top: 0;      /* IE7 */      line-height: normal;      cursor: pointer;    }}.control-group .controls {    input[type="submit"],    input[type="reset"],    input[type="button"],    input[type="radio"],    input[type="checkbox"] {      width: auto;    }}.uneditable-textarea {  width: auto;  height: auto;}.control-group .controls {    select,    input[type="file"] {      height: 28px;      /* 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: 28px;    }}.control-group .controls {    select {      width: 220px;      border: 1px solid #bbb;    }}.control-group .controls {    select[multiple],    select[size] {      height: auto;    }}.control-group .controls {    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;    }}.radio,.checkbox {  min-height: 18px;  padding-left: 18px;}.radio input[type="radio"],.checkbox input[type="checkbox"] {  float: left;  margin-left: -18px;}.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;}.control-group .controls {    .input-mini {      width: 60px;    }}.control-group .controls {    .input-small {      width: 90px;    }}.control-group .controls {    .input-medium {      width: 150px;    }}.control-group .controls {    .input-large {      width: 210px;    }}.input-xlarge {    .input-xlarge {      width: 270px;    }}.input-xxlarge {    .input-xxlarge {      width: 530px;    }}.control-group .controls {    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-prepend [class*="span"],.row-fluid .input-append [class*="span"] {  display: inline-block;}.control-group .controls {    input,    textarea,    .uneditable-input {      margin-left: 0;    }}input.span12, textarea.span12, .uneditable-input.span12 {  width: 930px;}input.span11, textarea.span11, .uneditable-input.span11 {  width: 850px;}input.span10, textarea.span10, .uneditable-input.span10 {  width: 770px;}input.span9, textarea.span9, .uneditable-input.span9 {  width: 690px;}input.span8, textarea.span8, .uneditable-input.span8 {  width: 610px;}input.span7, textarea.span7, .uneditable-input.span7 {  width: 530px;}input.span6, textarea.span6, .uneditable-input.span6 {  width: 450px;}input.span5, textarea.span5, .uneditable-input.span5 {  width: 370px;}input.span4, textarea.span4, .uneditable-input.span4 {  width: 290px;}input.span3, textarea.span3, .uneditable-input.span3 {  width: 210px;}input.span2, textarea.span2, .uneditable-input.span2 {  width: 130px;}input.span1, textarea.span1, .uneditable-input.span1 {  width: 50px;}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly] {  cursor: not-allowed;  background-color: #eeeeee;  border-color: #ddd;}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly] {  background-color: transparent;}.control-group.warning > 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;  border-color: #c09853;}.control-group.warning .checkbox:focus,.control-group.warning .radio:focus,.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus {  border-color: #a47e3c;  -webkit-box-shadow: 0 0 6px #dbc59e;  -moz-box-shadow: 0 0 6px #dbc59e;  box-shadow: 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 > 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;  border-color: #b94a48;}.control-group.error .checkbox:focus,.control-group.error .radio:focus,.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus {  border-color: #953b39;  -webkit-box-shadow: 0 0 6px #d59392;  -moz-box-shadow: 0 0 6px #d59392;  box-shadow: 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 > 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;  border-color: #468847;}.control-group.success .checkbox:focus,.control-group.success .radio:focus,.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus {  border-color: #356635;  -webkit-box-shadow: 0 0 6px #7aba7b;  -moz-box-shadow: 0 0 6px #7aba7b;  box-shadow: 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;}input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid {  color: #b94a48;  border-color: #ee5f5b;}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required: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: 17px 20px 18px;  margin-top: 18px;  margin-bottom: 18px;  background-color: #f5f5f5;  border-top: 1px solid #e5e5e5;  *zoom: 1;}.form-actions:before,.form-actions:after {  display: table;  content: "";}.form-actions:after {  clear: both;}.uneditable-input {  overflow: hidden;  white-space: nowrap;  cursor: not-allowed;  background-color: #ffffff;  border-color: #eee;  -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);}:-moz-placeholder {  color: #999999;}:-ms-input-placeholder {  color: #999999;}::-webkit-input-placeholder {  color: #999999;}.help-block,.help-inline {  color: #555555;}.help-block {  display: block;  margin-bottom: 9px;}.help-inline {  display: inline-block;  *display: inline;  /* IE7 inline-block hack */  *zoom: 1;  vertical-align: middle;  padding-left: 5px;}.input-prepend,.input-append {  margin-bottom: 5px;}.input-prepend input,.input-append input,.input-prepend select,.input-append select,.input-prepend .uneditable-input,.input-append .uneditable-input {  position: relative;  margin-bottom: 0;  *margin-left: 0;  vertical-align: middle;  -webkit-border-radius: 0 3px 3px 0;  -moz-border-radius: 0 3px 3px 0;  border-radius: 0 3px 3px 0;}.input-prepend input:focus,.input-append input:focus,.input-prepend select:focus,.input-append select:focus,.input-prepend .uneditable-input:focus,.input-append .uneditable-input:focus {  z-index: 2;}.input-prepend .uneditable-input,.input-append .uneditable-input {  border-left-color: #ccc;}.input-prepend .add-on,.input-append .add-on {  display: inline-block;  width: auto;  height: 18px;  min-width: 16px;  padding: 4px 5px;  font-weight: normal;  line-height: 18px;  text-align: center;  text-shadow: 0 1px 0 #ffffff;  vertical-align: middle;  background-color: #eeeeee;  border: 1px solid #ccc;}.input-prepend .add-on,.input-append .add-on,.input-prepend .btn,.input-append .btn {  margin-left: -1px;  -webkit-border-radius: 0;  -moz-border-radius: 0;  border-radius: 0;}.input-prepend .active,.input-append .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: 3px 0 0 3px;  -moz-border-radius: 3px 0 0 3px;  border-radius: 3px 0 0 3px;}.input-append input,.input-append select,.input-append .uneditable-input {  -webkit-border-radius: 3px 0 0 3px;  -moz-border-radius: 3px 0 0 3px;  border-radius: 3px 0 0 3px;}.input-append .uneditable-input {  border-right-color: #ccc;  border-left-color: #eee;}.input-append .add-on:last-child,.input-append .btn:last-child {  -webkit-border-radius: 0 3px 3px 0;  -moz-border-radius: 0 3px 3px 0;  border-radius: 0 3px 3px 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 .add-on:first-child,.input-prepend.input-append .btn:first-child {  margin-right: -1px;  -webkit-border-radius: 3px 0 0 3px;  -moz-border-radius: 3px 0 0 3px;  border-radius: 3px 0 0 3px;}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child {  margin-left: -1px;  -webkit-border-radius: 0 3px 3px 0;  -moz-border-radius: 0 3px 3px 0;  border-radius: 0 3px 3px 0;}.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: 14px;  -moz-border-radius: 14px;  border-radius: 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;  /* IE7 inline-block hack */  *zoom: 1;  margin-bottom: 0;}.form-search .hide,.form-inline .hide,.form-horizontal .hide {  display: none;}.form-search label,.form-inline label {  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: 9px;}legend + .control-group {  margin-top: 18px;  -webkit-margin-top-collapse: separate;}.form-horizontal .control-group {  margin-bottom: 18px;  *zoom: 1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after {  display: table;  content: "";}.form-horizontal .control-group:after {  clear: both;}.form-horizontal .control-label {  float: left;  width: 140px;  padding-top: 5px;  text-align: right;}.form-horizontal .controls {  *display: inline-block;  *padding-left: 20px;  margin-left: 160px;  *margin-left: 0;}.form-horizontal .controls:first-child {  *padding-left: 160px;}.form-horizontal .help-block {  margin-top: 9px;  margin-bottom: 0;}.form-horizontal .form-actions {  padding-left: 160px;}.btn {  display: inline-block;  *display: inline;  /* IE7 inline-block hack */  *zoom: 1;  padding: 4px 10px 4px;  margin-bottom: 0;  font-size: 13px;  line-height: 18px;  *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-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);  background-image: -ms-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(top, #ffffff, #e6e6e6);  background-repeat: repeat-x;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=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);  *background-color: #e6e6e6;  /* Darken IE7 buttons by default so they stand out more given they won't have borders */  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);  border: 1px solid #cccccc;  *border: 0;  border-bottom-color: #b3b3b3;  -webkit-border-radius: 4px;  -moz-border-radius: 4px;  border-radius: 4px;  *margin-left: .3em;  -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);  -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled] {  background-color: #e6e6e6;  *background-color: #d9d9d9;}.btn:active,.btn.active {  background-color: #cccccc \9;}.btn:first-child {  *margin-left: 0;}.btn:hover {  color: #333333;  text-decoration: none;  background-color: #e6e6e6;  *background-color: #d9d9d9;  /* Buttons in IE7 don't get borders, so darken on hover */  background-position: 0 -15px;  -webkit-transition: background-position 0.1s linear;  -moz-transition: background-position 0.1s linear;  -ms-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-color: #e6e6e6;  background-color: #d9d9d9 \9;  background-image: none;  outline: 0;  -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);  -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);  box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}.btn.disabled,.btn[disabled] {  cursor: default;  background-color: #e6e6e6;  background-image: none;  opacity: 0.65;  filter: alpha(opacity=65);  -webkit-box-shadow: none;  -moz-box-shadow: none;  box-shadow: none;}.btn-large {  padding: 9px 14px;  font-size: 15px;  line-height: normal;  -webkit-border-radius: 5px;  -moz-border-radius: 5px;  border-radius: 5px;}.btn-large [class^="icon-"] {  margin-top: 1px;}.btn-small {  padding: 5px 9px;  font-size: 11px;  line-height: 16px;}.btn-small [class^="icon-"] {  margin-top: -1px;}.btn-mini {  padding: 2px 6px;  font-size: 11px;  line-height: 14px;}.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover,.btn-inverse,.btn-inverse:hover {  color: #ffffff;  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);}.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 {  border-color: #ccc;  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);}.btn-primary {  background-color: #0074cc;  background-image: -moz-linear-gradient(top, #0088cc, #0055cc);  background-image: -ms-linear-gradient(top, #0088cc, #0055cc);  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc));  background-image: -webkit-linear-gradient(top, #0088cc, #0055cc);  background-image: -o-linear-gradient(top, #0088cc, #0055cc);  background-image: linear-gradient(top, #0088cc, #0055cc);  background-repeat: repeat-x;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0);  border-color: #0055cc #0055cc #003580;  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);  *background-color: #0055cc;  /* Darken IE7 buttons by default so they stand out more given they won't have borders */  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled] {  background-color: #0055cc;  *background-color: #004ab3;}.btn-primary:active,.btn-primary.active {  background-color: #004099 \9;}.btn-warning {  background-color: #faa732;  background-image: -moz-linear-gradient(top, #fbb450, #f89406);  background-image: -ms-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(top, #fbb450, #f89406);  background-repeat: repeat-x;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);  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);  *background-color: #f89406;  /* Darken IE7 buttons by default so they stand out more given they won't have borders */  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled] {  background-color: #f89406;  *background-color: #df8505;}.btn-warning:active,.btn-warning.active {  background-color: #c67605 \9;}.btn-danger {  background-color: #da4f49;  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);  background-image: -ms-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(top, #ee5f5b, #bd362f);  background-repeat: repeat-x;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);  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);  *background-color: #bd362f;  /* Darken IE7 buttons by default so they stand out more given they won't have borders */  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled] {  background-color: #bd362f;  *background-color: #a9302a;}.btn-danger:active,.btn-danger.active {  background-color: #942a25 \9;}.btn-success {  background-color: #5bb75b;  background-image: -moz-linear-gradient(top, #62c462, #51a351);  background-image: -ms-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(top, #62c462, #51a351);  background-repeat: repeat-x;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);  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);  *background-color: #51a351;  /* Darken IE7 buttons by default so they stand out more given they won't have borders */  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled] {  background-color: #51a351;  *background-color: #499249;}.btn-success:active,.btn-success.active {  background-color: #408140 \9;}.btn-info {  background-color: #49afcd;  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);  background-image: -ms-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(top, #5bc0de, #2f96b4);  background-repeat: repeat-x;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);  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);  *background-color: #2f96b4;  /* Darken IE7 buttons by default so they stand out more given they won't have borders */  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled] {  background-color: #2f96b4;  *background-color: #2a85a0;}.btn-info:active,.btn-info.active {  background-color: #24748c \9;}.btn-inverse {  background-color: #414141;  background-image: -moz-linear-gradient(top, #555555, #222222);  background-image: -ms-linear-gradient(top, #555555, #222222);  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));  background-image: -webkit-linear-gradient(top, #555555, #222222);  background-image: -o-linear-gradient(top, #555555, #222222);  background-image: linear-gradient(top, #555555, #222222);  background-repeat: repeat-x;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);  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);  *background-color: #222222;  /* Darken IE7 buttons by default so they stand out more given they won't have borders */  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled] {  background-color: #222222;  *background-color: #151515;}.btn-inverse:active,.btn-inverse.active {  background-color: #080808 \9;}button.btn,input[type="submit"].btn {  *padding-top: 2px;  *padding-bottom: 2px;}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-group {  position: relative;  *zoom: 1;  *margin-left: .3em;}.btn-group:before,.btn-group:after {  display: table;  content: "";}.btn-group:after {  clear: both;}.btn-group:first-child {  *margin-left: 0;}.btn-group + .btn-group {  margin-left: 5px;}.btn-toolbar {  margin-top: 9px;  margin-bottom: 9px;}.btn-toolbar .btn-group {  display: inline-block;  *display: inline;  /* IE7 inline-block hack */  *zoom: 1;}.btn-group > .btn {  position: relative;  float: left;  margin-left: -1px;  -webkit-border-radius: 0;  -moz-border-radius: 0;  border-radius: 0;}.btn-group > .btn:first-child {  margin-left: 0;  -webkit-border-top-left-radius: 4px;  -moz-border-radius-topleft: 4px;  border-top-left-radius: 4px;  -webkit-border-bottom-left-radius: 4px;  -moz-border-radius-bottomleft: 4px;  border-bottom-left-radius: 4px;}.btn-group > .btn:last-child,.btn-group > .dropdown-toggle {  -webkit-border-top-right-radius: 4px;  -moz-border-radius-topright: 4px;  border-top-right-radius: 4px;  -webkit-border-bottom-right-radius: 4px;  -moz-border-radius-bottomright: 4px;  border-bottom-right-radius: 4px;}.btn-group > .btn.large:first-child {  margin-left: 0;  -webkit-border-top-left-radius: 6px;  -moz-border-radius-topleft: 6px;  border-top-left-radius: 6px;  -webkit-border-bottom-left-radius: 6px;  -moz-border-radius-bottomleft: 6px;  border-bottom-left-radius: 6px;}.btn-group > .btn.large:last-child,.btn-group > .large.dropdown-toggle {  -webkit-border-top-right-radius: 6px;  -moz-border-radius-topright: 6px;  border-top-right-radius: 6px;  -webkit-border-bottom-right-radius: 6px;  -moz-border-radius-bottomright: 6px;  border-bottom-right-radius: 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 > .dropdown-toggle {  padding-left: 8px;  padding-right: 8px;  -webkit-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);  -moz-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);  box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);  *padding-top: 4px;  *padding-bottom: 4px;}.btn-group > .btn-mini.dropdown-toggle {  padding-left: 5px;  padding-right: 5px;}.btn-group > .btn-small.dropdown-toggle {  *padding-top: 4px;  *padding-bottom: 4px;}.btn-group > .btn-large.dropdown-toggle {  padding-left: 12px;  padding-right: 12px;}.btn-group.open .dropdown-toggle {  background-image: none;  -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);  -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);  box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}.btn-group.open .btn.dropdown-toggle {  background-color: #e6e6e6;}.btn-group.open .btn-primary.dropdown-toggle {  background-color: #0055cc;}.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: 7px;  margin-left: 0;}.btn:hover .caret,.open.btn-group .caret {  opacity: 1;  filter: alpha(opacity=100);}.btn-mini .caret {  margin-top: 5px;}.btn-small .caret {  margin-top: 6px;}.btn-large .caret {  margin-top: 6px;  border-left-width: 5px;  border-right-width: 5px;  border-top-width: 5px;}.dropup .btn-large .caret {  border-bottom: 5px solid #000000;  border-top: 0;}.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;  opacity: 0.75;  filter: alpha(opacity=75);}.nav {  margin-left: 0;  margin-bottom: 18px;  list-style: none;}.nav > li > a {  display: block;}.nav > li > a:hover {  text-decoration: none;  background-color: #eeeeee;}.nav > .pull-right {  float: right;}.nav .nav-header {  display: block;  padding: 3px 15px;  font-size: 11px;  font-weight: bold;  line-height: 18px;  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-left: 15px;  padding-right: 15px;  margin-bottom: 0;}.nav-list > li > a,.nav-list .nav-header {  margin-left: -15px;  margin-right: -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 {  color: #ffffff;  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);  background-color: #0088cc;}.nav-list [class^="icon-"] {  margin-right: 2px;}.nav-list .divider {  *width: 100%;  height: 1px;  margin: 8px 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;  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: 18px;  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 {  border-color: #eeeeee #eeeeee #dddddd;}.nav-tabs > .active > a,.nav-tabs > .active > a:hover {  color: #555555;  background-color: #ffffff;  border: 1px solid #ddd;  border-bottom-color: transparent;  cursor: default;}.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 {  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-radius: 4px 4px 0 0;  -moz-border-radius: 4px 4px 0 0;  border-radius: 4px 4px 0 0;}.nav-tabs.nav-stacked > li:last-child > a {  -webkit-border-radius: 0 0 4px 4px;  -moz-border-radius: 0 0 4px 4px;  border-radius: 0 0 4px 4px;}.nav-tabs.nav-stacked > li > a:hover {  border-color: #ddd;  z-index: 2;}.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 5px 5px;  -moz-border-radius: 0 0 5px 5px;  border-radius: 0 0 5px 5px;}.nav-pills .dropdown-menu {  -webkit-border-radius: 4px;  -moz-border-radius: 4px;  border-radius: 4px;}.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret {  border-top-color: #0088cc;  border-bottom-color: #0088cc;  margin-top: 6px;}.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret {  border-top-color: #005580;  border-bottom-color: #005580;}.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret {  border-top-color: #333333;  border-bottom-color: #333333;}.nav > .dropdown.active > a:hover {  color: #000000;  cursor: pointer;}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav > li.dropdown.open.active > a:hover {  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 {  border-top-color: #ffffff;  border-bottom-color: #ffffff;  opacity: 1;  filter: alpha(opacity=100);}.tabs-stacked .open > a:hover {  border-color: #999999;}.tabbable {  *zoom: 1;}.tabbable:before,.tabbable:after {  display: table;  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 {  border-bottom-color: transparent;  border-top-color: #ddd;}.tabs-below > .nav-tabs > .active > a,.tabs-below > .nav-tabs > .active > a:hover {  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 {  border-color: #eeeeee #dddddd #eeeeee #eeeeee;}.tabs-left > .nav-tabs .active > a,.tabs-left > .nav-tabs .active > a:hover {  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 {  border-color: #eeeeee #eeeeee #eeeeee #dddddd;}.tabs-right > .nav-tabs .active > a,.tabs-right > .nav-tabs .active > a:hover {  border-color: #ddd #ddd #ddd transparent;  *border-left-color: #ffffff;}.navbar {  *position: relative;  *z-index: 2;  overflow: visible;  margin-bottom: 18px;}.navbar-inner {  min-height: 40px;  padding-left: 20px;  padding-right: 20px;  background-color: #2c2c2c;  background-image: -moz-linear-gradient(top, #333333, #222222);  background-image: -ms-linear-gradient(top, #333333, #222222);  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));  background-image: -webkit-linear-gradient(top, #333333, #222222);  background-image: -o-linear-gradient(top, #333333, #222222);  background-image: linear-gradient(top, #333333, #222222);  background-repeat: repeat-x;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);  -webkit-border-radius: 4px;  -moz-border-radius: 4px;  border-radius: 4px;  -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);  -moz-box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);  box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);}.navbar .container {  width: auto;}.nav-collapse.collapse {  height: auto;}.navbar {  color: #999999;}.navbar .brand:hover {  text-decoration: none;}.navbar .brand {  float: left;  display: block;  padding: 8px 20px 12px;  margin-left: -20px;  font-size: 20px;  font-weight: 200;  line-height: 1;  color: #999999;}.navbar .navbar-text {  margin-bottom: 0;  line-height: 40px;}.navbar .navbar-link {  color: #999999;}.navbar .navbar-link:hover {  color: #ffffff;}.navbar .btn,.navbar .btn-group {  margin-top: 5px;}.navbar .btn-group .btn {  margin: 0;}.navbar-form {  margin-bottom: 0;  *zoom: 1;}.navbar-form:before,.navbar-form:after {  display: table;  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 {  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: 6px;  white-space: nowrap;}.navbar-form .input-append input,.navbar-form .input-prepend input {  margin-top: 0;}.navbar-search {  position: relative;  float: left;  margin-top: 6px;  margin-bottom: 0;}.navbar-search .search-query {  padding: 4px 9px;  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;  font-size: 13px;  font-weight: normal;  line-height: 1;  color: #ffffff;  background-color: #626262;  border: 1px solid #151515;  -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);  -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);  box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);  -webkit-transition: none;  -moz-transition: none;  -ms-transition: none;  -o-transition: none;  transition: none;}.navbar-search .search-query:-moz-placeholder {  color: #cccccc;}.navbar-search .search-query:-ms-input-placeholder {  color: #cccccc;}.navbar-search .search-query::-webkit-input-placeholder {  color: #cccccc;}.navbar-search .search-query:focus,.navbar-search .search-query.focused {  padding: 5px 10px;  color: #333333;  text-shadow: 0 1px 0 #ffffff;  background-color: #ffffff;  border: 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);  outline: 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-fixed-bottom .navbar-inner {  padding-left: 0;  padding-right: 0;  -webkit-border-radius: 0;  -moz-border-radius: 0;  border-radius: 0;}.navbar-fixed-top .container,.navbar-fixed-bottom .container {  width: 940px;}.navbar-fixed-top {  top: 0;}.navbar-fixed-bottom {  bottom: 0;}.navbar .nav {  position: relative;  left: 0;  display: block;  float: left;  margin: 0 10px 0 0;}.navbar .nav.pull-right {  float: right;}.navbar .nav > li {  display: block;  float: left;}.navbar .nav > li > a {  float: none;  padding: 9px 10px 11px;  line-height: 19px;  color: #999999;  text-decoration: none;  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);}.navbar .btn {  display: inline-block;  padding: 4px 10px 4px;  margin: 5px 5px 6px;  line-height: 18px;}.navbar .btn-group {  margin: 0;  padding: 5px 5px 6px;}.navbar .nav > li > a:hover {  background-color: transparent;  color: #ffffff;  text-decoration: none;}.navbar .nav .active > a,.navbar .nav .active > a:hover {  color: #ffffff;  text-decoration: none;  background-color: #222222;}.navbar .divider-vertical {  height: 40px;  width: 1px;  margin: 0 9px;  overflow: hidden;  background-color: #222222;  border-right: 1px solid #333333;}.navbar .nav.pull-right {  margin-left: 10px;  margin-right: 0;}.navbar .btn-navbar {  display: none;  float: right;  padding: 7px 10px;  margin-left: 5px;  margin-right: 5px;  background-color: #2c2c2c;  background-image: -moz-linear-gradient(top, #333333, #222222);  background-image: -ms-linear-gradient(top, #333333, #222222);  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));  background-image: -webkit-linear-gradient(top, #333333, #222222);  background-image: -o-linear-gradient(top, #333333, #222222);  background-image: linear-gradient(top, #333333, #222222);  background-repeat: repeat-x;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);  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);  *background-color: #222222;  /* Darken IE7 buttons by default so they stand out more given they won't have borders */  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);  -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);  -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);  box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);}.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled] {  background-color: #222222;  *background-color: #151515;}.navbar .btn-navbar:active,.navbar .btn-navbar.active {  background-color: #080808 \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 .dropdown-menu:before {  content: '';  display: inline-block;  border-left: 7px solid transparent;  border-right: 7px solid transparent;  border-bottom: 7px solid #ccc;  border-bottom-color: rgba(0, 0, 0, 0.2);  position: absolute;  top: -7px;  left: 9px;}.navbar .dropdown-menu:after {  content: '';  display: inline-block;  border-left: 6px solid transparent;  border-right: 6px solid transparent;  border-bottom: 6px solid #ffffff;  position: absolute;  top: -6px;  left: 10px;}.navbar-fixed-bottom .dropdown-menu:before {  border-top: 7px solid #ccc;  border-top-color: rgba(0, 0, 0, 0.2);  border-bottom: 0;  bottom: -7px;  top: auto;}.navbar-fixed-bottom .dropdown-menu:after {  border-top: 6px solid #ffffff;  border-bottom: 0;  bottom: -6px;  top: auto;}.navbar .nav li.dropdown .dropdown-toggle .caret,.navbar .nav li.dropdown.open .caret {  border-top-color: #ffffff;  border-bottom-color: #ffffff;}.navbar .nav li.dropdown.active .caret {  opacity: 1;  filter: alpha(opacity=100);}.navbar .nav li.dropdown.open > .dropdown-toggle,.navbar .nav li.dropdown.active > .dropdown-toggle,.navbar .nav li.dropdown.open.active > .dropdown-toggle {  background-color: transparent;}.navbar .nav li.dropdown.active > .dropdown-toggle:hover {  color: #ffffff;}.navbar .pull-right .dropdown-menu,.navbar .dropdown-menu.pull-right {  left: auto;  right: 0;}.navbar .pull-right .dropdown-menu:before,.navbar .dropdown-menu.pull-right:before {  left: auto;  right: 12px;}.navbar .pull-right .dropdown-menu:after,.navbar .dropdown-menu.pull-right:after {  left: auto;  right: 13px;}.breadcrumb {  padding: 7px 14px;  margin: 0 0 18px;  list-style: none;  background-color: #fbfbfb;  background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5);  background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5);  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));  background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5);  background-image: -o-linear-gradient(top, #ffffff, #f5f5f5);  background-image: linear-gradient(top, #ffffff, #f5f5f5);  background-repeat: repeat-x;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);  border: 1px solid #ddd;  -webkit-border-radius: 3px;  -moz-border-radius: 3px;  border-radius: 3px;  -webkit-box-shadow: inset 0 1px 0 #ffffff;  -moz-box-shadow: inset 0 1px 0 #ffffff;  box-shadow: inset 0 1px 0 #ffffff;}.breadcrumb li {  display: inline-block;  *display: inline;  /* IE7 inline-block hack */  *zoom: 1;  text-shadow: 0 1px 0 #ffffff;}.breadcrumb .divider {  padding: 0 5px;  color: #999999;}.breadcrumb .active a {  color: #333333;}.pagination {  height: 36px;  margin: 18px 0;}.pagination ul {  display: inline-block;  *display: inline;  /* IE7 inline-block hack */  *zoom: 1;  margin-left: 0;  margin-bottom: 0;  -webkit-border-radius: 3px;  -moz-border-radius: 3px;  border-radius: 3px;  -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 li {  display: inline;}.pagination a {  float: left;  padding: 0 14px;  line-height: 34px;  text-decoration: none;  border: 1px solid #ddd;  border-left-width: 0;}.pagination a:hover,.pagination .active a {  background-color: #f5f5f5;}.pagination .active a {  color: #999999;  cursor: default;}.pagination .disabled span,.pagination .disabled a,.pagination .disabled a:hover {  color: #999999;  background-color: transparent;  cursor: default;}.pagination li:first-child a {  border-left-width: 1px;  -webkit-border-radius: 3px 0 0 3px;  -moz-border-radius: 3px 0 0 3px;  border-radius: 3px 0 0 3px;}.pagination li:last-child a {  -webkit-border-radius: 0 3px 3px 0;  -moz-border-radius: 0 3px 3px 0;  border-radius: 0 3px 3px 0;}.pagination-centered {  text-align: center;}.pagination-right {  text-align: right;}.pager {  margin-left: 0;  margin-bottom: 18px;  list-style: none;  text-align: center;  *zoom: 1;}.pager:before,.pager:after {  display: table;  content: "";}.pager:after {  clear: both;}.pager li {  display: inline;}.pager a {  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 a:hover {  text-decoration: none;  background-color: #f5f5f5;}.pager .next a {  float: right;}.pager .previous a {  float: left;}.pager .disabled a,.pager .disabled a:hover {  color: #999999;  background-color: #fff;  cursor: default;}.thumbnails {  margin-left: -20px;  list-style: none;  *zoom: 1;}.thumbnails:before,.thumbnails:after {  display: table;  content: "";}.thumbnails:after {  clear: both;}.row-fluid .thumbnails {  margin-left: 0;}.thumbnails > li {  float: left;  margin-bottom: 18px;  margin-left: 20px;}.thumbnail {  display: block;  padding: 4px;  line-height: 1;  border: 1px solid #ddd;  -webkit-border-radius: 4px;  -moz-border-radius: 4px;  border-radius: 4px;  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);  -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);}a.thumbnail:hover {  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-left: auto;  margin-right: auto;}.thumbnail .caption {  padding: 9px;}.alert {  padding: 8px 35px 8px 14px;  margin-bottom: 18px;  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;  color: #c09853;}.alert-heading {  color: inherit;}.alert .close {  position: relative;  top: -2px;  right: -21px;  line-height: 18px;}.alert-success {  background-color: #dff0d8;  border-color: #d6e9c6;  color: #468847;}.alert-danger,.alert-error {  background-color: #f2dede;  border-color: #eed3d7;  color: #b94a48;}.alert-info {  background-color: #d9edf7;  border-color: #bce8f1;  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;}@-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 {  overflow: hidden;  height: 18px;  margin-bottom: 18px;  background-color: #f7f7f7;  background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);  background-image: -ms-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(top, #f5f5f5, #f9f9f9);  background-repeat: repeat-x;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', 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);  -webkit-border-radius: 4px;  -moz-border-radius: 4px;  border-radius: 4px;}.progress .bar {  width: 0%;  height: 18px;  color: #ffffff;  font-size: 12px;  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: -ms-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(top, #149bdf, #0480be);  background-repeat: repeat-x;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', 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;  -ms-box-sizing: border-box;  box-sizing: border-box;  -webkit-transition: width 0.6s ease;  -moz-transition: width 0.6s ease;  -ms-transition: width 0.6s ease;  -o-transition: width 0.6s ease;  transition: width 0.6s ease;}.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: -ms-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 {  background-color: #dd514c;  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);  background-image: -ms-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(top, #ee5f5b, #c43c35);  background-repeat: repeat-x;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);}.progress-danger.progress-striped .bar {  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: -ms-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 {  background-color: #5eb95e;  background-image: -moz-linear-gradient(top, #62c462, #57a957);  background-image: -ms-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(top, #62c462, #57a957);  background-repeat: repeat-x;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);}.progress-success.progress-striped .bar {  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: -ms-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 {  background-color: #4bb1cf;  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);  background-image: -ms-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(top, #5bc0de, #339bb9);  background-repeat: repeat-x;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);}.progress-info.progress-striped .bar {  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: -ms-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 {  background-color: #faa732;  background-image: -moz-linear-gradient(top, #fbb450, #f89406);  background-image: -ms-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(top, #fbb450, #f89406);  background-repeat: repeat-x;  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);}.progress-warning.progress-striped .bar {  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: -ms-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);}.hero-unit {  padding: 60px;  margin-bottom: 30px;  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;  color: inherit;  letter-spacing: -1px;}.hero-unit p {  font-size: 18px;  font-weight: 200;  line-height: 27px;  color: inherit;}.tooltip {  position: absolute;  z-index: 1020;  display: block;  visibility: visible;  padding: 5px;  font-size: 11px;  opacity: 0;  filter: alpha(opacity=0);}.tooltip.in {  opacity: 0.8;  filter: alpha(opacity=80);}.tooltip.top {  margin-top: -2px;}.tooltip.right {  margin-left: 2px;}.tooltip.bottom {  margin-top: 2px;}.tooltip.left {  margin-left: -2px;}.tooltip.top .tooltip-arrow {  bottom: 0;  left: 50%;  margin-left: -5px;  border-left: 5px solid transparent;  border-right: 5px solid transparent;  border-top: 5px solid #000000;}.tooltip.left .tooltip-arrow {  top: 50%;  right: 0;  margin-top: -5px;  border-top: 5px solid transparent;  border-bottom: 5px solid transparent;  border-left: 5px solid #000000;}.tooltip.bottom .tooltip-arrow {  top: 0;  left: 50%;  margin-left: -5px;  border-left: 5px solid transparent;  border-right: 5px solid transparent;  border-bottom: 5px solid #000000;}.tooltip.right .tooltip-arrow {  top: 50%;  left: 0;  margin-top: -5px;  border-top: 5px solid transparent;  border-bottom: 5px solid transparent;  border-right: 5px solid #000000;}.tooltip-inner {  max-width: 200px;  padding: 3px 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;}.popover {  position: absolute;  top: 0;  left: 0;  z-index: 1010;  display: none;  padding: 5px;}.popover.top {  margin-top: -5px;}.popover.right {  margin-left: 5px;}.popover.bottom {  margin-top: 5px;}.popover.left {  margin-left: -5px;}.popover.top .arrow {  bottom: 0;  left: 50%;  margin-left: -5px;  border-left: 5px solid transparent;  border-right: 5px solid transparent;  border-top: 5px solid #000000;}.popover.right .arrow {  top: 50%;  left: 0;  margin-top: -5px;  border-top: 5px solid transparent;  border-bottom: 5px solid transparent;  border-right: 5px solid #000000;}.popover.bottom .arrow {  top: 0;  left: 50%;  margin-left: -5px;  border-left: 5px solid transparent;  border-right: 5px solid transparent;  border-bottom: 5px solid #000000;}.popover.left .arrow {  top: 50%;  right: 0;  margin-top: -5px;  border-top: 5px solid transparent;  border-bottom: 5px solid transparent;  border-left: 5px solid #000000;}.popover .arrow {  position: absolute;  width: 0;  height: 0;}.popover-inner {  padding: 3px;  width: 280px;  overflow: hidden;  background: #000000;  background: rgba(0, 0, 0, 0.8);  -webkit-border-radius: 6px;  -moz-border-radius: 6px;  border-radius: 6px;  -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);}.popover-title {  padding: 9px 15px;  line-height: 1;  background-color: #f5f5f5;  border-bottom: 1px solid #eee;  -webkit-border-radius: 3px 3px 0 0;  -moz-border-radius: 3px 3px 0 0;  border-radius: 3px 3px 0 0;}.popover-content {  padding: 14px;  background-color: #ffffff;  -webkit-border-radius: 0 0 3px 3px;  -moz-border-radius: 0 0 3px 3px;  border-radius: 0 0 3px 3px;  -webkit-background-clip: padding-box;  -moz-background-clip: padding-box;  background-clip: padding-box;}.popover-content p,.popover-content ul,.popover-content ol {  margin-bottom: 0;}.modal-open .dropdown-menu {  z-index: 2050;}.modal-open .dropdown.open {  *z-index: 2050;}.modal-open .popover {  z-index: 2060;}.modal-open .tooltip {  z-index: 2070;}.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: 50%;  left: 50%;  z-index: 1050;  overflow: auto;  width: 560px;  margin: -250px 0 0 -280px;  background-color: #ffffff;  border: 1px solid #999;  border: 1px solid rgba(0, 0, 0, 0.3);  *border: 1px solid #999;  /* IE6-7 */  -webkit-border-radius: 6px;  -moz-border-radius: 6px;  border-radius: 6px;  -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 {  -webkit-transition: opacity .3s linear, top .3s ease-out;  -moz-transition: opacity .3s linear, top .3s ease-out;  -ms-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;  top: -25%;}.modal.fade.in {  top: 50%;}.modal-header {  padding: 9px 15px;  border-bottom: 1px solid #eee;}.modal-header .close {  margin-top: 2px;}.modal-body {  overflow-y: auto;  max-height: 400px;  padding: 15px;}.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;  -webkit-box-shadow: inset 0 1px 0 #ffffff;  -moz-box-shadow: inset 0 1px 0 #ffffff;  box-shadow: inset 0 1px 0 #ffffff;  *zoom: 1;}.modal-footer:before,.modal-footer:after {  display: table;  content: "";}.modal-footer:after {  clear: both;}.modal-footer .btn + .btn {  margin-left: 5px;  margin-bottom: 0;}.modal-footer .btn-group .btn + .btn {  margin-left: -1px;}.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: "";  opacity: 0.3;  filter: alpha(opacity=30);}.dropdown .caret {  margin-top: 8px;  margin-left: 2px;}.dropdown:hover .caret,.open .caret {  opacity: 1;  filter: alpha(opacity=100);}.dropdown-menu {  position: absolute;  top: 100%;  left: 0;  z-index: 1000;  display: none;  float: left;  min-width: 160px;  padding: 4px 0;  margin: 1px 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: 5px;  -moz-border-radius: 5px;  border-radius: 5px;  -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: 8px 1px;  *margin: -5px 0 5px;  overflow: hidden;  background-color: #e5e5e5;  border-bottom: 1px solid #ffffff;}.dropdown-menu a {  display: block;  padding: 3px 15px;  clear: both;  font-weight: normal;  line-height: 18px;  color: #333333;  white-space: nowrap;}.dropdown-menu li > a:hover,.dropdown-menu .active > a,.dropdown-menu .active > a:hover {  color: #ffffff;  text-decoration: none;  background-color: #0088cc;}.open {  *z-index: 1000;}.open  > .dropdown-menu {  display: block;}.pull-right > .dropdown-menu {  right: 0;  left: auto;}.dropup .caret,.navbar-fixed-bottom .dropdown .caret {  border-top: 0;  border-bottom: 4px solid #000000;  content: "\2191";}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu {  top: auto;  bottom: 100%;  margin-bottom: 1px;}.typeahead {  margin-top: 2px;  -webkit-border-radius: 4px;  -moz-border-radius: 4px;  border-radius: 4px;}.accordion {  margin-bottom: 18px;}.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: 18px;  line-height: 1;}.carousel-inner {  overflow: hidden;  width: 100%;  position: relative;}.carousel .item {  display: none;  position: relative;  -webkit-transition: 0.6s ease-in-out left;  -moz-transition: 0.6s ease-in-out left;  -ms-transition: 0.6s ease-in-out left;  -o-transition: 0.6s ease-in-out left;  transition: 0.6s ease-in-out left;}.carousel .item > img {  display: block;  line-height: 1;}.carousel .active,.carousel .next,.carousel .prev {  display: block;}.carousel .active {  left: 0;}.carousel .next,.carousel .prev {  position: absolute;  top: 0;  width: 100%;}.carousel .next {  left: 100%;}.carousel .prev {  left: -100%;}.carousel .next.left,.carousel .prev.right {  left: 0;}.carousel .active.left {  left: -100%;}.carousel .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 {  left: auto;  right: 15px;}.carousel-control:hover {  color: #ffffff;  text-decoration: none;  opacity: 0.9;  filter: alpha(opacity=90);}.carousel-caption {  position: absolute;  left: 0;  right: 0;  bottom: 0;  padding: 10px 15px 5px;  background: #333333;  background: rgba(0, 0, 0, 0.75);}.carousel-caption h4,.carousel-caption p {  color: #ffffff;}.well {  min-height: 20px;  padding: 19px;  margin-bottom: 20px;  background-color: #f5f5f5;  border: 1px solid #eee;  border: 1px solid rgba(0, 0, 0, 0.05);  -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;}.close {  float: right;  font-size: 20px;  font-weight: bold;  line-height: 18px;  color: #000000;  text-shadow: 0 1px 0 #ffffff;  opacity: 0.2;  filter: alpha(opacity=20);}.close:hover {  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;}.pull-right {  float: right;}.pull-left {  float: left;}.hide {  display: none;}.show {  display: block;}.invisible {  visibility: hidden;}.fade {  opacity: 0;  -webkit-transition: opacity 0.15s linear;  -moz-transition: opacity 0.15s linear;  -ms-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;  -ms-transition: height 0.35s ease;  -o-transition: height 0.35s ease;  transition: height 0.35s ease;}.collapse.in {  height: auto;}.hidden {  display: none;  visibility: hidden;}.visible-phone {  display: none !important;}.visible-tablet {  display: none !important;}.hidden-desktop {  display: none !important;}@media (max-width: 767px) {  .visible-phone {    display: inherit !important;  }  .hidden-phone {    display: none !important;  }  .hidden-desktop {    display: inherit !important;  }  .visible-desktop {    display: none !important;  }}@media (min-width: 768px) and (max-width: 979px) {  .visible-tablet {    display: inherit !important;  }  .hidden-tablet {    display: none !important;  }  .hidden-desktop {    display: inherit !important;  }  .visible-desktop {    display: none !important ;  }}@media (max-width: 480px) {  .nav-collapse {    -webkit-transform: translate3d(0, 0, 0);  }  .page-header h1 small {    display: block;    line-height: 18px;  }  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-left: 10px;    padding-right: 10px;  }  .modal {    position: absolute;    top: 10px;    left: 10px;    right: 10px;    width: auto;    margin: 0;  }  .modal.fade.in {    top: auto;  }  .modal-header .close {    padding: 10px;    margin: -10px;  }  .carousel-caption {    position: static;  }}@media (max-width: 767px) {  body {    padding-left: 20px;    padding-right: 20px;  }  .navbar-fixed-top,  .navbar-fixed-bottom {    margin-left: -20px;    margin-right: -20px;  }  .container-fluid {    padding: 0;  }  .dl-horizontal dt {    float: none;    clear: none;    width: auto;    text-align: left;  }  .dl-horizontal dd {    margin-left: 0;  }  .container {    width: auto;  }  .row-fluid {    width: 100%;  }  .row,  .thumbnails {    margin-left: 0;  }  [class*="span"],  .row-fluid [class*="span"] {    float: none;    display: block;    width: auto;    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: 28px;    -webkit-box-sizing: border-box;    -moz-box-sizing: border-box;    -ms-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;  }}@media (min-width: 768px) and (max-width: 979px) {  .row {    margin-left: -20px;    *zoom: 1;  }  .row:before,  .row:after {    display: table;    content: "";  }  .row:after {    clear: both;  }  [class*="span"] {    float: left;    margin-left: 20px;  }  .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;    content: "";  }  .row-fluid:after {    clear: both;  }  .row-fluid [class*="span"] {    display: block;    width: 100%;    min-height: 28px;    -webkit-box-sizing: border-box;    -moz-box-sizing: border-box;    -ms-box-sizing: border-box;    box-sizing: border-box;    float: left;    margin-left: 2.762430939%;    *margin-left: 2.709239449638298%;  }  .row-fluid [class*="span"]:first-child {    margin-left: 0;  }  .row-fluid .span12 {    width: 99.999999993%;    *width: 99.9468085036383%;  }  .row-fluid .span11 {    width: 91.436464082%;    *width: 91.38327259263829%;  }  .row-fluid .span10 {    width: 82.87292817100001%;    *width: 82.8197366816383%;  }  .row-fluid .span9 {    width: 74.30939226%;    *width: 74.25620077063829%;  }  .row-fluid .span8 {    width: 65.74585634900001%;    *width: 65.6926648596383%;  }  .row-fluid .span7 {    width: 57.182320438000005%;    *width: 57.129128948638304%;  }  .row-fluid .span6 {    width: 48.618784527%;    *width: 48.5655930376383%;  }  .row-fluid .span5 {    width: 40.055248616%;    *width: 40.0020571266383%;  }  .row-fluid .span4 {    width: 31.491712705%;    *width: 31.4385212156383%;  }  .row-fluid .span3 {    width: 22.928176794%;    *width: 22.874985304638297%;  }  .row-fluid .span2 {    width: 14.364640883%;    *width: 14.311449393638298%;  }  .row-fluid .span1 {    width: 5.801104972%;    *width: 5.747913482638298%;  }  input,  textarea,  .uneditable-input {    margin-left: 0;  }  input.span12, textarea.span12, .uneditable-input.span12 {    width: 714px;  }  input.span11, textarea.span11, .uneditable-input.span11 {    width: 652px;  }  input.span10, textarea.span10, .uneditable-input.span10 {    width: 590px;  }  input.span9, textarea.span9, .uneditable-input.span9 {    width: 528px;  }  input.span8, textarea.span8, .uneditable-input.span8 {    width: 466px;  }  input.span7, textarea.span7, .uneditable-input.span7 {    width: 404px;  }  input.span6, textarea.span6, .uneditable-input.span6 {    width: 342px;  }  input.span5, textarea.span5, .uneditable-input.span5 {    width: 280px;  }  input.span4, textarea.span4, .uneditable-input.span4 {    width: 218px;  }  input.span3, textarea.span3, .uneditable-input.span3 {    width: 156px;  }  input.span2, textarea.span2, .uneditable-input.span2 {    width: 94px;  }  input.span1, textarea.span1, .uneditable-input.span1 {    width: 32px;  }}@media (min-width: 1200px) {  .row {    margin-left: -30px;    *zoom: 1;  }  .row:before,  .row:after {    display: table;    content: "";  }  .row:after {    clear: both;  }  [class*="span"] {    float: left;    margin-left: 30px;  }  .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;    content: "";  }  .row-fluid:after {    clear: both;  }  .row-fluid [class*="span"] {    display: block;    width: 100%;    min-height: 28px;    -webkit-box-sizing: border-box;    -moz-box-sizing: border-box;    -ms-box-sizing: border-box;    box-sizing: border-box;    float: left;    margin-left: 2.564102564%;    *margin-left: 2.510911074638298%;  }  .row-fluid [class*="span"]:first-child {    margin-left: 0;  }  .row-fluid .span12 {    width: 100%;    *width: 99.94680851063829%;  }  .row-fluid .span11 {    width: 91.45299145300001%;    *width: 91.3997999636383%;  }  .row-fluid .span10 {    width: 82.905982906%;    *width: 82.8527914166383%;  }  .row-fluid .span9 {    width: 74.358974359%;    *width: 74.30578286963829%;  }  .row-fluid .span8 {    width: 65.81196581200001%;    *width: 65.7587743226383%;  }  .row-fluid .span7 {    width: 57.264957265%;    *width: 57.2117657756383%;  }  .row-fluid .span6 {    width: 48.717948718%;    *width: 48.6647572286383%;  }  .row-fluid .span5 {    width: 40.170940171000005%;    *width: 40.117748681638304%;  }  .row-fluid .span4 {    width: 31.623931624%;    *width: 31.5707401346383%;  }  .row-fluid .span3 {    width: 23.076923077%;    *width: 23.0237315876383%;  }  .row-fluid .span2 {    width: 14.529914530000001%;    *width: 14.4767230406383%;  }  .row-fluid .span1 {    width: 5.982905983%;    *width: 5.929714493638298%;  }  input,  textarea,  .uneditable-input {    margin-left: 0;  }  input.span12, textarea.span12, .uneditable-input.span12 {    width: 1160px;  }  input.span11, textarea.span11, .uneditable-input.span11 {    width: 1060px;  }  input.span10, textarea.span10, .uneditable-input.span10 {    width: 960px;  }  input.span9, textarea.span9, .uneditable-input.span9 {    width: 860px;  }  input.span8, textarea.span8, .uneditable-input.span8 {    width: 760px;  }  input.span7, textarea.span7, .uneditable-input.span7 {    width: 660px;  }  input.span6, textarea.span6, .uneditable-input.span6 {    width: 560px;  }  input.span5, textarea.span5, .uneditable-input.span5 {    width: 460px;  }  input.span4, textarea.span4, .uneditable-input.span4 {    width: 360px;  }  input.span3, textarea.span3, .uneditable-input.span3 {    width: 260px;  }  input.span2, textarea.span2, .uneditable-input.span2 {    width: 160px;  }  input.span1, textarea.span1, .uneditable-input.span1 {    width: 60px;  }  .thumbnails {    margin-left: -30px;  }  .thumbnails > li {    margin-left: 30px;  }  .row-fluid .thumbnails {    margin-left: 0;  }}@media (max-width: 979px) {  body {    padding-top: 0;  }  .navbar-fixed-top,  .navbar-fixed-bottom {    position: static;  }  .navbar-fixed-top {    margin-bottom: 18px;  }  .navbar-fixed-bottom {    margin-top: 18px;  }  .navbar-fixed-top .navbar-inner,  .navbar-fixed-bottom .navbar-inner {    padding: 5px;  }  .navbar .container {    width: auto;    padding: 0;  }  .navbar .brand {    padding-left: 10px;    padding-right: 10px;    margin: 0 0 0 -5px;  }  .nav-collapse {    clear: both;  }  .nav-collapse .nav {    float: none;    margin: 0 0 9px;  }  .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: #999999;    text-shadow: none;  }  .nav-collapse .nav > li > a,  .nav-collapse .dropdown-menu a {    padding: 6px 15px;    font-weight: bold;    color: #999999;    -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: #222222;  }  .nav-collapse.in .btn-group {    margin-top: 5px;    padding: 0;  }  .nav-collapse .dropdown-menu {    position: static;    top: auto;    left: auto;    float: none;    display: block;    max-width: none;    margin: 0 15px;    padding: 0;    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 .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: 9px 15px;    margin: 9px 0;    border-top: 1px solid #222222;    border-bottom: 1px solid #222222;    -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);    -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);    box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);  }  .navbar .nav-collapse .nav.pull-right {    float: none;    margin-left: 0;  }  .nav-collapse,  .nav-collapse.collapse {    overflow: hidden;    height: 0;  }  .navbar .btn-navbar {    display: block;  }  .navbar-static .navbar-inner {    padding-left: 10px;    padding-right: 10px;  }}@media (min-width: 980px) {  .nav-collapse.collapse {    height: auto !important;    overflow: visible !important;  }}

    Read the article

  • write error: Broken pipe

    - by Fahim
    Hi, I have to run a tool on around 300 directories. Each run take around 1 minute to 30 minute or even more than that. So, I wrote a python script having a loop to run the tool on all directories one after another. my python script has code something like: for directory in directories: os.popen('runtool_exec ' + directory) But when I run the python script I get the following error messages repeatedly: .. tail: write error: Broken pipe date: write error: Broken pipe .. All I do is login on a remote server using ssh where the tool, python script, and subject directories are kept. When I individually run the tool from command prompt using command like: runtool_exec directory it works fine. "broken pipe" error is coming only when I run using the python script. Any idea, workaround? Please suggest. Thanks. Fahim

    Read the article

  • File Fix-it codegolf (GCJ 2010 1B-A)

    - by KirarinSnow
    Last year (2009), the Google Code Jam featured an interesting problem as the first problem in Round 1B: Decision Tree As the problem seemed tailored for Lisp-like languages, we spontaneously had an exciting codegolf here on SO, in which a few languages managed to solve the problem in fewer characters than any Lisp variety, using quite a number of different techniques. This year's Round 1B Problem A (File Fix-it) also seems tailored for a particular family of languages, Unix shell scripts. So continuing the "1B-A tradition" would be appropriate. :p But which language will end up with the shortest code? Let us codegolf and see! Problem description (adapted from official page): You are given T test cases. Each test case contains N lines that list the full path of all directories currently existing on your computer. For example: /home/awesome /home/awesome/wheeeeeee /home/awesome/wheeeeeee/codegolfrocks /home/thecakeisalie Next, you are given M lines that list the full path of directories you would like to create. They are in the same format as the previous examples. You can create a directory using the mkdir command, but you can only do so if the parent directory already exists. For example, to create the directories /pyonpyon/fumufumu/yeahyeah and /pyonpyon/fumufumu/yeahyeahyeah, you would need to use mkdir four times: mkdir /pyonpyon mkdir /pyonpyon/fumufumu mkdir /pyonpyon/fumufumu/yeahyeah mkdir /pyonpyon/fumufumu/yeahyeahyeah For each test case, return the number of times you have to call mkdir to create all the directories you would like to create. Input Input consists of a text file whose first line contains the integer T, the number of test cases. The rest of the file contains the test cases. Each test case begins with a line containing the integers N and M, separated by a space. The next N lines contain the path of each directory currently existing on your computer (not including the root directory /). This is a concatenation of one or more non-empty lowercase alphanumeric strings, each preceded by a single /. The following M lines contain the path of each directory you would like to create. Output For each case, print one line containing Case #X: Y, where X is the case number and Y is the solution. Limits 1 = T = 100. 0 = N = 100. 1 = M = 100. Each path contains at most 100 characters. Every path appears only once in the list of directories already on your computer, or in the list of desired directories. However, a path may appear on both lists, as in example case #3 below. If a directory is in the list of directories already on your computer, its parent directory will also be listed, with the exception of the root directory /. The input file is at most 100,000 bytes long. Example Larger sample test cases may be downloaded here. Input: 3 0 2 /home/sparkle/pyon /home/sparkle/cakes 1 3 /z /z/y /z/x /y/y 2 1 /moo /moo/wheeeee /moo Output: Case #1: 4 Case #2: 4 Case #3: 0 Code Golf Please post your shortest code in any language that solves this problem. Input and output may be handled via stdin and stdout or by other files of your choice. Please include a disclaimer if your code has the potential to modify or delete existing files when executed. Winner will be the shortest solution (by byte count) in a language with an implementation existing prior to the start of Round 1B 2010.

    Read the article

  • VIsual Studio and Ajax Control Toolkit

    - by Steve
    In my web application VS 2008 solution, I have the AjaxControlToolkit.dll in my bin directory and a whole set of language directories for it (ar, cs, de,es, fr, he, etc...) I don't remember how the language directories got in there. If I am using other languages via the ACT, do I need these directories? If not, then I don't? When I do a rebuild solution, the dll (AjaxControlToolkit.resources.dll) in these directories disappear. If I need them, what do I need to do to keep them from being deleted during a rebuild?

    Read the article

  • Is there a glitch with opendir/readdir?

    - by George Edison
    Here is my PHP code: <?php // Enumerate the directories in styles $styles_dir = 'styles/'; if($handle = opendir($styles_dir)) { while(FALSE !== ($file = readdir($handle))) { echo $file . '(' . is_dir($file) . ')<br>'; } } ?> Here are the directories in styles: And here is the output: .(1) ..(1) forest() industrial() Why aren't forest and industrial directories?

    Read the article

  • How to tar multiple files in perl

    - by kpraveenreddy
    How can I tar multiple directories and also append files with some pattern like '.txt' and exclude some directories and exclude some patterns like '.exe' all into a single tar file. The main point is the number of directories are unknown(dynamic), so I need to loop through..I guess?

    Read the article

  • recursively add file extension to all files

    - by seengee
    I have a few directories and sub-directories containing files with no file extension. I want to add .jpg to all the files contained within these directories. I have seen bash scripts for changing the file extension but not for just adding one. It also needs to be recursive, can someone help please?

    Read the article

  • Minimal files to run a fully-functional PostgreSQL in Windows

    - by fxam
    I would like to bundle PostgreSQL into my application. I downloaded the PostgreSQL 9 beta zip without the installer. After extraction, there are 8 directories. I found out that at least the following directories are required to run PostgreSQL properly, at least under my experiments. bin lib share The question is, are the above three directories really sufficient to run a fullly functional PostgreSQL? Do I need the 'include' and 'symbols' directories? Also, can I remove 'share\locale' if I don't use these locales?

    Read the article

  • Cygwin diff won't exclude files if a directory is included in the pattern

    - by Dean Schulze
    I need to do a recursive diff using cygwin that needs do exclude all .xml files from certain directories, but not from other directories. According to the --help option I should be able to do this with with the --exclude=PAT option where PAT is a pattern describing the files I want to exclude from the diff. If I do this: diff -rw --exclude="classes/Services.xml" the diff does not ignore the Services.xml file in the classes directory. If I do this diff -rw --exclude="Services.xml" the diff does ignore the Services.xml file in all directories. I need to do something like this: diff -rw --exclude="*/generated/resources/client/*.xml" to ignore all .xml files in the directory */generated/resources/client/. Whenever I add path information to the --exclude pattern cygwin does not ignore the file(s) I've specified in the pattern. Is there some way to make cygwin diff recognize a pattern that identifies certain files in certain directories? It seems to not be able to handle any directory information at all.

    Read the article

  • JFileChooser select directory but show files

    - by Jeff Storey
    I feel like there should be a simple way to do this but I can't figure it out. I have a JFileChooser that allows the user to select directories. I want to show all the files in the directories to give the user some context, but only directories should be accepted as selections (maybe the Open button would be disabled when a file is selected). Is there an easy way of doing this?

    Read the article

  • How to find and fix performance problems in ORM powered applications

    - by FransBouma
    Once in a while we get requests about how to fix performance problems with our framework. As it comes down to following the same steps and looking into the same things every single time, I decided to write a blogpost about it instead, so more people can learn from this and solve performance problems in their O/R mapper powered applications. In some parts it's focused on LLBLGen Pro but it's also usable for other O/R mapping frameworks, as the vast majority of performance problems in O/R mapper powered applications are not specific for a certain O/R mapper framework. Too often, the developer looks at the wrong part of the application, trying to fix what isn't a problem in that part, and getting frustrated that 'things are so slow with <insert your favorite framework X here>'. I'm in the O/R mapper business for a long time now (almost 10 years, full time) and as it's a small world, we O/R mapper developers know almost all tricks to pull off by now: we all know what to do to make task ABC faster and what compromises (because there are almost always compromises) to deal with if we decide to make ABC faster that way. Some O/R mapper frameworks are faster in X, others in Y, but you can be sure the difference is mainly a result of a compromise some developers are willing to deal with and others aren't. That's why the O/R mapper frameworks on the market today are different in many ways, even though they all fetch and save entities from and to a database. I'm not suggesting there's no room for improvement in today's O/R mapper frameworks, there always is, but it's not a matter of 'the slowness of the application is caused by the O/R mapper' anymore. Perhaps query generation can be optimized a bit here, row materialization can be optimized a bit there, but it's mainly coming down to milliseconds. Still worth it if you're a framework developer, but it's not much compared to the time spend inside databases and in user code: if a complete fetch takes 40ms or 50ms (from call to entity object collection), it won't make a difference for your application as that 10ms difference won't be noticed. That's why it's very important to find the real locations of the problems so developers can fix them properly and don't get frustrated because their quest to get a fast, performing application failed. Performance tuning basics and rules Finding and fixing performance problems in any application is a strict procedure with four prescribed steps: isolate, analyze, interpret and fix, in that order. It's key that you don't skip a step nor make assumptions: these steps help you find the reason of a problem which seems to be there, and how to fix it or leave it as-is. Skipping a step, or when you assume things will be bad/slow without doing analysis will lead to the path of premature optimization and won't actually solve your problems, only create new ones. The most important rule of finding and fixing performance problems in software is that you have to understand what 'performance problem' actually means. Most developers will say "when a piece of software / code is slow, you have a performance problem". But is that actually the case? If I write a Linq query which will aggregate, group and sort 5 million rows from several tables to produce a resultset of 10 rows, it might take more than a couple of milliseconds before that resultset is ready to be consumed by other logic. If I solely look at the Linq query, the code consuming the resultset of the 10 rows and then look at the time it takes to complete the whole procedure, it will appear to me to be slow: all that time taken to produce and consume 10 rows? But if you look closer, if you analyze and interpret the situation, you'll see it does a tremendous amount of work, and in that light it might even be extremely fast. With every performance problem you encounter, always do realize that what you're trying to solve is perhaps not a technical problem at all, but a perception problem. The second most important rule you have to understand is based on the old saying "Penny wise, Pound Foolish": the part which takes e.g. 5% of the total time T for a given task isn't worth optimizing if you have another part which takes a much larger part of the total time T for that same given task. Optimizing parts which are relatively insignificant for the total time taken is not going to bring you better results overall, even if you totally optimize that part away. This is the core reason why analysis of the complete set of application parts which participate in a given task is key to being successful in solving performance problems: No analysis -> no problem -> no solution. One warning up front: hunting for performance will always include making compromises. Fast software can be made maintainable, but if you want to squeeze as much performance out of your software, you will inevitably be faced with the dilemma of compromising one or more from the group {readability, maintainability, features} for the extra performance you think you'll gain. It's then up to you to decide whether it's worth it. In almost all cases it's not. The reason for this is simple: the vast majority of performance problems can be solved by implementing the proper algorithms, the ones with proven Big O-characteristics so you know the performance you'll get plus you know the algorithm will work. The time taken by the algorithm implementing code is inevitable: you already implemented the best algorithm. You might find some optimizations on the technical level but in general these are minor. Let's look at the four steps to see how they guide us through the quest to find and fix performance problems. Isolate The first thing you need to do is to isolate the areas in your application which are assumed to be slow. For example, if your application is a web application and a given page is taking several seconds or even minutes to load, it's a good candidate to check out. It's important to start with the isolate step because it allows you to focus on a single code path per area with a clear begin and end and ignore the rest. The rest of the steps are taken per identified problematic area. Keep in mind that isolation focuses on tasks in an application, not code snippets. A task is something that's started in your application by either another task or the user, or another program, and has a beginning and an end. You can see a task as a piece of functionality offered by your application.  Analyze Once you've determined the problem areas, you have to perform analysis on the code paths of each area, to see where the performance problems occur and which areas are not the problem. This is a multi-layered effort: an application which uses an O/R mapper typically consists of multiple parts: there's likely some kind of interface (web, webservice, windows etc.), a part which controls the interface and business logic, the O/R mapper part and the RDBMS, all connected with either a network or inter-process connections provided by the OS or other means. Each of these parts, including the connectivity plumbing, eat up a part of the total time it takes to complete a task, e.g. load a webpage with all orders of a given customer X. To understand which parts participate in the task / area we're investigating and how much they contribute to the total time taken to complete the task, analysis of each participating task is essential. Start with the code you wrote which starts the task, analyze the code and track the path it follows through your application. What does the code do along the way, verify whether it's correct or not. Analyze whether you have implemented the right algorithms in your code for this particular area. Remember we're looking at one area at a time, which means we're ignoring all other code paths, just the code path of the current problematic area, from begin to end and back. Don't dig in and start optimizing at the code level just yet. We're just analyzing. If your analysis reveals big architectural stupidity, it's perhaps a good idea to rethink the architecture at this point. For the rest, we're analyzing which means we collect data about what could be wrong, for each participating part of the complete application. Reviewing the code you wrote is a good tool to get deeper understanding of what is going on for a given task but ultimately it lacks precision and overview what really happens: humans aren't good code interpreters, computers are. We therefore need to utilize tools to get deeper understanding about which parts contribute how much time to the total task, triggered by which other parts and for example how many times are they called. There are two different kind of tools which are necessary: .NET profilers and O/R mapper / RDBMS profilers. .NET profiling .NET profilers (e.g. dotTrace by JetBrains or Ants by Red Gate software) show exactly which pieces of code are called, how many times they're called, and the time it took to run that piece of code, at the method level and sometimes even at the line level. The .NET profilers are essential tools for understanding whether the time taken to complete a given task / area in your application is consumed by .NET code, where exactly in your code, the path to that code, how many times that code was called by other code and thus reveals where hotspots are located: the areas where a solution can be found. Importantly, they also reveal which areas can be left alone: remember our penny wise pound foolish saying: if a profiler reveals that a group of methods are fast, or don't contribute much to the total time taken for a given task, ignore them. Even if the code in them is perhaps complex and looks like a candidate for optimization: you can work all day on that, it won't matter.  As we're focusing on a single area of the application, it's best to start profiling right before you actually activate the task/area. Most .NET profilers support this by starting the application without starting the profiling procedure just yet. You navigate to the particular part which is slow, start profiling in the profiler, in your application you perform the actions which are considered slow, and afterwards you get a snapshot in the profiler. The snapshot contains the data collected by the profiler during the slow action, so most data is produced by code in the area to investigate. This is important, because it allows you to stay focused on a single area. O/R mapper and RDBMS profiling .NET profilers give you a good insight in the .NET side of things, but not in the RDBMS side of the application. As this article is about O/R mapper powered applications, we're also looking at databases, and the software making it possible to consume the database in your application: the O/R mapper. To understand which parts of the O/R mapper and database participate how much to the total time taken for task T, we need different tools. There are two kind of tools focusing on O/R mappers and database performance profiling: O/R mapper profilers and RDBMS profilers. For O/R mapper profilers, you can look at LLBLGen Prof by hibernating rhinos or the Linq to Sql/LLBLGen Pro profiler by Huagati. Hibernating rhinos also have profilers for other O/R mappers like NHibernate (NHProf) and Entity Framework (EFProf) and work the same as LLBLGen Prof. For RDBMS profilers, you have to look whether the RDBMS vendor has a profiler. For example for SQL Server, the profiler is shipped with SQL Server, for Oracle it's build into the RDBMS, however there are also 3rd party tools. Which tool you're using isn't really important, what's important is that you get insight in which queries are executed during the task / area we're currently focused on and how long they took. Here, the O/R mapper profilers have an advantage as they collect the time it took to execute the query from the application's perspective so they also collect the time it took to transport data across the network. This is important because a query which returns a massive resultset or a resultset with large blob/clob/ntext/image fields takes more time to get transported across the network than a small resultset and a database profiler doesn't take this into account most of the time. Another tool to use in this case, which is more low level and not all O/R mappers support it (though LLBLGen Pro and NHibernate as well do) is tracing: most O/R mappers offer some form of tracing or logging system which you can use to collect the SQL generated and executed and often also other activity behind the scenes. While tracing can produce a tremendous amount of data in some cases, it also gives insight in what's going on. Interpret After we've completed the analysis step it's time to look at the data we've collected. We've done code reviews to see whether we've done anything stupid and which parts actually take place and if the proper algorithms have been implemented. We've done .NET profiling to see which parts are choke points and how much time they contribute to the total time taken to complete the task we're investigating. We've performed O/R mapper profiling and RDBMS profiling to see which queries were executed during the task, how many queries were generated and executed and how long they took to complete, including network transportation. All this data reveals two things: which parts are big contributors to the total time taken and which parts are irrelevant. Both aspects are very important. The parts which are irrelevant (i.e. don't contribute significantly to the total time taken) can be ignored from now on, we won't look at them. The parts which contribute a lot to the total time taken are important to look at. We now have to first look at the .NET profiler results, to see whether the time taken is consumed in our own code, in .NET framework code, in the O/R mapper itself or somewhere else. For example if most of the time is consumed by DbCommand.ExecuteReader, the time it took to complete the task is depending on the time the data is fetched from the database. If there was just 1 query executed, according to tracing or O/R mapper profilers / RDBMS profilers, check whether that query is optimal, uses indexes or has to deal with a lot of data. Interpret means that you follow the path from begin to end through the data collected and determine where, along the path, the most time is contributed. It also means that you have to check whether this was expected or is totally unexpected. My previous example of the 10 row resultset of a query which groups millions of rows will likely reveal that a long time is spend inside the database and almost no time is spend in the .NET code, meaning the RDBMS part contributes the most to the total time taken, the rest is compared to that time, irrelevant. Considering the vastness of the source data set, it's expected this will take some time. However, does it need tweaking? Perhaps all possible tweaks are already in place. In the interpret step you then have to decide that further action in this area is necessary or not, based on what the analysis results show: if the analysis results were unexpected and in the area where the most time is contributed to the total time taken is room for improvement, action should be taken. If not, you can only accept the situation and move on. In all cases, document your decision together with the analysis you've done. If you decide that the perceived performance problem is actually expected due to the nature of the task performed, it's essential that in the future when someone else looks at the application and starts asking questions you can answer them properly and new analysis is only necessary if situations changed. Fix After interpreting the analysis results you've concluded that some areas need adjustment. This is the fix step: you're actively correcting the performance problem with proper action targeted at the real cause. In many cases related to O/R mapper powered applications it means you'll use different features of the O/R mapper to achieve the same goal, or apply optimizations at the RDBMS level. It could also mean you apply caching inside your application (compromise memory consumption over performance) to avoid unnecessary re-querying data and re-consuming the results. After applying a change, it's key you re-do the analysis and interpretation steps: compare the results and expectations with what you had before, to see whether your actions had any effect or whether it moved the problem to a different part of the application. Don't fall into the trap to do partly analysis: do the full analysis again: .NET profiling and O/R mapper / RDBMS profiling. It might very well be that the changes you've made make one part faster but another part significantly slower, in such a way that the overall problem hasn't changed at all. Performance tuning is dealing with compromises and making choices: to use one feature over the other, to accept a higher memory footprint, to go away from the strict-OO path and execute queries directly onto the RDBMS, these are choices and compromises which will cross your path if you want to fix performance problems with respect to O/R mappers or data-access and databases in general. In most cases it's not a big issue: alternatives are often good choices too and the compromises aren't that hard to deal with. What is important is that you document why you made a choice, a compromise: which analysis data, which interpretation led you to the choice made. This is key for good maintainability in the years to come. Most common performance problems with O/R mappers Below is an incomplete list of common performance problems related to data-access / O/R mappers / RDBMS code. It will help you with fixing the hotspots you found in the interpretation step. SELECT N+1: (Lazy-loading specific). Lazy loading triggered performance bottlenecks. Consider a list of Orders bound to a grid. You have a Field mapped onto a related field in Order, Customer.CompanyName. Showing this column in the grid will make the grid fetch (indirectly) for each row the Customer row. This means you'll get for the single list not 1 query (for the orders) but 1+(the number of orders shown) queries. To solve this: use eager loading using a prefetch path to fetch the customers with the orders. SELECT N+1 is easy to spot with an O/R mapper profiler or RDBMS profiler: if you see a lot of identical queries executed at once, you have this problem. Prefetch paths using many path nodes or sorting, or limiting. Eager loading problem. Prefetch paths can help with performance, but as 1 query is fetched per node, it can be the number of data fetched in a child node is bigger than you think. Also consider that data in every node is merged on the client within the parent. This is fast, but it also can take some time if you fetch massive amounts of entities. If you keep fetches small, you can use tuning parameters like the ParameterizedPrefetchPathThreshold setting to get more optimal queries. Deep inheritance hierarchies of type Target Per Entity/Type. If you use inheritance of type Target per Entity / Type (each type in the inheritance hierarchy is mapped onto its own table/view), fetches will join subtype- and supertype tables in many cases, which can lead to a lot of performance problems if the hierarchy has many types. With this problem, keep inheritance to a minimum if possible, or switch to a hierarchy of type Target Per Hierarchy, which means all entities in the inheritance hierarchy are mapped onto the same table/view. Of course this has its own set of drawbacks, but it's a compromise you might want to take. Fetching massive amounts of data by fetching large lists of entities. LLBLGen Pro supports paging (and limiting the # of rows returned), which is often key to process through large sets of data. Use paging on the RDBMS if possible (so a query is executed which returns only the rows in the page requested). When using paging in a web application, be sure that you switch server-side paging on on the datasourcecontrol used. In this case, paging on the grid alone is not enough: this can lead to fetching a lot of data which is then loaded into the grid and paged there. Keep note that analyzing queries for paging could lead to the false assumption that paging doesn't occur, e.g. when the query contains a field of type ntext/image/clob/blob and DISTINCT can't be applied while it should have (e.g. due to a join): the datareader will do DISTINCT filtering on the client. this is a little slower but it does perform paging functionality on the data-reader so it won't fetch all rows even if the query suggests it does. Fetch massive amounts of data because blob/clob/ntext/image fields aren't excluded. LLBLGen Pro supports field exclusion for queries. You can exclude fields (also in prefetch paths) per query to avoid fetching all fields of an entity, e.g. when you don't need them for the logic consuming the resultset. Excluding fields can greatly reduce the amount of time spend on data-transport across the network. Use this optimization if you see that there's a big difference between query execution time on the RDBMS and the time reported by the .NET profiler for the ExecuteReader method call. Doing client-side aggregates/scalar calculations by consuming a lot of data. If possible, try to formulate a scalar query or group by query using the projection system or GetScalar functionality of LLBLGen Pro to do data consumption on the RDBMS server. It's far more efficient to process data on the RDBMS server than to first load it all in memory, then traverse the data in-memory to calculate a value. Using .ToList() constructs inside linq queries. It might be you use .ToList() somewhere in a Linq query which makes the query be run partially in-memory. Example: var q = from c in metaData.Customers.ToList() where c.Country=="Norway" select c; This will actually fetch all customers in-memory and do an in-memory filtering, as the linq query is defined on an IEnumerable<T>, and not on the IQueryable<T>. Linq is nice, but it can often be a bit unclear where some parts of a Linq query might run. Fetching all entities to delete into memory first. To delete a set of entities it's rather inefficient to first fetch them all into memory and then delete them one by one. It's more efficient to execute a DELETE FROM ... WHERE query on the database directly to delete the entities in one go. LLBLGen Pro supports this feature, and so do some other O/R mappers. It's not always possible to do this operation in the context of an O/R mapper however: if an O/R mapper relies on a cache, these kind of operations are likely not supported because they make it impossible to track whether an entity is actually removed from the DB and thus can be removed from the cache. Fetching all entities to update with an expression into memory first. Similar to the previous point: it is more efficient to update a set of entities directly with a single UPDATE query using an expression instead of fetching the entities into memory first and then updating the entities in a loop, and afterwards saving them. It might however be a compromise you don't want to take as it is working around the idea of having an object graph in memory which is manipulated and instead makes the code fully aware there's a RDBMS somewhere. Conclusion Performance tuning is almost always about compromises and making choices. It's also about knowing where to look and how the systems in play behave and should behave. The four steps I provided should help you stay focused on the real problem and lead you towards the solution. Knowing how to optimally use the systems participating in your own code (.NET framework, O/R mapper, RDBMS, network/services) is key for success as well as knowing what's going on inside the application you built. I hope you'll find this guide useful in tracking down performance problems and dealing with them in a useful way.  

    Read the article

  • How to delete files and folders that cannot be deleted?

    - by glenneroo
    I have a backup copy of a previous Windows' Documents and Settings folder which only contains my original user and within 2 more directories: Favorites and Local Settings. When I try to delete Local Settings I get this error: When I try to delete Favorites, I get this error: I ran this in a cmd shell: attrib *.* -r -a -s -h /s ...but it did not help, nor did it return any errors/warnings. I used Unlocker v1.8.5 and LockHunter repeatedly at multiple levels to see if any files are in use, but both always say: No Files Locked. Update #1: I was able to rename the directory, which now gives me this warning before (trying to) delete: If I press Yes (or Yes to All) then I get this error: Update #2: I let chkdsk /f run which required a reboot since it's on my primary system partition. During Stage 2 scanning, I received about 40 of these: Deleting an index entry from index $0 of file 25. ...followed by: Deleting index entry cookies in index $I30 of file 37576. ...but I still get the first error dialog above when trying to delete. I ran chkdsk again, this time: chkdsk /f /r. Produced no messages. Same result when deleting. Update #3: Digging deeper, the 99 is the name of one of many directories located deep in here: C:\Documents and Settings.OLD\User\Local Settings\Application Data\Microsoft\Messenger\[email protected]\SharingMetadata\[email protected]\DFSR\Staging\CS{D4E4AE55-B5E2-F03B-5189-6C4DA6E41788}\ Inside each of those directories were files with names such as: 2300-{C93D01AC-0739-4FD9-88C7-13D2F21A208E}-v2300-{C93D01AC-0739-4FD9-88C7-13D2F21A208E}-v2300-Downloaded.frx I noticed that, unlike all the directories, I couldn't rename any of these files. I also noticed that the file + dir names were extremely long: Original directory = 194 characters Filenames = 100+ characters Together the length exceeds the 255-char limit which is bad and would explain the error message I posted in Update #1. Partial Solution: Rename all directories until the total path length is less than 100. Afterwards I was able to rename the .frx files, not to mention delete everything inside the Local Settings directory. This is only a partial solution because these (empty) directories are still not deleteable, C:\1\2\Favorites\Wien\What To Do.. C:\1\2\Favorites\Photography\FIRE Same error as above: Here is what Explorer properties shows for both folders: Update #4 (another partial solution): Using harrymc's answer combined with thoroughly reading through this amazing MS-KB article which contains nearly everyone's idea and then some, inconspicuously titled: You cannot delete a file or a folder on an NTFS file system volume. I was able to delete the 2nd folder C:\1\2\Favorites\Photography\FIRE - the problem being that there was an invisible trailing space at the end. I got lucky when I did an auto-complete whilst playing around with the del "\\?\<path>" command which he suggested. NOTE: A normal del did NOT work, nor did deleting from explorer. Now all that is left is the first directory C:\1\2\Favorites\Wien\What To Do.. (yes I tried endlessly with multiple combinations of the above solution ;) Keep 'em coming! =)

    Read the article

  • The Product Owner

    - by Robert May
    In a previous post, I outlined the rules of Scrum.  This post details one of those rules. Picking a most important part of Scrum is difficult.  All of the rules are required, but if there were one rule that is “more” required that every other rule, its having a good Product Owner.  Simply put, the Product Owner can make or break the project. Duties of the Product Owner A Product Owner has many duties and responsibilities.  I’ll talk about each of these duties in detail below. A Product Owner: Discovers and records stories for the backlog. Prioritizes stories in the Product Backlog, Release Backlog and Iteration Backlog. Determines Release dates and Iteration Dates. Develops story details and helps the team understand those details. Helps QA to develop acceptance tests. Interact with the Customer to make sure that the product is meeting the customer’s needs. Discovers and Records Stories for the Backlog When I do Scrum, I always use User Stories as the means for capturing functionality that’s required in the system.  Some people will use Use Cases, but the same rule applies.  The Product Owner has the ultimate responsibility for figuring out what functionality will be in the system.  Many different mechanisms for capturing this input can be used.  User interviews are great, but all sources should be considered, including talking with Customer Support types.  Often, they hear what users are struggling with the most and are a great source for stories that can make the application easier to use. Care should be taken when soliciting user stories from technical types such as programmers and the people that manage them.  They will almost always give stories that are very technical in nature and may not have a direct benefit for the end user.  Stories are about adding value to the company.  If the stories don’t have direct benefit to the end user, the Product Owner should question whether or not the story should be implemented.  In general, technical stories should be included as tasks in User Stories.  Technical stories are often needed, but the ultimate value to the user is in user based functionality, so technical stories should be considered nothing more than overhead in providing that user functionality. Until the iteration prior to development, stories should be nothing more than short, one line placeholders. An exercise called Story Planning can be used to brainstorm and come up with stories.  I’ll save the description of this activity for another blog post. For more information on User Stories, please read the book User Stories Applied by Mike Cohn. Prioritizes Stories in the Product Backlog, Release Backlog and Iteration Backlog Prioritization of stories is one of the most difficult tasks that a Product Owner must do.  A key concept of Scrum done right is the need to have the team working from a single set of prioritized stories.  If the team does not have a single set of prioritized stories, Scrum will likely fail at your organization.  The Product Owner is the ONLY person who has the responsibility to prioritize that list.  The Product Owner must be very diplomatic and sincerely listen to the people around him so that he can get the priorities correct. Just listening will still not yield the proper priorities.  Care must also be taken to ensure that Return on Investment is also considered.  Ultimately, determining which stories give the most value to the company for the least cost is the most important factor in determining priorities.  Product Owners should be willing to look at cold, hard numbers to determine the order for stories.  Even when many people want a feature, if that features is costly to develop, it may not have as high of a return on investment as features that are cheaper, but not as popular. The act of prioritization often causes conflict in an environment.  Customer Service thinks that feature X is the most important, because it will stop people from calling.  Operations thinks that feature Y is the most important, because it will stop servers from crashing.  Developers think that feature Z is most important because it will make writing software much easier for them.  All of these are useful goals, but the team can have only one list of items, and each item must have a priority that is different from all other stories.  The Product Owner will determine which feature gives the best return on investment and the other features will have to wait their turn, which means that someone will not have their top priority feature implemented first. A weak Product Owner will refuse to do prioritization.  I’ve heard from multiple Product Owners the following phrase, “Well, it’s all got to be done, so what does it matter what order we do it in?”  If your product owner is using this phrase, you need a new Product Owner.  Order is VERY important.  In Scrum, every release is potentially shippable.  If the wrong priority items are developed, then the value added in each release isn’t what it should be.  Additionally, the Product Owner with this mindset doesn’t understand Agile.  A product is NEVER finished, until the company has decided that it is no longer a going concern and they are no longer going to sell the product.  Therefore, prioritization isn’t an event, its something that continues every day.  The logical extension of the phrase “It’s all got to be done” is that you will never ship your product, since a product is never “done.”  Once stories have been prioritized, assigning them to the Release Backlog and the Iteration Backlog becomes relatively simple.  The top priority items are copied into the respective backlogs in order and the task is complete.  The team does have the right to shuffle things around a little in the iteration backlog.  For example, they may determine that working on story C with story A is appropriate because they’re related, even though story B is technically a higher priority than story C.  Or they may decide that story B is too big to complete in the time available after Story A has tasks created, so they’ll work on Story C since it’s smaller.  They can’t, however, go deep into the backlog to pick stories to implement.  The team and the Product Owner should work together to determine what’s best for the company. Prioritization is time consuming, but its one of the most important things a Product Owner does. Determines Release Dates and Iteration Dates Product owners are responsible for determining release dates for a product.  A common misconception that Product Owners have is that every “release” needs to correspond with an actual release to customers.  This is not the case.  In general, releases should be no more than 3 months long.  You  may decide to release the product to the customers, and many companies do release the product to customers, but it may also be an internal release. If a release date is too far away, developers will fall into the trap of not feeling a sense of urgency.  The date is far enough away that they don’t need to give the release their full attention.  Additionally, important tasks, such as performance tuning, regression testing, user documentation, and release preparation, will not happen regularly, making them much more difficult and time consuming to do.  The more frequently you do these tasks, the easier they are to accomplish. The Product Owner will be a key participant in determining whether or not a release should be sent out to the customers.  The determination should be made on whether or not the features contained in the release are valuable enough  and complete enough that the customers will see real value in the release.  Often, some features will take more than three months to get them to a state where they qualify for a release or need additional supporting features to be released.  The product owner has the right to make this determination. In addition to release dates, the Product Owner also will help determine iteration dates.  In general, an iteration length should be chosen and the team should follow that iteration length for an extended period of time.  If the iteration length is changed every iteration, you’re not doing Scrum.  Iteration lengths help the team and company get into a rhythm of developing quality software.  Iterations should be somewhere between 2 and 4 weeks in length.  Any shorter, and significant software will likely not be developed.  Any longer, and the team won’t feel urgency and planning will become very difficult. Iterations may not be extended during the iteration.  Companies where Scrum isn’t really followed will often use this as a strategy to complete all stories.  They don’t want to face the harsh reality of what their true performance is, and looking good is more important than seeking visibility and improving the process and team.  Companies like this typically don’t allow failure.  This is unhealthy.  Failure is part of life and unless we learn from it, we can’t improve.  I would much rather see a team push out stories to the next iteration and then have healthy discussions about why they failed rather than extend the iteration and not deal with the core problems. If iteration length varies, retrospectives become more difficult.  For example, evaluating the performance of the team’s estimation efforts becomes much more difficult if the iteration length varies.  Also, the team must have a velocity measurement.  If the iteration length varies, measuring velocity becomes impossible and upper management no longer will have the ability to evaluate the teams performance.  People external to the team will no longer have the ability to determine when key features are likely to be developed.  Variable iterations cause the entire company to fail and likely cause Scrum to fail at an organization. Develops Story Details and Helps the Team Understand Those Details A key concept in Scrum is that the stories are nothing more than a placeholder for a conversation.  Stories should be nothing more than short, one line statements about the functionality.  The team will then converse with the Product Owner about the details about that story.  The product owner needs to have a very good idea about what the details of the story are and needs to be able to help the team understand those details. Too often, we see this requirement as being translated into the need for comprehensive documentation about the story, including old fashioned requirements documentation.  The team should only develop the documentation that is required and should not develop documentation that is only created because their is a process to do so. In general, what we see that works best is the iteration before a team starts development work on a story, the Product Owner, with other appropriate business analysts, will develop the details of that story.  They’ll figure out what business rules are required, potentially make paper prototypes or other light weight mock-ups, and they seek to understand the story and what is implied.  Note that the time allowed for this task is deliberately short.  The Product Owner only has a single iteration to develop all of the stories for the next iteration. If more than one iteration is used, I’ve found that teams will end up with Big Design Up Front and traditional requirements documents.  This is a waste of time, since the team will need to then have discussions with the Product Owner to figure out what the requirements document says.  Instead of this, skip making the pretty pictures and detailing the nuances of the requirements and build only what is minimally needed by the team to do development.  If something comes up during development, you can address it at that time and figure out what you want to do.  The goal is to keep things as light weight as possible so that everyone can move as quickly as possible. Helps QA to Develop Acceptance Tests In Scrum, no story can be counted until it is accepted by QA.  Because of this, acceptance tests are very important to the team.  In general, acceptance tests need to be developed prior to the iteration or at the very beginning of the iteration so that the team can make sure that the tasks that they develop will fulfill the acceptance criteria. The Product Owner will help the team, including QA, understand what will make the story acceptable.  Note that the Product Owner needs to be careful about specifying that the feature will work “Perfectly” at the end of the iteration.  In general, features are developed a little bit at a time, so only the bit that is being developed should be considered as necessary for acceptance. A weak Product Owner will make statements like “Do it right the first time.”  Not only are these statements damaging to the team (like they would try to do it WRONG the first time . . .), they’re also ignoring the iterative nature of Scrum.  Additionally, a weak product owner will seek to add scope in the acceptance testing.  For example, they will refuse to determine acceptance at the beginning of the iteration, and then, after the team has planned and committed to the iteration, they will expand scope by defining acceptance.  This often causes the team to miss the iteration because scope that wasn’t planned on is included.  There are ways that the team can mitigate this problem.  For example, include extra “Product Owner” time to deal with the uncertainty that you know will be introduced by the Product Owner.  This will slow the perceived velocity of the team and is not ideal, since they’ll be doing more work than they get credit for. Interact with the Customer to Make Sure that the Product is Meeting the Customer’s Needs Once development is complete, what the team has worked on should be put in front of real live people to see if it meets the needs of the customer.  One of the great things about Agile is that if something doesn’t work, we can revisit it in a future iteration!  This frees up the team to make the best decision now and know that if that decision proves to be incorrect, the team can revisit it and change that decision. Features are about adding value to the customer, so if the customer doesn’t find them useful, then having the team make tweaks is valuable.  In general, most software will be 80 to 90 percent “right” after the initial round and only minor tweaks are required.  If proper coding standards are followed, these tweaks are usually minor and easy to accomplish.  Product Owners that are doing a good job will encourage real users to see and use the software, since they know that they are trying to add value to the customer. Poor product owners will think that they know the answers already, that their customers are silly and do stupid things and that they don’t need customer input.  If you have a product owner that is afraid to show the team’s work to real customers, you probably need a different product owner. Up Next, “Who Makes a Good Product Owner.” Followed by, “Messing with the Team.” Technorati Tags: Scrum,Product Owner

    Read the article

  • Using Article Sites For SEO Google Ranking

    Article marketing is one of the highly awarding methods for online marketing and it can also help you achieve good SEO Google Ranking. With the various article directories you can get a good amount of marketing done however with a little more focus and attention you will be able to use all features that are offered by these directories.

    Read the article

  • IrrKlang with Ogre

    - by Vinnie
    I'm trying to set up sound in my Ogre3D project. I have installed irrKlang 1.4.0 and added it's include and lib directories to my projects VC++ Include and Library directories, but I'm still getting a Linker error when I attempt to build. Any suggestions? (Error 4007 error LNK2019: unresolved external symbol "__declspec(dllimport) class irrklang::ISoundEngine * __cdecl irrklang::createIrrKlangDevice(enum irrklang::E_SOUND_OUTPUT_DRIVER,int,char const *,char const *)" (_imp?createIrrKlangDevice@irrklang@@YAPAVISoundEngine@1@W4E_SOUND_OUTPUT_DRIVER@1@HPBD1@Z) referenced in function "public: __thiscall SoundManager::SoundManager(void)" (??0SoundManager@@QAE@XZ)

    Read the article

  • Manual Submission Vs Automated Submission

    Directory submission involves submitting a website to web directories. There are many types of directories including niche directory, general directory, and regional directory. Submitting your website to directory can help to increase the exposure of the website.

    Read the article

< Previous Page | 33 34 35 36 37 38 39 40 41 42 43 44  | Next Page >