From 5c976f9ece819df53c80656280d959df1e2a2328 Mon Sep 17 00:00:00 2001 From: davegandy Date: Thu, 20 Dec 2012 08:09:28 -0500 Subject: [PATCH] first rough pass at 3.0 --- docs/assets/css/site.css | 3151 +++++++++++------ docs/assets/font/fontawesome-webfont.eot | Bin 38708 -> 25791 bytes docs/assets/font/fontawesome-webfont.svg | 496 +-- docs/assets/font/fontawesome-webfont.ttf | Bin 68476 -> 53272 bytes docs/assets/font/fontawesome-webfont.woff | Bin 41752 -> 29160 bytes docs/assets/less/font-awesome.less | 4 +- docs/assets/less/mixins.less | 2 +- docs/assets/less/site.less | 87 +- docs/assets/less/twbs-222/accordion.less | 34 + docs/assets/less/twbs-222/alerts.less | 79 + docs/assets/less/twbs-222/bootstrap.less | 63 + docs/assets/less/twbs-222/breadcrumbs.less | 24 + docs/assets/less/twbs-222/button-groups.less | 227 ++ docs/assets/less/twbs-222/buttons.less | 230 ++ docs/assets/less/twbs-222/carousel.less | 131 + docs/assets/less/twbs-222/close.less | 31 + docs/assets/less/twbs-222/code.less | 61 + .../less/twbs-222/component-animations.less | 22 + docs/assets/less/twbs-222/dropdowns.less | 233 ++ docs/assets/less/twbs-222/forms.less | 687 ++++ docs/assets/less/twbs-222/grid.less | 21 + docs/assets/less/twbs-222/hero-unit.less | 25 + docs/assets/less/twbs-222/labels-badges.less | 82 + docs/assets/less/twbs-222/layouts.less | 16 + docs/assets/less/twbs-222/media.less | 55 + docs/assets/less/twbs-222/mixins.less | 686 ++++ docs/assets/less/twbs-222/modals.less | 95 + docs/assets/less/twbs-222/navbar.less | 490 +++ docs/assets/less/twbs-222/navs.less | 391 ++ docs/assets/less/twbs-222/pager.less | 41 + docs/assets/less/twbs-222/pagination.less | 121 + docs/assets/less/twbs-222/popovers.less | 129 + docs/assets/less/twbs-222/progress-bars.less | 122 + docs/assets/less/twbs-222/reset.less | 216 ++ .../less/twbs-222/responsive-1200px-min.less | 28 + .../less/twbs-222/responsive-767px-max.less | 193 + .../less/twbs-222/responsive-768px-979px.less | 19 + .../less/twbs-222/responsive-navbar.less | 185 + .../less/twbs-222/responsive-utilities.less | 43 + docs/assets/less/twbs-222/responsive.less | 57 + docs/assets/less/twbs-222/scaffolding.less | 52 + docs/assets/less/twbs-222/sprites.less | 193 + docs/assets/less/twbs-222/tables.less | 237 ++ docs/assets/less/twbs-222/tests/buttons.html | 139 + docs/assets/less/twbs-222/tests/css-tests.css | 139 + .../assets/less/twbs-222/tests/css-tests.html | 1345 +++++++ .../less/twbs-222/tests/forms-responsive.html | 71 + docs/assets/less/twbs-222/tests/forms.html | 179 + .../less/twbs-222/tests/navbar-fixed-top.html | 104 + .../twbs-222/tests/navbar-static-top.html | 107 + docs/assets/less/twbs-222/tests/navbar.html | 107 + docs/assets/less/twbs-222/thumbnails.less | 52 + docs/assets/less/twbs-222/tooltip.less | 70 + docs/assets/less/twbs-222/type.less | 235 ++ docs/assets/less/twbs-222/utilities.less | 30 + docs/assets/less/twbs-222/variables.less | 301 ++ docs/assets/less/twbs-222/wells.less | 29 + docs/assets/less/variables.less | 151 +- docs/index.html | 65 +- 59 files changed, 10689 insertions(+), 1494 deletions(-) create mode 100755 docs/assets/less/twbs-222/accordion.less create mode 100755 docs/assets/less/twbs-222/alerts.less create mode 100755 docs/assets/less/twbs-222/bootstrap.less create mode 100755 docs/assets/less/twbs-222/breadcrumbs.less create mode 100755 docs/assets/less/twbs-222/button-groups.less create mode 100755 docs/assets/less/twbs-222/buttons.less create mode 100755 docs/assets/less/twbs-222/carousel.less create mode 100755 docs/assets/less/twbs-222/close.less create mode 100755 docs/assets/less/twbs-222/code.less create mode 100755 docs/assets/less/twbs-222/component-animations.less create mode 100755 docs/assets/less/twbs-222/dropdowns.less create mode 100755 docs/assets/less/twbs-222/forms.less create mode 100755 docs/assets/less/twbs-222/grid.less create mode 100755 docs/assets/less/twbs-222/hero-unit.less create mode 100755 docs/assets/less/twbs-222/labels-badges.less create mode 100755 docs/assets/less/twbs-222/layouts.less create mode 100755 docs/assets/less/twbs-222/media.less create mode 100755 docs/assets/less/twbs-222/mixins.less create mode 100755 docs/assets/less/twbs-222/modals.less create mode 100755 docs/assets/less/twbs-222/navbar.less create mode 100755 docs/assets/less/twbs-222/navs.less create mode 100755 docs/assets/less/twbs-222/pager.less create mode 100755 docs/assets/less/twbs-222/pagination.less create mode 100755 docs/assets/less/twbs-222/popovers.less create mode 100755 docs/assets/less/twbs-222/progress-bars.less create mode 100755 docs/assets/less/twbs-222/reset.less create mode 100755 docs/assets/less/twbs-222/responsive-1200px-min.less create mode 100755 docs/assets/less/twbs-222/responsive-767px-max.less create mode 100755 docs/assets/less/twbs-222/responsive-768px-979px.less create mode 100755 docs/assets/less/twbs-222/responsive-navbar.less create mode 100755 docs/assets/less/twbs-222/responsive-utilities.less create mode 100755 docs/assets/less/twbs-222/responsive.less create mode 100755 docs/assets/less/twbs-222/scaffolding.less create mode 100755 docs/assets/less/twbs-222/sprites.less create mode 100755 docs/assets/less/twbs-222/tables.less create mode 100755 docs/assets/less/twbs-222/tests/buttons.html create mode 100755 docs/assets/less/twbs-222/tests/css-tests.css create mode 100755 docs/assets/less/twbs-222/tests/css-tests.html create mode 100755 docs/assets/less/twbs-222/tests/forms-responsive.html create mode 100755 docs/assets/less/twbs-222/tests/forms.html create mode 100755 docs/assets/less/twbs-222/tests/navbar-fixed-top.html create mode 100755 docs/assets/less/twbs-222/tests/navbar-static-top.html create mode 100755 docs/assets/less/twbs-222/tests/navbar.html create mode 100755 docs/assets/less/twbs-222/thumbnails.less create mode 100755 docs/assets/less/twbs-222/tooltip.less create mode 100755 docs/assets/less/twbs-222/type.less create mode 100755 docs/assets/less/twbs-222/utilities.less create mode 100755 docs/assets/less/twbs-222/variables.less create mode 100755 docs/assets/less/twbs-222/wells.less diff --git a/docs/assets/css/site.css b/docs/assets/css/site.css index 6db5c84c0..7bd8e6ca3 100644 --- a/docs/assets/css/site.css +++ b/docs/assets/css/site.css @@ -1,5 +1,5 @@ /*! - * Bootstrap v2.0.3 + * Bootstrap v2.2.2 * * Copyright 2012 Twitter, Inc * Licensed under the Apache License v2.0 @@ -57,11 +57,25 @@ sub { bottom: -0.25em; } img { + /* Responsive images (ensure images don't scale beyond their parents) */ + max-width: 100%; + /* Part 1: Set a maxium relative to the parent */ + + width: auto\9; + /* IE7-8 need help adjusting responsive images */ + + height: auto; + /* Part 2: Scale the height according to the width, otherwise you get stretching */ + vertical-align: middle; border: 0; -ms-interpolation-mode: bicubic; } +#map_canvas img, +.google-maps img { + max-width: none; +} button, input, select, @@ -81,11 +95,21 @@ input::-moz-focus-inner { border: 0; } button, -input[type="button"], +html input[type="button"], input[type="reset"], input[type="submit"] { - cursor: pointer; -webkit-appearance: button; + cursor: pointer; +} +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; } input[type="search"] { -webkit-box-sizing: content-box; @@ -101,6 +125,57 @@ textarea { overflow: auto; vertical-align: top; } +@media print { + * { + text-shadow: none !important; + color: #000 !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 0.5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } +} .clearfix { *zoom: 1; } @@ -108,6 +183,7 @@ textarea { .clearfix:after { display: table; content: ""; + line-height: 0; } .clearfix:after { clear: both; @@ -122,17 +198,16 @@ textarea { .input-block-level { display: block; width: 100%; - min-height: 28px; + min-height: 30px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; - -ms-box-sizing: border-box; box-sizing: border-box; } body { margin: 0; font-family: proxima-nova, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; - line-height: 21px; + line-height: 20px; color: #333333; background-color: #ffffff; } @@ -144,6 +219,25 @@ a:hover { color: #5c1611; text-decoration: underline; } +.img-rounded { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.img-polaroid { + padding: 4px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} +.img-circle { + -webkit-border-radius: 500px; + -moz-border-radius: 500px; + border-radius: 500px; +} .row { margin-left: -20px; *zoom: 1; @@ -152,15 +246,18 @@ a:hover { .row:after { display: table; content: ""; + line-height: 0; } .row:after { clear: both; } [class*="span"] { float: left; + min-height: 1px; margin-left: 20px; } .container, +.navbar-static-top .container, .navbar-fixed-top .container, .navbar-fixed-bottom .container { width: 940px; @@ -245,6 +342,7 @@ a:hover { .row-fluid:after { display: table; content: ""; + line-height: 0; } .row-fluid:after { clear: both; @@ -252,65 +350,171 @@ a:hover { .row-fluid [class*="span"] { display: block; width: 100%; - min-height: 28px; + min-height: 30px; -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%; + margin-left: 2.127659574468085%; + *margin-left: 2.074468085106383%; } .row-fluid [class*="span"]:first-child { margin-left: 0; } +.row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.127659574468085%; +} .row-fluid .span12 { - width: 99.99999998999999%; - *width: 99.94680850063828%; + width: 100%; + *width: 99.94680851063829%; } .row-fluid .span11 { - width: 91.489361693%; - *width: 91.4361702036383%; + width: 91.48936170212765%; + *width: 91.43617021276594%; } .row-fluid .span10 { - width: 82.97872339599999%; - *width: 82.92553190663828%; + width: 82.97872340425532%; + *width: 82.92553191489361%; } .row-fluid .span9 { - width: 74.468085099%; - *width: 74.4148936096383%; + width: 74.46808510638297%; + *width: 74.41489361702126%; } .row-fluid .span8 { - width: 65.95744680199999%; - *width: 65.90425531263828%; + width: 65.95744680851064%; + *width: 65.90425531914893%; } .row-fluid .span7 { - width: 57.446808505%; - *width: 57.3936170156383%; + width: 57.44680851063829%; + *width: 57.39361702127659%; } .row-fluid .span6 { - width: 48.93617020799999%; - *width: 48.88297871863829%; + width: 48.93617021276595%; + *width: 48.88297872340425%; } .row-fluid .span5 { - width: 40.425531911%; - *width: 40.3723404216383%; + width: 40.42553191489362%; + *width: 40.37234042553192%; } .row-fluid .span4 { - width: 31.914893614%; - *width: 31.8617021246383%; + width: 31.914893617021278%; + *width: 31.861702127659576%; } .row-fluid .span3 { - width: 23.404255317%; - *width: 23.3510638276383%; + width: 23.404255319148934%; + *width: 23.351063829787233%; } .row-fluid .span2 { - width: 14.89361702%; - *width: 14.8404255306383%; + width: 14.893617021276595%; + *width: 14.840425531914894%; } .row-fluid .span1 { - width: 6.382978723%; - *width: 6.329787233638298%; + width: 6.382978723404255%; + *width: 6.329787234042553%; +} +.row-fluid .offset12 { + margin-left: 104.25531914893617%; + *margin-left: 104.14893617021275%; +} +.row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; + *margin-left: 102.02127659574467%; +} +.row-fluid .offset11 { + margin-left: 95.74468085106382%; + *margin-left: 95.6382978723404%; +} +.row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; + *margin-left: 93.51063829787232%; +} +.row-fluid .offset10 { + margin-left: 87.23404255319149%; + *margin-left: 87.12765957446807%; +} +.row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; + *margin-left: 84.99999999999999%; +} +.row-fluid .offset9 { + margin-left: 78.72340425531914%; + *margin-left: 78.61702127659572%; +} +.row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; + *margin-left: 76.48936170212764%; +} +.row-fluid .offset8 { + margin-left: 70.2127659574468%; + *margin-left: 70.10638297872339%; +} +.row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; + *margin-left: 67.9787234042553%; +} +.row-fluid .offset7 { + margin-left: 61.70212765957446%; + *margin-left: 61.59574468085106%; +} +.row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; + *margin-left: 59.46808510638297%; +} +.row-fluid .offset6 { + margin-left: 53.191489361702125%; + *margin-left: 53.085106382978715%; +} +.row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; + *margin-left: 50.95744680851063%; +} +.row-fluid .offset5 { + margin-left: 44.68085106382979%; + *margin-left: 44.57446808510638%; +} +.row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; + *margin-left: 42.4468085106383%; +} +.row-fluid .offset4 { + margin-left: 36.170212765957444%; + *margin-left: 36.06382978723405%; +} +.row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; + *margin-left: 33.93617021276596%; +} +.row-fluid .offset3 { + margin-left: 27.659574468085104%; + *margin-left: 27.5531914893617%; +} +.row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; + *margin-left: 25.425531914893618%; +} +.row-fluid .offset2 { + margin-left: 19.148936170212764%; + *margin-left: 19.04255319148936%; +} +.row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; + *margin-left: 16.914893617021278%; +} +.row-fluid .offset1 { + margin-left: 10.638297872340425%; + *margin-left: 10.53191489361702%; +} +.row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; + *margin-left: 8.404255319148938%; +} +[class*="span"].hide, +.row-fluid [class*="span"].hide { + display: none; +} +[class*="span"].pull-right, +.row-fluid [class*="span"].pull-right { + float: right; } .container { margin-right: auto; @@ -321,6 +525,7 @@ a:hover { .container:after { display: table; content: ""; + line-height: 0; } .container:after { clear: both; @@ -334,25 +539,61 @@ a:hover { .container-fluid:after { display: table; content: ""; + line-height: 0; } .container-fluid:after { clear: both; } p { - margin: 0 0 10.5px; - font-family: proxima-nova, "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 21px; -} -p small { - font-size: 12px; - color: #999999; + margin: 0 0 10px; } .lead { - margin-bottom: 21px; - font-size: 20px; + margin-bottom: 20px; + font-size: 21px; font-weight: 200; - line-height: 31.5px; + line-height: 30px; +} +small { + font-size: 85%; +} +strong { + font-weight: bold; +} +em { + font-style: italic; +} +cite { + font-style: normal; +} +.muted { + color: #999999; +} +a.muted:hover { + color: #808080; +} +.text-warning { + color: #c09853; +} +a.text-warning:hover { + color: #a47e3c; +} +.text-error { + color: #b94a48; +} +a.text-error:hover { + color: #953b39; +} +.text-info { + color: #3a87ad; +} +a.text-info:hover { + color: #2d6987; +} +.text-success { + color: #468847; +} +a.text-success:hover { + color: #356635; } h1, h2, @@ -360,9 +601,10 @@ h3, h4, h5, h6 { - margin: 0; + margin: 10px 0; font-family: inherit; font-weight: bold; + line-height: 20px; color: inherit; text-rendering: optimizelegibility; } @@ -373,60 +615,53 @@ h4 small, h5 small, h6 small { font-weight: normal; + line-height: 1; color: #999999; } -h1 { - font-size: 30px; - line-height: 42px; +h1, +h2, +h3 { + line-height: 40px; } -h1 small { - font-size: 18px; +h1 { + font-size: 38.5px; } h2 { - font-size: 24px; - line-height: 42px; -} -h2 small { - font-size: 18px; + font-size: 31.5px; } h3 { - font-size: 18px; - line-height: 31.5px; + font-size: 24.5px; +} +h4 { + font-size: 17.5px; +} +h5 { + font-size: 14px; +} +h6 { + font-size: 11.9px; +} +h1 small { + font-size: 24.5px; +} +h2 small { + font-size: 17.5px; } h3 small { font-size: 14px; } -h4, -h5, -h6 { - line-height: 21px; -} -h4 { +h4 small { 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: 20px; - margin: 21px 0; + padding-bottom: 9px; + margin: 20px 0 30px; border-bottom: 1px solid #eeeeee; } -.page-header h1 { - line-height: 1; -} ul, ol { padding: 0; - margin: 0 0 10.5px 25px; + margin: 0 0 10px 25px; } ul ul, ul ol, @@ -434,37 +669,53 @@ ol ol, ol ul { margin-bottom: 0; } -ul { - list-style: disc; -} -ol { - list-style: decimal; -} li { - line-height: 21px; + line-height: 20px; } ul.unstyled, ol.unstyled { margin-left: 0; list-style: none; } +ul.inline, +ol.inline { + margin-left: 0; + list-style: none; +} +ul.inline > li, +ol.inline > li { + display: inline-block; + padding-left: 5px; + padding-right: 5px; +} dl { - margin-bottom: 21px; + margin-bottom: 20px; } dt, dd { - line-height: 21px; + line-height: 20px; } dt { font-weight: bold; - line-height: 20px; } dd { - margin-left: 10.5px; + margin-left: 10px; +} +.dl-horizontal { + *zoom: 1; +} +.dl-horizontal:before, +.dl-horizontal:after { + display: table; + content: ""; + line-height: 0; +} +.dl-horizontal:after { + clear: both; } .dl-horizontal dt { float: left; - width: 120px; + width: 160px; clear: left; text-align: right; overflow: hidden; @@ -472,26 +723,18 @@ dd { white-space: nowrap; } .dl-horizontal dd { - margin-left: 130px; + margin-left: 180px; } hr { - margin: 21px 0; + margin: 20px 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] { +abbr[title], +abbr[data-original-title] { cursor: help; - border-bottom: 1px dotted #ddd; + border-bottom: 1px dotted #999999; } abbr.initialism { font-size: 90%; @@ -499,18 +742,18 @@ abbr.initialism { } blockquote { padding: 0 0 0 15px; - margin: 0 0 21px; + margin: 0 0 20px; border-left: 5px solid #eeeeee; } blockquote p { margin-bottom: 0; font-size: 16px; font-weight: 300; - line-height: 26.25px; + line-height: 25px; } blockquote small { display: block; - line-height: 21px; + line-height: 20px; color: #999999; } blockquote small:before { @@ -527,6 +770,12 @@ blockquote.pull-right p, blockquote.pull-right small { text-align: right; } +blockquote.pull-right small:before { + content: ''; +} +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} q:before, q:after, blockquote:before, @@ -535,21 +784,15 @@ blockquote:after { } address { display: block; - margin-bottom: 21px; - font-style: normal; - line-height: 21px; -} -small { - font-size: 100%; -} -cite { + margin-bottom: 20px; font-style: normal; + line-height: 20px; } code, pre { padding: 0 3px 2px; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - font-size: 13px; + font-size: 12px; color: #333333; -webkit-border-radius: 3px; -moz-border-radius: 3px; @@ -560,13 +803,14 @@ code { color: #d14; background-color: #f7f7f9; border: 1px solid #e1e1e8; + white-space: nowrap; } pre { display: block; - padding: 10px; - margin: 0 0 10.5px; - font-size: 12.950000000000001px; - line-height: 21px; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 20px; word-break: break-all; word-wrap: break-word; white-space: pre; @@ -579,11 +823,13 @@ pre { border-radius: 4px; } pre.prettyprint { - margin-bottom: 21px; + margin-bottom: 20px; } pre code { padding: 0; color: inherit; + white-space: pre; + white-space: pre-wrap; background-color: transparent; border: 0; } @@ -592,7 +838,7 @@ pre code { overflow-y: scroll; } form { - margin: 0 0 21px; + margin: 0 0 20px; } fieldset { padding: 0; @@ -603,15 +849,15 @@ legend { display: block; width: 100%; padding: 0; - margin-bottom: 31.5px; + margin-bottom: 20px; font-size: 21px; - line-height: 42px; + line-height: 40px; color: #333333; border: 0; - border-bottom: 1px solid #eee; + border-bottom: 1px solid #e5e5e5; } legend small { - font-size: 15.75px; + font-size: 15px; color: #999999; } label, @@ -621,7 +867,7 @@ select, textarea { font-size: 14px; font-weight: normal; - line-height: 21px; + line-height: 20px; } input, button, @@ -632,116 +878,181 @@ textarea { label { display: block; margin-bottom: 5px; - color: #333333; +} +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display: inline-block; + height: 20px; + padding: 4px 6px; + margin-bottom: 10px; + font-size: 14px; + line-height: 20px; + color: #555555; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + vertical-align: middle; } input, textarea, -select, .uneditable-input { - display: inline-block; - width: 210px; - height: 21px; - padding: 4px; - margin-bottom: 9px; - font-size: 14px; - line-height: 21px; - color: #555555; + width: 206px; +} +textarea { + height: auto; +} +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { background-color: #ffffff; border: 1px solid #cccccc; - -webkit-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 .2s, box-shadow linear .2s; + -moz-transition: border linear .2s, box-shadow linear .2s; + -o-transition: border linear .2s, box-shadow linear .2s; + transition: border linear .2s, box-shadow linear .2s; } -.uneditable-textarea { - width: auto; - height: auto; +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); } -label input, -label textarea, -label select { - display: block; -} -input[type="image"], -input[type="checkbox"], -input[type="radio"] { - width: auto; - height: auto; - padding: 0; - margin: 3px 0; +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; *margin-top: 0; /* IE7 */ - line-height: normal; - cursor: pointer; - background-color: transparent; - border: 0 \9; - /* IE9 and down */ + margin-top: 1px \9; + /* IE8-9 */ - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; + line-height: normal; } -input[type="image"] { - border: 0; -} -input[type="file"] { - width: auto; - padding: initial; - line-height: initial; - background-color: #ffffff; - background-color: initial; - border: initial; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} -input[type="button"], +input[type="file"], +input[type="image"], +input[type="submit"], input[type="reset"], -input[type="submit"] { +input[type="button"], +input[type="radio"], +input[type="checkbox"] { width: auto; - height: auto; } select, input[type="file"] { - height: 28px; + height: 30px; /* In IE7, the height of the select element cannot be changed by height, only font-size */ *margin-top: 4px; /* For IE7, add top margin to align select with labels */ - line-height: 28px; -} -input[type="file"] { - line-height: 18px \9; + line-height: 30px; } select { width: 220px; + border: 1px solid #cccccc; background-color: #ffffff; } select[multiple], select[size] { height: auto; } -input[type="image"] { - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; +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; } -textarea { +.uneditable-input, +.uneditable-textarea { + color: #999999; + background-color: #fcfcfc; + border-color: #cccccc; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + cursor: not-allowed; +} +.uneditable-input { + overflow: hidden; + white-space: nowrap; +} +.uneditable-textarea { + width: auto; height: auto; } -input[type="hidden"] { - display: none; +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #999999; +} +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #999999; +} +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #999999; } .radio, .checkbox { - min-height: 18px; - padding-left: 18px; + min-height: 20px; + padding-left: 20px; } .radio input[type="radio"], .checkbox input[type="checkbox"] { float: left; - margin-left: -18px; + margin-left: -20px; } .controls > .radio:first-child, .controls > .checkbox:first-child { @@ -758,39 +1069,6 @@ input[type="hidden"] { .checkbox.inline + .checkbox.inline { margin-left: 10px; } -input, -textarea { - -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; -} -input:focus, -textarea: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); -} -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus, -select:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} .input-mini { width: 60px; } @@ -820,46 +1098,81 @@ textarea[class*="span"], float: none; margin-left: 0; } +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} input, textarea, .uneditable-input { margin-left: 0; } +.controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; +} input.span12, textarea.span12, .uneditable-input.span12 { - width: 930px; + width: 926px; } input.span11, textarea.span11, .uneditable-input.span11 { - width: 850px; + width: 846px; } input.span10, textarea.span10, .uneditable-input.span10 { - width: 770px; + width: 766px; } input.span9, textarea.span9, .uneditable-input.span9 { - width: 690px; + width: 686px; } input.span8, textarea.span8, .uneditable-input.span8 { - width: 610px; + width: 606px; } input.span7, textarea.span7, .uneditable-input.span7 { - width: 530px; + width: 526px; } input.span6, textarea.span6, .uneditable-input.span6 { - width: 450px; + width: 446px; } input.span5, textarea.span5, .uneditable-input.span5 { - width: 370px; + width: 366px; } input.span4, textarea.span4, .uneditable-input.span4 { - width: 290px; + width: 286px; } input.span3, textarea.span3, .uneditable-input.span3 { - width: 210px; + width: 206px; } input.span2, textarea.span2, .uneditable-input.span2 { - width: 130px; + width: 126px; } input.span1, textarea.span1, .uneditable-input.span1 { - width: 50px; + width: 46px; +} +.controls-row { + *zoom: 1; +} +.controls-row:before, +.controls-row:after { + display: table; + content: ""; + line-height: 0; +} +.controls-row:after { + clear: both; +} +.controls-row [class*="span"], +.row-fluid .controls-row [class*="span"] { + float: left; +} +.controls-row .checkbox[class*="span"], +.controls-row .radio[class*="span"] { + padding-top: 5px; } input[disabled], select[disabled], @@ -869,7 +1182,6 @@ select[readonly], textarea[readonly] { cursor: not-allowed; background-color: #eeeeee; - border-color: #ddd; } input[type="radio"][disabled], input[type="checkbox"][disabled], @@ -877,24 +1189,33 @@ input[type="radio"][readonly], input[type="checkbox"][readonly] { background-color: transparent; } -.control-group.warning > label, +.control-group.warning .control-label, .control-group.warning .help-block, .control-group.warning .help-inline { color: #c09853; } +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #c09853; +} .control-group.warning input, .control-group.warning select, .control-group.warning textarea { - color: #c09853; border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } .control-group.warning input:focus, .control-group.warning select:focus, .control-group.warning textarea:focus { border-color: #a47e3c; - -webkit-box-shadow: 0 0 6px #dbc59e; - -moz-box-shadow: 0 0 6px #dbc59e; - box-shadow: 0 0 6px #dbc59e; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; } .control-group.warning .input-prepend .add-on, .control-group.warning .input-append .add-on { @@ -902,24 +1223,33 @@ input[type="checkbox"][readonly] { background-color: #fcf8e3; border-color: #c09853; } -.control-group.error > label, +.control-group.error .control-label, .control-group.error .help-block, .control-group.error .help-inline { color: #b94a48; } +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #b94a48; +} .control-group.error input, .control-group.error select, .control-group.error textarea { - color: #b94a48; border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } .control-group.error input:focus, .control-group.error select:focus, .control-group.error textarea:focus { border-color: #953b39; - -webkit-box-shadow: 0 0 6px #d59392; - -moz-box-shadow: 0 0 6px #d59392; - box-shadow: 0 0 6px #d59392; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; } .control-group.error .input-prepend .add-on, .control-group.error .input-append .add-on { @@ -927,24 +1257,33 @@ input[type="checkbox"][readonly] { background-color: #f2dede; border-color: #b94a48; } -.control-group.success > label, +.control-group.success .control-label, .control-group.success .help-block, .control-group.success .help-inline { color: #468847; } +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #468847; +} .control-group.success input, .control-group.success select, .control-group.success textarea { - color: #468847; border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } .control-group.success input:focus, .control-group.success select:focus, .control-group.success textarea:focus { border-color: #356635; - -webkit-box-shadow: 0 0 6px #7aba7b; - -moz-box-shadow: 0 0 6px #7aba7b; - box-shadow: 0 0 6px #7aba7b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; } .control-group.success .input-prepend .add-on, .control-group.success .input-append .add-on { @@ -952,59 +1291,78 @@ input[type="checkbox"][readonly] { background-color: #dff0d8; border-color: #468847; } -input:focus:required:invalid, -textarea:focus:required:invalid, -select:focus:required:invalid { +.control-group.info .control-label, +.control-group.info .help-block, +.control-group.info .help-inline { + color: #3a87ad; +} +.control-group.info .checkbox, +.control-group.info .radio, +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + color: #3a87ad; +} +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + border-color: #3a87ad; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} +.control-group.info input:focus, +.control-group.info select:focus, +.control-group.info textarea:focus { + border-color: #2d6987; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; +} +.control-group.info .input-prepend .add-on, +.control-group.info .input-append .add-on { + color: #3a87ad; + background-color: #d9edf7; + border-color: #3a87ad; +} +input:focus:invalid, +textarea:focus:invalid, +select:focus:invalid { color: #b94a48; border-color: #ee5f5b; } -input:focus:required:invalid:focus, -textarea:focus:required:invalid:focus, -select:focus:required:invalid:focus { +input:focus:invalid:focus, +textarea:focus:invalid:focus, +select:focus:invalid:focus { border-color: #e9322d; -webkit-box-shadow: 0 0 6px #f8b9b7; -moz-box-shadow: 0 0 6px #f8b9b7; box-shadow: 0 0 6px #f8b9b7; } .form-actions { - padding: 20px 20px 21px; - margin-top: 21px; - margin-bottom: 21px; + padding: 19px 20px 20px; + margin-top: 20px; + margin-bottom: 20px; background-color: #f5f5f5; - border-top: 1px solid #ddd; + border-top: 1px solid #e5e5e5; *zoom: 1; } .form-actions:before, .form-actions:after { display: table; content: ""; + line-height: 0; } .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; -} -::-webkit-input-placeholder { - color: #999999; -} .help-block, .help-inline { - color: #555555; + color: #595959; } .help-block { display: block; - margin-bottom: 10.5px; + margin-bottom: 10px; } .help-inline { display: inline-block; @@ -1015,62 +1373,72 @@ select:focus:required:invalid:focus { vertical-align: middle; padding-left: 5px; } -.input-prepend, -.input-append { +.input-append, +.input-prepend { margin-bottom: 5px; + font-size: 0; + white-space: nowrap; } -.input-prepend input, .input-append input, -.input-prepend select, +.input-prepend input, .input-append select, +.input-prepend select, +.input-append .uneditable-input, .input-prepend .uneditable-input, -.input-append .uneditable-input { +.input-append .dropdown-menu, +.input-prepend .dropdown-menu { + font-size: 14px; +} +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input { position: relative; margin-bottom: 0; *margin-left: 0; - vertical-align: middle; - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; + vertical-align: top; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; } -.input-prepend input:focus, .input-append input:focus, -.input-prepend select:focus, +.input-prepend input:focus, .input-append select:focus, -.input-prepend .uneditable-input:focus, -.input-append .uneditable-input:focus { +.input-prepend select:focus, +.input-append .uneditable-input:focus, +.input-prepend .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 { +.input-append .add-on, +.input-prepend .add-on { display: inline-block; width: auto; - height: 21px; + height: 20px; min-width: 16px; padding: 4px 5px; + font-size: 14px; font-weight: normal; - line-height: 21px; + line-height: 20px; 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 .add-on, +.input-append .btn, .input-prepend .btn, -.input-append .btn { - margin-left: -1px; +.input-append .btn-group > .dropdown-toggle, +.input-prepend .btn-group > .dropdown-toggle { + vertical-align: top; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; } -.input-prepend .active, -.input-append .active { +.input-append .active, +.input-prepend .active { background-color: #a9dba9; border-color: #46a546; } @@ -1080,26 +1448,35 @@ select:focus:required:invalid:focus { } .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; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; } .input-append input, .input-append select, .input-append .uneditable-input { - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; } -.input-append .uneditable-input { - border-right-color: #ccc; - border-left-color: #eee; +.input-append input + .btn-group .btn:last-child, +.input-append select + .btn-group .btn:last-child, +.input-append .uneditable-input + .btn-group .btn:last-child { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.input-append .add-on, +.input-append .btn, +.input-append .btn-group { + margin-left: -1px; } .input-append .add-on:last-child, -.input-append .btn:last-child { - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; +.input-append .btn:last-child, +.input-append .btn-group:last-child > .dropdown-toggle { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; } .input-prepend.input-append input, .input-prepend.input-append select, @@ -1108,21 +1485,31 @@ select:focus:required:invalid:focus { -moz-border-radius: 0; border-radius: 0; } +.input-prepend.input-append input + .btn-group .btn, +.input-prepend.input-append select + .btn-group .btn, +.input-prepend.input-append .uneditable-input + .btn-group .btn { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} .input-prepend.input-append .add-on:first-child, .input-prepend.input-append .btn:first-child { margin-right: -1px; - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; } .input-prepend.input-append .add-on:last-child, .input-prepend.input-append .btn:last-child { margin-left: -1px; - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; } -.search-query { +.input-prepend.input-append .btn-group:first-child { + margin-left: 0; +} +input.search-query { padding-right: 14px; padding-right: 4px \9; padding-left: 14px; @@ -1130,9 +1517,36 @@ select:focus:required:invalid:focus { /* 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; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} +/* Allow for input prepend/append in search forms */ +.form-search .input-append .search-query, +.form-search .input-prepend .search-query { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.form-search .input-append .search-query { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} +.form-search .input-append .btn { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} +.form-search .input-prepend .search-query { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} +.form-search .input-prepend .btn { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; } .form-search input, .form-inline input, @@ -1161,6 +1575,7 @@ select:focus:required:invalid:focus { *zoom: 1; margin-bottom: 0; + vertical-align: middle; } .form-search .hide, .form-inline .hide, @@ -1168,7 +1583,9 @@ select:focus:required:invalid:focus { display: none; } .form-search label, -.form-inline label { +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { display: inline-block; } .form-search .input-append, @@ -1194,45 +1611,53 @@ select:focus:required:invalid:focus { margin-left: 0; } .control-group { - margin-bottom: 10.5px; + margin-bottom: 10px; } legend + .control-group { - margin-top: 21px; + margin-top: 20px; -webkit-margin-top-collapse: separate; } .form-horizontal .control-group { - margin-bottom: 21px; + margin-bottom: 20px; *zoom: 1; } .form-horizontal .control-group:before, .form-horizontal .control-group:after { display: table; content: ""; + line-height: 0; } .form-horizontal .control-group:after { clear: both; } .form-horizontal .control-label { float: left; - width: 140px; + width: 160px; padding-top: 5px; text-align: right; } .form-horizontal .controls { *display: inline-block; *padding-left: 20px; - margin-left: 160px; + margin-left: 180px; *margin-left: 0; } .form-horizontal .controls:first-child { - *padding-left: 160px; + *padding-left: 180px; } .form-horizontal .help-block { - margin-top: 10.5px; margin-bottom: 0; } +.form-horizontal input + .help-block, +.form-horizontal select + .help-block, +.form-horizontal textarea + .help-block, +.form-horizontal .uneditable-input + .help-block, +.form-horizontal .input-prepend + .help-block, +.form-horizontal .input-append + .help-block { + margin-top: 10px; +} .form-horizontal .form-actions { - padding-left: 160px; + padding-left: 180px; } table { max-width: 100%; @@ -1242,12 +1667,12 @@ table { } .table { width: 100%; - margin-bottom: 21px; + margin-bottom: 20px; } .table th, .table td { padding: 8px; - line-height: 21px; + line-height: 20px; text-align: left; vertical-align: top; border-top: 1px solid #dddddd; @@ -1269,6 +1694,9 @@ table { .table tbody + tbody { border-top: 2px solid #dddddd; } +.table .table { + background-color: #ffffff; +} .table-condensed th, .table-condensed td { padding: 4px 5px; @@ -1276,7 +1704,7 @@ table { .table-bordered { border: 1px solid #dddddd; border-collapse: separate; - *border-collapse: collapsed; + *border-collapse: collapse; border-left: 0; -webkit-border-radius: 4px; -moz-border-radius: 4px; @@ -1297,160 +1725,169 @@ table { .table-bordered tbody:first-child tr:first-child td { border-top: 0; } -.table-bordered thead:first-child tr:first-child th:first-child, -.table-bordered tbody:first-child tr:first-child td:first-child { +.table-bordered 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; + border-top-left-radius: 4px; } -.table-bordered thead:first-child tr:first-child th:last-child, -.table-bordered tbody:first-child tr:first-child td:last-child { +.table-bordered 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; + border-top-right-radius: 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; +.table-bordered thead:last-child tr:last-child > th:first-child, +.table-bordered tbody:last-child tr:last-child > td:first-child, +.table-bordered tfoot:last-child tr:last-child > td:first-child { -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; } -.table-bordered thead:last-child tr:last-child th:last-child, -.table-bordered tbody:last-child tr:last-child td:last-child { +.table-bordered thead:last-child tr:last-child > th:last-child, +.table-bordered tbody:last-child tr:last-child > td:last-child, +.table-bordered tfoot:last-child tr:last-child > td:last-child { -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; } -.table-striped tbody tr:nth-child(odd) td, -.table-striped tbody tr:nth-child(odd) th { +.table-bordered tfoot + tbody:last-child tr:last-child td:first-child { + -webkit-border-bottom-left-radius: 0; + -moz-border-radius-bottomleft: 0; + border-bottom-left-radius: 0; +} +.table-bordered tfoot + tbody:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 0; + -moz-border-radius-bottomright: 0; + border-bottom-right-radius: 0; +} +.table-bordered caption + thead tr:first-child th:first-child, +.table-bordered caption + tbody tr:first-child td:first-child, +.table-bordered colgroup + thead tr:first-child th:first-child, +.table-bordered colgroup + tbody tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; +} +.table-bordered caption + thead tr:first-child th:last-child, +.table-bordered caption + tbody tr:first-child td:last-child, +.table-bordered colgroup + thead tr:first-child th:last-child, +.table-bordered colgroup + tbody tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 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 { +.table-hover tbody tr:hover td, +.table-hover tbody tr:hover th { background-color: #f5f5f5; } -table .span1 { +table td[class*="span"], +table th[class*="span"], +.row-fluid table td[class*="span"], +.row-fluid table th[class*="span"] { + display: table-cell; + float: none; + margin-left: 0; +} +.table td.span1, +.table th.span1 { float: none; width: 44px; margin-left: 0; } -table .span2 { +.table td.span2, +.table th.span2 { float: none; width: 124px; margin-left: 0; } -table .span3 { +.table td.span3, +.table th.span3 { float: none; width: 204px; margin-left: 0; } -table .span4 { +.table td.span4, +.table th.span4 { float: none; width: 284px; margin-left: 0; } -table .span5 { +.table td.span5, +.table th.span5 { float: none; width: 364px; margin-left: 0; } -table .span6 { +.table td.span6, +.table th.span6 { float: none; width: 444px; margin-left: 0; } -table .span7 { +.table td.span7, +.table th.span7 { float: none; width: 524px; margin-left: 0; } -table .span8 { +.table td.span8, +.table th.span8 { float: none; width: 604px; margin-left: 0; } -table .span9 { +.table td.span9, +.table th.span9 { float: none; width: 684px; margin-left: 0; } -table .span10 { +.table td.span10, +.table th.span10 { float: none; width: 764px; margin-left: 0; } -table .span11 { +.table td.span11, +.table th.span11 { float: none; width: 844px; margin-left: 0; } -table .span12 { +.table td.span12, +.table th.span12 { float: none; width: 924px; margin-left: 0; } -table .span13 { - float: none; - width: 1004px; - margin-left: 0; +.table tbody tr.success td { + background-color: #dff0d8; } -table .span14 { - float: none; - width: 1084px; - margin-left: 0; +.table tbody tr.error td { + background-color: #f2dede; } -table .span15 { - float: none; - width: 1164px; - margin-left: 0; +.table tbody tr.warning td { + background-color: #fcf8e3; } -table .span16 { - float: none; - width: 1244px; - margin-left: 0; +.table tbody tr.info td { + background-color: #d9edf7; } -table .span17 { - float: none; - width: 1324px; - margin-left: 0; +.table-hover tbody tr.success:hover td { + background-color: #d0e9c6; } -table .span18 { - float: none; - width: 1404px; - margin-left: 0; +.table-hover tbody tr.error:hover td { + background-color: #ebcccc; } -table .span19 { - float: none; - width: 1484px; - margin-left: 0; +.table-hover tbody tr.warning:hover td { + background-color: #faf2cc; } -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; +.table-hover tbody tr.info:hover td { + background-color: #c4e3f3; } .dropup, .dropdown { @@ -1472,18 +1909,11 @@ table .span24 { 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%; @@ -1492,17 +1922,17 @@ table .span24 { display: none; float: left; min-width: 160px; - padding: 4px 0; - margin: 1px 0 0; + padding: 5px 0; + margin: 2px 0 0; list-style: none; background-color: #ffffff; border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, 0.2); *border-right-width: 2px; *border-bottom-width: 2px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); @@ -1517,35 +1947,67 @@ table .span24 { .dropdown-menu .divider { *width: 100%; height: 1px; - margin: 9.5px 1px; + margin: 9px 1px; *margin: -5px 0 5px; overflow: hidden; background-color: #e5e5e5; border-bottom: 1px solid #ffffff; } -.dropdown-menu a { +.dropdown-menu li > a { display: block; - padding: 3px 15px; + padding: 3px 20px; clear: both; font-weight: normal; - line-height: 21px; + line-height: 20px; color: #333333; white-space: nowrap; } .dropdown-menu li > a:hover, +.dropdown-menu li > a:focus, +.dropdown-submenu:hover > a { + text-decoration: none; + color: #ffffff; + background-color: #94241b; + background-image: -moz-linear-gradient(top, #9d261d, #872119); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9d261d), to(#872119)); + background-image: -webkit-linear-gradient(top, #9d261d, #872119); + background-image: -o-linear-gradient(top, #9d261d, #872119); + background-image: linear-gradient(to bottom, #9d261d, #872119); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff9d261d', endColorstr='#ff872119', GradientType=0); +} .dropdown-menu .active > a, .dropdown-menu .active > a:hover { color: #ffffff; text-decoration: none; - background-color: #9d261d; + outline: 0; + background-color: #94241b; + background-image: -moz-linear-gradient(top, #9d261d, #872119); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9d261d), to(#872119)); + background-image: -webkit-linear-gradient(top, #9d261d, #872119); + background-image: -o-linear-gradient(top, #9d261d, #872119); + background-image: linear-gradient(to bottom, #9d261d, #872119); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff9d261d', endColorstr='#ff872119', GradientType=0); +} +.dropdown-menu .disabled > a, +.dropdown-menu .disabled > a:hover { + color: #999999; +} +.dropdown-menu .disabled > a:hover { + text-decoration: none; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + cursor: default; } .open { *z-index: 1000; } -.open .dropdown-menu { +.open > .dropdown-menu { display: block; } -.pull-right .dropdown-menu { +.pull-right > .dropdown-menu { right: 0; left: auto; } @@ -1553,7 +2015,7 @@ table .span24 { .navbar-fixed-bottom .dropdown .caret { border-top: 0; border-bottom: 4px solid #000000; - content: "\2191"; + content: ""; } .dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { @@ -1561,7 +2023,62 @@ table .span24 { bottom: 100%; margin-bottom: 1px; } +.dropdown-submenu { + position: relative; +} +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + -webkit-border-radius: 0 6px 6px 6px; + -moz-border-radius: 0 6px 6px 6px; + border-radius: 0 6px 6px 6px; +} +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} +.dropup .dropdown-submenu > .dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; + -webkit-border-radius: 5px 5px 5px 0; + -moz-border-radius: 5px 5px 5px 0; + border-radius: 5px 5px 5px 0; +} +.dropdown-submenu > a:after { + display: block; + content: " "; + float: right; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + border-width: 5px 0 5px 5px; + border-left-color: #cccccc; + margin-top: 5px; + margin-right: -10px; +} +.dropdown-submenu:hover > a:after { + border-left-color: #ffffff; +} +.dropdown-submenu.pull-left { + float: none; +} +.dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} +.dropdown .dropdown-menu .nav-header { + padding-left: 20px; + padding-right: 20px; +} .typeahead { + z-index: 1051; margin-top: 2px; -webkit-border-radius: 4px; -moz-border-radius: 4px; @@ -1572,8 +2089,7 @@ table .span24 { padding: 19px; margin-bottom: 20px; background-color: #f5f5f5; - border: 1px solid #eee; - border: 1px solid rgba(0, 0, 0, 0.05); + border: 1px solid #e3e3e3; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; @@ -1599,16 +2115,13 @@ table .span24 { } .fade { opacity: 0; - filter: alpha(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; - filter: alpha(opacity=100); } .collapse { position: relative; @@ -1616,7 +2129,6 @@ table .span24 { 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; } @@ -1627,7 +2139,7 @@ table .span24 { float: right; font-size: 20px; font-weight: bold; - line-height: 21px; + line-height: 20px; color: #000000; text-shadow: 0 1px 0 #ffffff; opacity: 0.2; @@ -1653,34 +2165,32 @@ button.close { /* IE7 inline-block hack */ *zoom: 1; - padding: 4px 10px 4px; + padding: 4px 12px; margin-bottom: 0; font-size: 14px; - line-height: 21px; - *line-height: 20px; - color: #333333; + line-height: 20px; text-align: center; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); vertical-align: middle; cursor: pointer; + color: #333333; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); 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-image: linear-gradient(to bottom, #ffffff, #e6e6e6); background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', 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: 1px solid #bbbbbb; *border: 0; - border-bottom-color: #b3b3b3; + border-bottom-color: #a2a2a2; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; @@ -1694,6 +2204,7 @@ button.close { .btn.active, .btn.disabled, .btn[disabled] { + color: #333333; background-color: #e6e6e6; *background-color: #d9d9d9; } @@ -1707,14 +2218,9 @@ button.close { .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; } @@ -1725,8 +2231,6 @@ button.close { } .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); @@ -1736,7 +2240,6 @@ button.close { .btn.disabled, .btn[disabled] { cursor: default; - background-color: #e6e6e6; background-image: none; opacity: 0.65; filter: alpha(opacity=65); @@ -1745,43 +2248,54 @@ button.close { box-shadow: none; } .btn-large { - padding: 9px 14px; - font-size: 16px; - line-height: normal; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; + padding: 11px 19px; + font-size: 17.5px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; } -.btn-large [class^="icon-"] { - margin-top: 1px; +.btn-large [class^="icon-"], +.btn-large [class*=" icon-"] { + margin-top: 4px; } .btn-small { - padding: 5px 9px; - font-size: 12px; - line-height: 19px; + padding: 2px 10px; + font-size: 11.9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; } -.btn-small [class^="icon-"] { +.btn-small [class^="icon-"], +.btn-small [class*=" icon-"] { + margin-top: 0; +} +.btn-mini [class^="icon-"], +.btn-mini [class*=" icon-"] { margin-top: -1px; } .btn-mini { - padding: 2px 6px; - font-size: 12px; - line-height: 17px; + padding: 0 6px; + font-size: 10.5px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; } -.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-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; } .btn-primary.active, .btn-warning.active, @@ -1792,22 +2306,23 @@ button.close { 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); + border-color: #c5c5c5; + border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25); } .btn-primary { - background-color: #9d331d; - background-image: -moz-linear-gradient(top, #9d261d, #9d461d); - background-image: -ms-linear-gradient(top, #9d261d, #9d461d); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9d261d), to(#9d461d)); - background-image: -webkit-linear-gradient(top, #9d261d, #9d461d); - background-image: -o-linear-gradient(top, #9d261d, #9d461d); - background-image: linear-gradient(top, #9d261d, #9d461d); + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #e7d785; + background-image: -moz-linear-gradient(top, #fffeb8, #c49c38); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fffeb8), to(#c49c38)); + background-image: -webkit-linear-gradient(top, #fffeb8, #c49c38); + background-image: -o-linear-gradient(top, #fffeb8, #c49c38); + background-image: linear-gradient(to bottom, #fffeb8, #c49c38); background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#9d261d', endColorstr='#9d461d', GradientType=0); - border-color: #9d461d #9d461d #5c2911; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffffeb8', endColorstr='#ffc49c38', GradientType=0); + border-color: #c49c38 #c49c38 #896d27; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #9d461d; + *background-color: #c49c38; /* Darken IE7 buttons by default so they stand out more given they won't have borders */ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); @@ -1817,23 +2332,25 @@ button.close { .btn-primary.active, .btn-primary.disabled, .btn-primary[disabled] { - background-color: #9d461d; - *background-color: #873c19; + color: #ffffff; + background-color: #c49c38; + *background-color: #b08c32; } .btn-primary:active, .btn-primary.active { - background-color: #723315 \9; + background-color: #9c7c2d \9; } .btn-warning { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 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-image: linear-gradient(to bottom, #fbb450, #f89406); background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', 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; @@ -1846,6 +2363,7 @@ button.close { .btn-warning.active, .btn-warning.disabled, .btn-warning[disabled] { + color: #ffffff; background-color: #f89406; *background-color: #df8505; } @@ -1854,15 +2372,16 @@ button.close { background-color: #c67605 \9; } .btn-danger { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 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-image: linear-gradient(to bottom, #ee5f5b, #bd362f); background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', 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; @@ -1875,6 +2394,7 @@ button.close { .btn-danger.active, .btn-danger.disabled, .btn-danger[disabled] { + color: #ffffff; background-color: #bd362f; *background-color: #a9302a; } @@ -1883,15 +2403,16 @@ button.close { background-color: #942a25 \9; } .btn-success { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 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-image: linear-gradient(to bottom, #62c462, #51a351); background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', 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; @@ -1904,6 +2425,7 @@ button.close { .btn-success.active, .btn-success.disabled, .btn-success[disabled] { + color: #ffffff; background-color: #51a351; *background-color: #499249; } @@ -1912,15 +2434,16 @@ button.close { background-color: #408140 \9; } .btn-info { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 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-image: linear-gradient(to bottom, #5bc0de, #2f96b4); background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', 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; @@ -1933,6 +2456,7 @@ button.close { .btn-info.active, .btn-info.disabled, .btn-info[disabled] { + color: #ffffff; background-color: #2f96b4; *background-color: #2a85a0; } @@ -1941,15 +2465,16 @@ button.close { 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); + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #363636; + background-image: -moz-linear-gradient(top, #444444, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); + background-image: -webkit-linear-gradient(top, #444444, #222222); + background-image: -o-linear-gradient(top, #444444, #222222); + background-image: linear-gradient(to bottom, #444444, #222222); background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', 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; @@ -1962,6 +2487,7 @@ button.close { .btn-inverse.active, .btn-inverse.disabled, .btn-inverse[disabled] { + color: #ffffff; background-color: #222222; *background-color: #151515; } @@ -1971,8 +2497,8 @@ button.close { } button.btn, input[type="submit"].btn { - *padding-top: 2px; - *padding-bottom: 2px; + *padding-top: 3px; + *padding-bottom: 3px; } button.btn::-moz-focus-inner, input[type="submit"].btn::-moz-focus-inner { @@ -1994,19 +2520,44 @@ input[type="submit"].btn.btn-mini { *padding-top: 1px; *padding-bottom: 1px; } +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +.btn-link { + border-color: transparent; + cursor: pointer; + color: #9d261d; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-link:hover { + color: #5c1611; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:hover { + color: #333333; + text-decoration: none; +} .btn-group { position: relative; + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + *zoom: 1; + font-size: 0; + vertical-align: middle; + white-space: nowrap; *margin-left: .3em; } -.btn-group:before, -.btn-group:after { - display: table; - content: ""; -} -.btn-group:after { - clear: both; -} .btn-group:first-child { *margin-left: 0; } @@ -2014,24 +2565,38 @@ input[type="submit"].btn.btn-mini { margin-left: 5px; } .btn-toolbar { - margin-top: 10.5px; - margin-bottom: 10.5px; + font-size: 0; + margin-top: 10px; + margin-bottom: 10px; } -.btn-toolbar .btn-group { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group { + margin-left: 5px; } .btn-group > .btn { position: relative; - float: left; - margin-left: -1px; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; } +.btn-group > .btn + .btn { + margin-left: -1px; +} +.btn-group > .btn, +.btn-group > .dropdown-menu, +.btn-group > .popover { + font-size: 14px; +} +.btn-group > .btn-mini { + font-size: 10.5px; +} +.btn-group > .btn-small { + font-size: 11.9px; +} +.btn-group > .btn-large { + font-size: 17.5px; +} .btn-group > .btn:first-child { margin-left: 0; -webkit-border-top-left-radius: 4px; @@ -2078,26 +2643,30 @@ input[type="submit"].btn.btn-mini { .btn-group.open .dropdown-toggle { outline: 0; } -.btn-group > .dropdown-toggle { +.btn-group > .btn + .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; + *padding-top: 5px; + *padding-bottom: 5px; } -.btn-group > .btn-mini.dropdown-toggle { +.btn-group > .btn-mini + .dropdown-toggle { padding-left: 5px; padding-right: 5px; + *padding-top: 2px; + *padding-bottom: 2px; } -.btn-group > .btn-small.dropdown-toggle { - *padding-top: 4px; +.btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; *padding-bottom: 4px; } -.btn-group > .btn-large.dropdown-toggle { +.btn-group > .btn-large + .dropdown-toggle { padding-left: 12px; padding-right: 12px; + *padding-top: 7px; + *padding-bottom: 7px; } .btn-group.open .dropdown-toggle { background-image: none; @@ -2109,7 +2678,7 @@ input[type="submit"].btn.btn-mini { background-color: #e6e6e6; } .btn-group.open .btn-primary.dropdown-toggle { - background-color: #9d461d; + background-color: #c49c38; } .btn-group.open .btn-warning.dropdown-toggle { background-color: #f89406; @@ -2127,29 +2696,21 @@ input[type="submit"].btn.btn-mini { background-color: #222222; } .btn .caret { - margin-top: 7px; + margin-top: 8px; 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 { +.btn-mini .caret, +.btn-small .caret, +.btn-large .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; + border-bottom-width: 5px; } .btn-primary .caret, .btn-warning .caret, @@ -2159,45 +2720,95 @@ input[type="submit"].btn.btn-mini { .btn-inverse .caret { border-top-color: #ffffff; border-bottom-color: #ffffff; - opacity: 0.75; - filter: alpha(opacity=75); +} +.btn-group-vertical { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} +.btn-group-vertical > .btn { + display: block; + float: none; + max-width: 100%; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-group-vertical > .btn + .btn { + margin-left: 0; + margin-top: -1px; +} +.btn-group-vertical > .btn:first-child { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.btn-group-vertical > .btn:last-child { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.btn-group-vertical > .btn-large:first-child { + -webkit-border-radius: 6px 6px 0 0; + -moz-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} +.btn-group-vertical > .btn-large:last-child { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; } .alert { padding: 8px 35px 8px 14px; - margin-bottom: 21px; + margin-bottom: 20px; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); background-color: #fcf8e3; border: 1px solid #fbeed5; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; +} +.alert, +.alert h4 { color: #c09853; } -.alert-heading { - color: inherit; +.alert h4 { + margin: 0; } .alert .close { position: relative; top: -2px; right: -21px; - line-height: 18px; + line-height: 20px; } .alert-success { background-color: #dff0d8; border-color: #d6e9c6; color: #468847; } +.alert-success h4 { + color: #468847; +} .alert-danger, .alert-error { background-color: #f2dede; border-color: #eed3d7; color: #b94a48; } +.alert-danger h4, +.alert-error h4 { + color: #b94a48; +} .alert-info { background-color: #d9edf7; border-color: #bce8f1; color: #3a87ad; } +.alert-info h4 { + color: #3a87ad; +} .alert-block { padding-top: 14px; padding-bottom: 14px; @@ -2211,7 +2822,7 @@ input[type="submit"].btn.btn-mini { } .nav { margin-left: 0; - margin-bottom: 21px; + margin-bottom: 20px; list-style: none; } .nav > li > a { @@ -2221,15 +2832,18 @@ input[type="submit"].btn.btn-mini { text-decoration: none; background-color: #eeeeee; } +.nav > li > a > img { + max-width: none; +} .nav > .pull-right { float: right; } -.nav .nav-header { +.nav-header { display: block; padding: 3px 15px; font-size: 11px; font-weight: bold; - line-height: 21px; + line-height: 20px; color: #999999; text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); text-transform: uppercase; @@ -2257,13 +2871,14 @@ input[type="submit"].btn.btn-mini { text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); background-color: #9d261d; } -.nav-list [class^="icon-"] { +.nav-list [class^="icon-"], +.nav-list [class*=" icon-"] { margin-right: 2px; } .nav-list .divider { *width: 100%; height: 1px; - margin: 9.5px 1px; + margin: 9px 1px; *margin: -5px 0 5px; overflow: hidden; background-color: #e5e5e5; @@ -2279,6 +2894,7 @@ input[type="submit"].btn.btn-mini { .nav-pills:after { display: table; content: ""; + line-height: 0; } .nav-tabs:after, .nav-pills:after { @@ -2304,7 +2920,7 @@ input[type="submit"].btn.btn-mini { .nav-tabs > li > a { padding-top: 8px; padding-bottom: 8px; - line-height: 21px; + line-height: 20px; border: 1px solid transparent; -webkit-border-radius: 4px 4px 0 0; -moz-border-radius: 4px 4px 0 0; @@ -2351,14 +2967,20 @@ input[type="submit"].btn.btn-mini { 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; + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; } .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; + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; } .nav-tabs.nav-stacked > li > a:hover { border-color: #ddd; @@ -2371,33 +2993,37 @@ input[type="submit"].btn.btn-mini { 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; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; } .nav-pills .dropdown-menu { - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; } -.nav-tabs .dropdown-toggle .caret, -.nav-pills .dropdown-toggle .caret { +.nav .dropdown-toggle .caret { border-top-color: #9d261d; border-bottom-color: #9d261d; margin-top: 6px; } -.nav-tabs .dropdown-toggle:hover .caret, -.nav-pills .dropdown-toggle:hover .caret { +.nav .dropdown-toggle:hover .caret { border-top-color: #5c1611; border-bottom-color: #5c1611; } -.nav-tabs .active .dropdown-toggle .caret, -.nav-pills .active .dropdown-toggle .caret { - border-top-color: #333333; - border-bottom-color: #333333; +/* move down carets for tabs */ +.nav-tabs .dropdown-toggle .caret { + margin-top: 8px; +} +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; } .nav > .dropdown.active > a:hover { - color: #000000; cursor: pointer; } .nav-tabs .open .dropdown-toggle, @@ -2425,6 +3051,7 @@ input[type="submit"].btn.btn-mini { .tabbable:after { display: table; content: ""; + line-height: 0; } .tabbable:after { clear: both; @@ -2513,70 +3140,95 @@ input[type="submit"].btn.btn-mini { border-color: #ddd #ddd #ddd transparent; *border-left-color: #ffffff; } +.nav > .disabled > a { + color: #999999; +} +.nav > .disabled > a:hover { + text-decoration: none; + background-color: transparent; + cursor: default; +} .navbar { + overflow: visible; + margin-bottom: 20px; *position: relative; *z-index: 2; - overflow: visible; - margin-bottom: 21px; } .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-color: #fafafa; + background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); + background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); + background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); + border: 1px solid #d4d4d4; -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); + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + *zoom: 1; +} +.navbar-inner:before, +.navbar-inner:after { + display: table; + content: ""; + line-height: 0; +} +.navbar-inner:after { + clear: both; } .navbar .container { width: auto; } .nav-collapse.collapse { height: auto; -} -.navbar { - color: #999999; -} -.navbar .brand:hover { - text-decoration: none; + overflow: visible; } .navbar .brand { float: left; display: block; - padding: 8px 20px 12px; + padding: 10px 20px 10px; margin-left: -20px; font-size: 20px; font-weight: 200; - line-height: 1; - color: #999999; + color: #777777; + text-shadow: 0 1px 0 #ffffff; } -.navbar .navbar-text { +.navbar .brand:hover { + text-decoration: none; +} +.navbar-text { margin-bottom: 0; line-height: 40px; + color: #777777; } -.navbar .navbar-link { - color: #999999; +.navbar-link { + color: #777777; } -.navbar .navbar-link:hover { - color: #ffffff; +.navbar-link:hover { + color: #333333; +} +.navbar .divider-vertical { + height: 40px; + margin: 0 9px; + border-left: 1px solid #f2f2f2; + border-right: 1px solid #ffffff; } .navbar .btn, .navbar .btn-group { margin-top: 5px; } -.navbar .btn-group .btn { - margin: 0; +.navbar .btn-group .btn, +.navbar .input-prepend .btn, +.navbar .input-append .btn { + margin-top: 0; } .navbar-form { margin-bottom: 0; @@ -2586,6 +3238,7 @@ input[type="submit"].btn.btn-mini { .navbar-form:after { display: table; content: ""; + line-height: 0; } .navbar-form:after { clear: both; @@ -2597,7 +3250,8 @@ input[type="submit"].btn.btn-mini { margin-top: 5px; } .navbar-form input, -.navbar-form select { +.navbar-form select, +.navbar-form .btn { display: inline-block; margin-bottom: 0; } @@ -2608,7 +3262,7 @@ input[type="submit"].btn.btn-mini { } .navbar-form .input-append, .navbar-form .input-prepend { - margin-top: 6px; + margin-top: 5px; white-space: nowrap; } .navbar-form .input-append input, @@ -2618,44 +3272,28 @@ input[type="submit"].btn.btn-mini { .navbar-search { position: relative; float: left; - margin-top: 6px; + margin-top: 5px; margin-bottom: 0; } .navbar-search .search-query { - padding: 4px 9px; + margin-bottom: 0; + padding: 4px 14px; font-family: proxima-nova, "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 0px rgba(255,255,255,.15); - -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0px rgba(255,255,255,.15); - box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0px rgba(255,255,255,.15); - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - -o-transition: none; - transition: none; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; } -.navbar-search .search-query:-moz-placeholder { - color: #cccccc; +.navbar-static-top { + position: static; + margin-bottom: 0; } -.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-static-top .navbar-inner { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; } .navbar-fixed-top, .navbar-fixed-bottom { @@ -2666,6 +3304,13 @@ input[type="submit"].btn.btn-mini { margin-bottom: 0; } .navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + border-width: 0 0 1px; +} +.navbar-fixed-bottom .navbar-inner { + border-width: 1px 0 0; +} +.navbar-fixed-top .navbar-inner, .navbar-fixed-bottom .navbar-inner { padding-left: 0; padding-right: 0; @@ -2673,6 +3318,7 @@ input[type="submit"].btn.btn-mini { -moz-border-radius: 0; border-radius: 0; } +.navbar-static-top .container, .navbar-fixed-top .container, .navbar-fixed-bottom .container { width: 940px; @@ -2680,9 +3326,20 @@ input[type="submit"].btn.btn-mini { .navbar-fixed-top { top: 0; } +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + -webkit-box-shadow: 0 1px 10px rgba(0,0,0,.1); + -moz-box-shadow: 0 1px 10px rgba(0,0,0,.1); + box-shadow: 0 1px 10px rgba(0,0,0,.1); +} .navbar-fixed-bottom { bottom: 0; } +.navbar-fixed-bottom .navbar-inner { + -webkit-box-shadow: 0 -1px 10px rgba(0,0,0,.1); + -moz-box-shadow: 0 -1px 10px rgba(0,0,0,.1); + box-shadow: 0 -1px 10px rgba(0,0,0,.1); +} .navbar .nav { position: relative; left: 0; @@ -2692,51 +3349,36 @@ input[type="submit"].btn.btn-mini { } .navbar .nav.pull-right { float: right; + margin-right: 0; } .navbar .nav > li { - display: block; float: left; } .navbar .nav > li > a { float: none; - padding: 9px 10px 11px; - line-height: 19px; - color: #999999; + padding: 10px 15px 10px; + color: #777777; text-decoration: none; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + text-shadow: 0 1px 0 #ffffff; } -.navbar .btn { - display: inline-block; - padding: 4px 10px 4px; - margin: 5px 5px 6px; - line-height: 21px; -} -.navbar .btn-group { - margin: 0; - padding: 5px 5px 6px; +.navbar .nav .dropdown-toggle .caret { + margin-top: 8px; } +.navbar .nav > li > a:focus, .navbar .nav > li > a:hover { background-color: transparent; - color: #ffffff; + color: #333333; text-decoration: none; } -.navbar .nav .active > a, -.navbar .nav .active > a:hover { - color: #ffffff; +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover, +.navbar .nav > .active > a:focus { + color: #555555; 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; + background-color: #e5e5e5; + -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); } .navbar .btn-navbar { display: none; @@ -2744,18 +3386,19 @@ input[type="submit"].btn.btn-mini { 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); + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #ededed; + background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); + background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); - border-color: #222222 #222222 #000000; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); + border-color: #e5e5e5 #e5e5e5 #bfbfbf; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #222222; + *background-color: #e5e5e5; /* Darken IE7 buttons by default so they stand out more given they won't have borders */ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); @@ -2768,12 +3411,13 @@ input[type="submit"].btn.btn-mini { .navbar .btn-navbar.active, .navbar .btn-navbar.disabled, .navbar .btn-navbar[disabled] { - background-color: #222222; - *background-color: #151515; + color: #ffffff; + background-color: #e5e5e5; + *background-color: #d9d9d9; } .navbar .btn-navbar:active, .navbar .btn-navbar.active { - background-color: #080808 \9; + background-color: #cccccc \9; } .navbar .btn-navbar .icon-bar { display: block; @@ -2790,7 +3434,7 @@ input[type="submit"].btn.btn-mini { .btn-navbar .icon-bar + .icon-bar { margin-top: 3px; } -.navbar .dropdown-menu:before { +.navbar .nav > li > .dropdown-menu:before { content: ''; display: inline-block; border-left: 7px solid transparent; @@ -2801,7 +3445,7 @@ input[type="submit"].btn.btn-mini { top: -7px; left: 9px; } -.navbar .dropdown-menu:after { +.navbar .nav > li > .dropdown-menu:after { content: ''; display: inline-block; border-left: 6px solid transparent; @@ -2811,73 +3455,205 @@ input[type="submit"].btn.btn-mini { top: -6px; left: 10px; } -.navbar-fixed-bottom .dropdown-menu:before { +.navbar-fixed-bottom .nav > li > .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 { +.navbar-fixed-bottom .nav > li > .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 > a:hover .caret { + border-top-color: #555555; + border-bottom-color: #555555; } .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; + background-color: #e5e5e5; + color: #555555; } -.navbar .nav li.dropdown.active > .dropdown-toggle:hover { - color: #ffffff; +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #777777; + border-bottom-color: #777777; } -.navbar .pull-right .dropdown-menu, -.navbar .dropdown-menu.pull-right { +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} +.navbar .pull-right > li > .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right { left: auto; right: 0; } -.navbar .pull-right .dropdown-menu:before, -.navbar .dropdown-menu.pull-right:before { +.navbar .pull-right > li > .dropdown-menu:before, +.navbar .nav > li > .dropdown-menu.pull-right:before { left: auto; right: 12px; } -.navbar .pull-right .dropdown-menu:after, -.navbar .dropdown-menu.pull-right:after { +.navbar .pull-right > li > .dropdown-menu:after, +.navbar .nav > li > .dropdown-menu.pull-right:after { left: auto; right: 13px; } -.breadcrumb { - padding: 7px 14px; - margin: 0 0 21px; - 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; +.navbar .pull-right > li > .dropdown-menu .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { + left: auto; + right: 100%; + margin-left: 0; + margin-right: -1px; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; } -.breadcrumb li { +.navbar-inverse .navbar-inner { + background-color: #1b1b1b; + background-image: -moz-linear-gradient(top, #222222, #111111); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); + background-image: -webkit-linear-gradient(top, #222222, #111111); + background-image: -o-linear-gradient(top, #222222, #111111); + background-image: linear-gradient(to bottom, #222222, #111111); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); + border-color: #252525; +} +.navbar-inverse .brand, +.navbar-inverse .nav > li > a { + color: #999999; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.navbar-inverse .brand:hover, +.navbar-inverse .nav > li > a:hover { + color: #ffffff; +} +.navbar-inverse .brand { + color: #999999; +} +.navbar-inverse .navbar-text { + color: #999999; +} +.navbar-inverse .nav > li > a:focus, +.navbar-inverse .nav > li > a:hover { + background-color: transparent; + color: #ffffff; +} +.navbar-inverse .nav .active > a, +.navbar-inverse .nav .active > a:hover, +.navbar-inverse .nav .active > a:focus { + color: #ffffff; + background-color: #111111; +} +.navbar-inverse .navbar-link { + color: #999999; +} +.navbar-inverse .navbar-link:hover { + color: #ffffff; +} +.navbar-inverse .divider-vertical { + border-left-color: #111111; + border-right-color: #222222; +} +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { + background-color: #111111; + color: #ffffff; +} +.navbar-inverse .nav li.dropdown > a:hover .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.navbar-inverse .navbar-search .search-query { + color: #ffffff; + background-color: #515151; + border-color: #111111; + -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.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; + -o-transition: none; + transition: none; +} +.navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #cccccc; +} +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} +.navbar-inverse .navbar-search .search-query:focus, +.navbar-inverse .navbar-search .search-query.focused { + padding: 5px 15px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + -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-inverse .btn-navbar { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e0e0e; + background-image: -moz-linear-gradient(top, #151515, #040404); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); + background-image: -webkit-linear-gradient(top, #151515, #040404); + background-image: -o-linear-gradient(top, #151515, #040404); + background-image: linear-gradient(to bottom, #151515, #040404); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); + border-color: #040404 #040404 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + *background-color: #040404; + /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.navbar-inverse .btn-navbar:hover, +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active, +.navbar-inverse .btn-navbar.disabled, +.navbar-inverse .btn-navbar[disabled] { + color: #ffffff; + background-color: #040404; + *background-color: #000000; +} +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active { + background-color: #000000 \9; +} +.breadcrumb { + padding: 8px 15px; + margin: 0 0 20px; + list-style: none; + background-color: #f5f5f5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.breadcrumb > li { display: inline-block; *display: inline; /* IE7 inline-block hack */ @@ -2885,16 +3661,15 @@ input[type="submit"].btn.btn-mini { *zoom: 1; text-shadow: 0 1px 0 #ffffff; } -.breadcrumb .divider { +.breadcrumb > li > .divider { padding: 0 5px; + color: #ccc; +} +.breadcrumb > .active { color: #999999; } -.breadcrumb .active a { - color: #333333; -} .pagination { - height: 42px; - margin: 21px 0; + margin: 20px 0; } .pagination ul { display: inline-block; @@ -2904,49 +3679,61 @@ input[type="submit"].btn.btn-mini { *zoom: 1; margin-left: 0; margin-bottom: 0; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; -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 { +.pagination ul > li { display: inline; } -.pagination a { +.pagination ul > li > a, +.pagination ul > li > span { float: left; - padding: 0 14px; - line-height: 40px; + padding: 4px 12px; + line-height: 20px; text-decoration: none; - border: 1px solid #ddd; + background-color: #ffffff; + border: 1px solid #dddddd; border-left-width: 0; } -.pagination a:hover, -.pagination .active a { +.pagination ul > li > a:hover, +.pagination ul > .active > a, +.pagination ul > .active > span { background-color: #f5f5f5; } -.pagination .active a { +.pagination ul > .active > a, +.pagination ul > .active > span { color: #999999; cursor: default; } -.pagination .disabled span, -.pagination .disabled a, -.pagination .disabled a:hover { +.pagination ul > .disabled > span, +.pagination ul > .disabled > a, +.pagination ul > .disabled > a:hover { color: #999999; background-color: transparent; cursor: default; } -.pagination li:first-child a { +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { border-left-width: 1px; - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; + -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; } -.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 ul > li:last-child > a, +.pagination ul > li:last-child > span { + -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; } .pagination-centered { text-align: center; @@ -2954,9 +3741,63 @@ input[type="submit"].btn.btn-mini { .pagination-right { text-align: right; } +.pagination-large ul > li > a, +.pagination-large ul > li > span { + padding: 11px 19px; + font-size: 17.5px; +} +.pagination-large ul > li:first-child > a, +.pagination-large ul > li:first-child > span { + -webkit-border-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; +} +.pagination-large ul > li:last-child > a, +.pagination-large ul > li:last-child > span { + -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; +} +.pagination-mini ul > li:first-child > a, +.pagination-small ul > li:first-child > a, +.pagination-mini ul > li:first-child > span, +.pagination-small ul > li:first-child > span { + -webkit-border-top-left-radius: 3px; + -moz-border-radius-topleft: 3px; + border-top-left-radius: 3px; + -webkit-border-bottom-left-radius: 3px; + -moz-border-radius-bottomleft: 3px; + border-bottom-left-radius: 3px; +} +.pagination-mini ul > li:last-child > a, +.pagination-small ul > li:last-child > a, +.pagination-mini ul > li:last-child > span, +.pagination-small ul > li:last-child > span { + -webkit-border-top-right-radius: 3px; + -moz-border-radius-topright: 3px; + border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 3px; + -moz-border-radius-bottomright: 3px; + border-bottom-right-radius: 3px; +} +.pagination-small ul > li > a, +.pagination-small ul > li > span { + padding: 2px 10px; + font-size: 11.9px; +} +.pagination-mini ul > li > a, +.pagination-mini ul > li > span { + padding: 0 6px; + font-size: 10.5px; +} .pager { - margin-left: 0; - margin-bottom: 21px; + margin: 20px 0; list-style: none; text-align: center; *zoom: 1; @@ -2965,6 +3806,7 @@ input[type="submit"].btn.btn-mini { .pager:after { display: table; content: ""; + line-height: 0; } .pager:after { clear: both; @@ -2972,7 +3814,8 @@ input[type="submit"].btn.btn-mini { .pager li { display: inline; } -.pager a { +.pager li > a, +.pager li > span { display: inline-block; padding: 5px 14px; background-color: #fff; @@ -2981,34 +3824,25 @@ input[type="submit"].btn.btn-mini { -moz-border-radius: 15px; border-radius: 15px; } -.pager a:hover { +.pager li > a:hover { text-decoration: none; background-color: #f5f5f5; } -.pager .next a { +.pager .next > a, +.pager .next > span { float: right; } -.pager .previous a { +.pager .previous > a, +.pager .previous > span { float: left; } -.pager .disabled a, -.pager .disabled a:hover { +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > span { color: #999999; background-color: #fff; cursor: default; } -.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; @@ -3028,12 +3862,11 @@ input[type="submit"].btn.btn-mini { } .modal { position: fixed; - top: 50%; + top: 10%; left: 50%; z-index: 1050; - overflow: auto; width: 560px; - margin: -250px 0 0 -280px; + margin-left: -280px; background-color: #ffffff; border: 1px solid #999; border: 1px solid rgba(0, 0, 0, 0.3); @@ -3049,17 +3882,17 @@ input[type="submit"].btn.btn-mini { -webkit-background-clip: padding-box; -moz-background-clip: padding-box; background-clip: padding-box; + outline: none; } .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%; + top: 10%; } .modal-header { padding: 9px 15px; @@ -3068,7 +3901,12 @@ input[type="submit"].btn.btn-mini { .modal-header .close { margin-top: 2px; } +.modal-header h3 { + margin: 0; + line-height: 30px; +} .modal-body { + position: relative; overflow-y: auto; max-height: 400px; padding: 15px; @@ -3094,6 +3932,7 @@ input[type="submit"].btn.btn-mini { .modal-footer:after { display: table; content: ""; + line-height: 0; } .modal-footer:after { clear: both; @@ -3105,9 +3944,12 @@ input[type="submit"].btn.btn-mini { .modal-footer .btn-group .btn + .btn { margin-left: -1px; } +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} .tooltip { position: absolute; - z-index: 1020; + z-index: 1030; display: block; visibility: visible; padding: 5px; @@ -3120,48 +3962,16 @@ input[type="submit"].btn.btn-mini { filter: alpha(opacity=80); } .tooltip.top { - margin-top: -2px; + margin-top: -3px; } .tooltip.right { - margin-left: 2px; + margin-left: 3px; } .tooltip.bottom { - margin-top: 2px; + margin-top: 3px; } .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; + margin-left: -3px; } .tooltip-inner { max-width: 200px; @@ -3178,6 +3988,36 @@ input[type="submit"].btn.btn-mini { position: absolute; width: 0; height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000000; } .popover { position: absolute; @@ -3185,93 +4025,121 @@ input[type="submit"].btn.btn-mini { 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); + width: 236px; + padding: 1px; + text-align: left; + background-color: #ffffff; + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; - -webkit-box-shadow: 0 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-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); + white-space: normal; +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; } .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; + margin: 0; + padding: 8px 14px; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; } .popover-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; + padding: 9px 14px; } -.popover-content p, -.popover-content ul, -.popover-content ol { - margin-bottom: 0; +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover .arrow { + border-width: 11px; +} +.popover .arrow:after { + border-width: 10px; + content: ""; +} +.popover.top .arrow { + left: 50%; + margin-left: -11px; + border-bottom-width: 0; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, 0.25); + bottom: -11px; +} +.popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-bottom-width: 0; + border-top-color: #ffffff; +} +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-left-width: 0; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, 0.25); +} +.popover.right .arrow:after { + left: 1px; + bottom: -10px; + border-left-width: 0; + border-right-color: #ffffff; +} +.popover.bottom .arrow { + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, 0.25); + top: -11px; +} +.popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-top-width: 0; + border-bottom-color: #ffffff; +} +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, 0.25); +} +.popover.left .arrow:after { + right: 1px; + border-right-width: 0; + border-left-color: #ffffff; + bottom: -10px; } .thumbnails { margin-left: -20px; @@ -3282,6 +4150,7 @@ input[type="submit"].btn.btn-mini { .thumbnails:after { display: table; content: ""; + line-height: 0; } .thumbnails:after { clear: both; @@ -3291,20 +4160,24 @@ input[type="submit"].btn.btn-mini { } .thumbnails > li { float: left; - margin-bottom: 21px; + margin-bottom: 20px; margin-left: 20px; } .thumbnail { display: block; padding: 4px; - line-height: 1; + line-height: 20px; 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); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; } a.thumbnail:hover { border-color: #9d261d; @@ -3320,9 +4193,41 @@ a.thumbnail:hover { } .thumbnail .caption { padding: 9px; + color: #555555; +} +.media, +.media-body { + overflow: hidden; + *overflow: visible; + zoom: 1; +} +.media, +.media .media { + margin-top: 15px; +} +.media:first-child { + margin-top: 0; +} +.media-object { + display: block; +} +.media-heading { + margin: 0 0 5px; +} +.media .pull-left { + margin-right: 10px; +} +.media .pull-right { + margin-left: 10px; +} +.media-list { + margin-left: 0; + list-style: none; } .label, .badge { + display: inline-block; + padding: 2px 4px; font-size: 11.844px; font-weight: bold; line-height: 14px; @@ -3333,17 +4238,21 @@ a.thumbnail:hover { background-color: #999999; } .label { - padding: 1px 4px 2px; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } .badge { - padding: 1px 9px 2px; + padding-left: 9px; + padding-right: 9px; -webkit-border-radius: 9px; -moz-border-radius: 9px; border-radius: 9px; } +.label:empty, +.badge:empty { + display: none; +} a.label:hover, a.badge:hover { color: #ffffff; @@ -3390,6 +4299,15 @@ a.badge:hover { .badge-inverse[href] { background-color: #1a1a1a; } +.btn .label, +.btn .badge { + position: relative; + top: -1px; +} +.btn-mini .label, +.btn-mini .badge { + top: 0; +} @-webkit-keyframes progress-bar-stripes { from { background-position: 40px 0; @@ -3432,17 +4350,16 @@ a.badge:hover { } .progress { overflow: hidden; - height: 18px; - margin-bottom: 18px; + height: 20px; + margin-bottom: 20px; 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-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); @@ -3452,41 +4369,43 @@ a.badge:hover { } .progress .bar { width: 0%; - height: 18px; + height: 100%; color: #ffffff; + float: left; 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-image: linear-gradient(to bottom, #149bdf, #0480be); background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); -webkit-box-sizing: border-box; -moz-box-sizing: border-box; - -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 .bar + .bar { + -webkit-box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15); + -moz-box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15); + box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15); +} .progress-striped .bar { background-color: #149bdf; background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -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); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -webkit-background-size: 40px 40px; -moz-background-size: 40px 40px; -o-background-size: 40px 40px; @@ -3499,88 +4418,88 @@ a.badge:hover { -o-animation: progress-bar-stripes 2s linear infinite; animation: progress-bar-stripes 2s linear infinite; } -.progress-danger .bar { +.progress-danger .bar, +.progress .bar-danger { 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-image: linear-gradient(to bottom, #ee5f5b, #c43c35); background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); } -.progress-danger.progress-striped .bar { +.progress-danger.progress-striped .bar, +.progress-striped .bar-danger { background-color: #ee5f5b; background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -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); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } -.progress-success .bar { +.progress-success .bar, +.progress .bar-success { 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-image: linear-gradient(to bottom, #62c462, #57a957); background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); } -.progress-success.progress-striped .bar { +.progress-success.progress-striped .bar, +.progress-striped .bar-success { background-color: #62c462; background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -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); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } -.progress-info .bar { +.progress-info .bar, +.progress .bar-info { 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-image: linear-gradient(to bottom, #5bc0de, #339bb9); background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); } -.progress-info.progress-striped .bar { +.progress-info.progress-striped .bar, +.progress-striped .bar-info { background-color: #5bc0de; background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -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); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } -.progress-warning .bar { +.progress-warning .bar, +.progress .bar-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-image: linear-gradient(to bottom, #fbb450, #f89406); background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); } -.progress-warning.progress-striped .bar { +.progress-warning.progress-striped .bar, +.progress-striped .bar-warning { background-color: #fbb450; background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -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); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .accordion { - margin-bottom: 21px; + margin-bottom: 20px; } .accordion-group { margin-bottom: 2px; @@ -3605,7 +4524,7 @@ a.badge:hover { } .carousel { position: relative; - margin-bottom: 21px; + margin-bottom: 20px; line-height: 1; } .carousel-inner { @@ -3613,47 +4532,46 @@ a.badge:hover { width: 100%; position: relative; } -.carousel .item { +.carousel-inner > .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 { +.carousel-inner > .item > img { display: block; line-height: 1; } -.carousel .active, -.carousel .next, -.carousel .prev { +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { display: block; } -.carousel .active { +.carousel-inner > .active { left: 0; } -.carousel .next, -.carousel .prev { +.carousel-inner > .next, +.carousel-inner > .prev { position: absolute; top: 0; width: 100%; } -.carousel .next { +.carousel-inner > .next { left: 100%; } -.carousel .prev { +.carousel-inner > .prev { left: -100%; } -.carousel .next.left, -.carousel .prev.right { +.carousel-inner > .next.left, +.carousel-inner > .prev.right { left: 0; } -.carousel .active.left { +.carousel-inner > .active.left { left: -100%; } -.carousel .active.right { +.carousel-inner > .active.right { left: 100%; } .carousel-control { @@ -3691,17 +4609,28 @@ a.badge:hover { left: 0; right: 0; bottom: 0; - padding: 10px 15px 5px; + padding: 15px; background: #333333; background: rgba(0, 0, 0, 0.75); } .carousel-caption h4, .carousel-caption p { color: #ffffff; + line-height: 20px; +} +.carousel-caption h4 { + margin: 0 0 5px; +} +.carousel-caption p { + margin-bottom: 0; } .hero-unit { padding: 60px; margin-bottom: 30px; + font-size: 18px; + font-weight: 200; + line-height: 30px; + color: inherit; background-color: #eeeeee; -webkit-border-radius: 6px; -moz-border-radius: 6px; @@ -3714,11 +4643,8 @@ a.badge:hover { color: inherit; letter-spacing: -1px; } -.hero-unit p { - font-size: 18px; - font-weight: 200; - line-height: 31.5px; - color: inherit; +.hero-unit li { + line-height: 30px; } .pull-right { float: right; @@ -3735,6 +4661,9 @@ a.badge:hover { .invisible { visibility: hidden; } +.affix { + position: fixed; +} @font-face { font-family: 'museo-slab'; src: url('../font/museo_slab_300-webfont.eot'); @@ -3803,8 +4732,7 @@ a [class*=" icon-"] { } /* makes the font 33% larger relative to the icon container */ .icon-large:before { - vertical-align: middle; - font-size: 1.3333333333333333em; + font-size: 1.25em; } .btn [class^="icon-"], .nav-tabs [class^="icon-"], @@ -4474,25 +5402,9 @@ ul.icons li .icon-large:before { .icon-user-md:before { content: "\f200"; } -#overview { - padding-top: 60px; -} -#new-icons, -#all-icons, -#examples, -#integration, -#code, -#roadmap { - padding-top: 40px; -} .navbar .brand { - padding: 11px 20px 9px; color: #ffffff; -} -.navbar-inner { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; + font-family: museo-slab, "Helvetica Neue", Helvetica, Arial, sans-serif; } .navbar .nav > li > a { padding: 12px 10px 9px; @@ -4507,10 +5419,9 @@ h6 { } #iconCarousel { float: right; - width: 267.5px; - height: 206.25px; + width: 297px; + height: 275px; margin-right: 10px; - margin-top: -20px; font-size: 275px; text-align: center; text-shadow: 2px 2px 3px #222222; @@ -4519,23 +5430,24 @@ h6 { color: #ffffff; } #iconCarousel .carousel-control { - top: 280px; + top: 308px; width: 23px; height: 23px; border-width: 3px; font-size: 17px; - line-height: 28px; - left: 100.66666666666667px; + line-height: 22px; + left: 114.5px; } #iconCarousel .carousel-control.right { left: auto; - right: 100.66666666666667px; + right: 114.5px; } .hero-unit { margin-bottom: 20px; - -webkit-border-radius: 20px; - -moz-border-radius: 20px; - border-radius: 20px; + padding-top: 80px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; background-color: #9d261d; text-shadow: 2px 2px 2px #333333; } @@ -4545,7 +5457,7 @@ h6 { } .hero-unit h1 { font-size: 70px; - letter-spacing: -1px; + letter-spacing: -2px; line-height: 1.2; } .hero-unit p { @@ -4566,32 +5478,13 @@ h6 { text-indent: -2em; vertical-align: baseline; } -.hero-unit a { - color: #fffeb8; -} .hero-unit .btn-large { - background-color: #e4e4e4; - background-image: -moz-linear-gradient(top, #ffffff, #bbbbbb); - background-image: -ms-linear-gradient(top, #ffffff, #bbbbbb); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#bbbbbb)); - background-image: -webkit-linear-gradient(top, #ffffff, #bbbbbb); - background-image: -o-linear-gradient(top, #ffffff, #bbbbbb); - background-image: linear-gradient(top, #ffffff, #bbbbbb); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#bbbbbb', GradientType=0); - border-color: #bbbbbb #bbbbbb #959595; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #bbbbbb; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); font-family: museo-slab, "Helvetica Neue", Helvetica, Arial, sans-serif; - color: #333333; margin-top: 15px; font-weight: bold; font-size: 18px; padding: 13px 22px; - padding-left: 68px; + padding-left: 64px; margin-right: 10px; -webkit-border-radius: 6px; -moz-border-radius: 6px; @@ -4599,72 +5492,24 @@ h6 { position: relative; text-align: left; } -.hero-unit .btn-large:hover, -.hero-unit .btn-large:active, -.hero-unit .btn-large.active, -.hero-unit .btn-large.disabled, -.hero-unit .btn-large[disabled] { - background-color: #bbbbbb; - *background-color: #aeaeae; -} -.hero-unit .btn-large:active, -.hero-unit .btn-large.active { - background-color: #a2a2a2 \9; -} .hero-unit .btn-large i { position: absolute; - left: 22px; + top: 8px; + left: 15px; font-size: 46px; } .hero-unit .btn-large.btn-github { - padding-left: 74px; + padding-left: 66px; } .hero-unit .hero-content { - width: 500px; + width: 650px; text-align: center; } -.btn-primary, -.hero-unit .btn-primary { - background-color: #e7d785; - background-image: -moz-linear-gradient(top, #fffeb8, #c49c38); - background-image: -ms-linear-gradient(top, #fffeb8, #c49c38); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fffeb8), to(#c49c38)); - background-image: -webkit-linear-gradient(top, #fffeb8, #c49c38); - background-image: -o-linear-gradient(top, #fffeb8, #c49c38); - background-image: linear-gradient(top, #fffeb8, #c49c38); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffeb8', endColorstr='#c49c38', GradientType=0); - border-color: #c49c38 #c49c38 #896d27; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #c49c38; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - *background-color: #e7d785; +.btn-primary { color: #333333; text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.25); } -.btn-primary:hover, -.hero-unit .btn-primary:hover, -.btn-primary:active, -.hero-unit .btn-primary:active, -.btn-primary.active, -.hero-unit .btn-primary.active, -.btn-primary.disabled, -.hero-unit .btn-primary.disabled, -.btn-primary[disabled], -.hero-unit .btn-primary[disabled] { - background-color: #c49c38; - *background-color: #b08c32; -} -.btn-primary:active, -.hero-unit .btn-primary:active, -.btn-primary.active, -.hero-unit .btn-primary.active { - background-color: #9c7c2d \9; -} -.btn-primary:hover, -.hero-unit .btn-primary:hover { +.btn-primary:hover { text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.25); color: #333333; } @@ -4677,20 +5522,21 @@ h6 { font-weight: bold; font-size: 14px; padding: 4px 10px 1px; - line-height: 21px; + line-height: 20px; } #social-buttons .count.btn { font-family: proxima-nova, "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: normal; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); background-color: #ffffff; background-image: -moz-linear-gradient(top, #ffffff, #ffffff); - background-image: -ms-linear-gradient(top, #ffffff, #ffffff); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#ffffff)); background-image: -webkit-linear-gradient(top, #ffffff, #ffffff); background-image: -o-linear-gradient(top, #ffffff, #ffffff); - background-image: linear-gradient(top, #ffffff, #ffffff); + background-image: linear-gradient(to bottom, #ffffff, #ffffff); background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ffffff', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffffffff', GradientType=0); border-color: #ffffff #ffffff #d9d9d9; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); *background-color: #ffffff; @@ -4703,6 +5549,7 @@ h6 { #social-buttons .count.btn.active, #social-buttons .count.btn.disabled, #social-buttons .count.btn[disabled] { + color: #ffffff; background-color: #ffffff; *background-color: #f2f2f2; } @@ -4720,30 +5567,30 @@ h6 { } .the-icons li { cursor: pointer; - line-height: 42px; - height: 42px; + line-height: 32px; + height: 32px; padding-left: 12px; - -webkit-border-radius: 12px; - -moz-border-radius: 12px; - border-radius: 12px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; } .the-icons li [class^="icon-"], .the-icons li [class*=" icon-"] { width: 32px; - font-size: 16px; + font-size: 14px; } .the-icons li:hover { background-color: #fbf4f4; } .the-icons li:hover [class^="icon-"], .the-icons li:hover [class*=" icon-"] { - *font-size: 24px; + *font-size: 28px; *vertical-align: middle; } .the-icons li:hover [class^="icon-"]:before, .the-icons li:hover [class*=" icon-"]:before { - font-size: 24px; - vertical-align: middle; + font-size: 28px; + vertical-align: -5px; } #all-icons h3, #new-icons h3 { @@ -4821,70 +5668,70 @@ h6 { margin-bottom: 5px; } .modal .modal-body .icon6 { - width: 325px; + width: 330px; } .modal .modal-body .icon6 > div.thumbnail > div { - line-height: 340px; - height: 323px; + line-height: 280px; + height: 280px; text-align: center; } .modal .modal-body .icon6 > div.thumbnail > div i { - font-size: 340px; + font-size: 280px; } .modal .modal-body .icon5 { - width: 185px; + width: 180px; } .modal .modal-body .icon5 > div.thumbnail > div { - line-height: 180px; - height: 171px; + line-height: 140px; + height: 140px; text-align: center; } .modal .modal-body .icon5 > div.thumbnail > div i { - font-size: 180px; + font-size: 140px; } .modal .modal-body .icon4 { width: 215px; } .modal .modal-body .icon4 > div.thumbnail > div { - line-height: 100px; - height: 95px; + line-height: 112px; + height: 112px; text-align: center; } .modal .modal-body .icon4 > div.thumbnail > div i { - font-size: 100px; + font-size: 112px; } .modal .modal-body .icon3 { width: 120px; } .modal .modal-body .icon3 > div.thumbnail > div { - line-height: 50px; - height: 47.5px; + line-height: 56px; + height: 56px; text-align: center; } .modal .modal-body .icon3 > div.thumbnail > div i { - font-size: 50px; + font-size: 56px; } .modal .modal-body .icon2 { width: 75px; } .modal .modal-body .icon2 > div.thumbnail > div { - line-height: 20px; - height: 19px; + line-height: 28px; + height: 28px; text-align: center; } .modal .modal-body .icon2 > div.thumbnail > div i { - font-size: 20px; + font-size: 28px; } .modal .modal-body .icon1 { width: 60px; } .modal .modal-body .icon1 > div.thumbnail > div { - line-height: 12px; - height: 11.399999999999999px; + line-height: 14px; + height: 14px; text-align: center; } .modal .modal-body .icon1 > div.thumbnail > div i { - font-size: 12px; + font-size: 14px; } .label, .badge { diff --git a/docs/assets/font/fontawesome-webfont.eot b/docs/assets/font/fontawesome-webfont.eot index 89070c1e63c2703b2334023922ecc1664f759b55..ecb3b985ae929d1f3479874653ecd7164349288c 100755 GIT binary patch literal 25791 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

21*bW`*6E)+pZ}PO6{_r!Ti}8j0vi?TI!sX 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 Nb!Gqn00000007DBo}mB$ literal 38708 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/assets/font/fontawesome-webfont.ttf b/docs/assets/font/fontawesome-webfont.ttf index c17e9f8d100d01a002029b5b93cc081062618bf3..fe37941b8b19e705226eb4d055fc2986941fdd62 100755 GIT binary patch literal 53272 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 B<3|7h literal 68476 zcmce<3w#sTnKwLVG?ryqmPgmIEX$HC%R&e-NU|)1@deu$1IBTTLyhB70t8F~1pE#Y}!pPn=Yk!_m_Y@ zeE(-gHinQUeRsc?%jnEGb2;ZZ&w0*sAC7SxXTw3@#P06FWvl;L`ZdR~8r0S->RQ;% zf@tB`T$~4PSS}~;$(z28^C6tCUc330t)VU4a-2WSaeT+xojU@;O~M|IGmN9XZvEB` zo0p%Fzk!Db(0=QNTefdSy~uIKyYXww|sHiwz>cII3&g(}v@A%AfuW~=e`DgKtmp5%$dyD7E|Mw!tslDjK?>67^nXP<{ z@I1#jt-qhXW%I56RSSNMbM%)zx^>I;9rt$qLzZLgJ&r3|vh|Kzw<;H6PL7p#;rX+7 z-MVId{pW5d;Cu(pjrdQ{;a)nlB|*PuZ~BR%{a$$0ptV?WRz)=&k8{TT3I72toS}Qh z5WANv;e?W7B`G|}um2ie;nq|0l|P@wwE#)aWX;w)@7T_@a}^f^Bd4O$7-Z-0qxGbC zO+Y&{;Eev)=xuC1&giNdPGAB2cHt>_KS~u`fZM_y=l+&E#hu}P$Q1(SfE<_?_*Ag2 zuJ#w)dF%Pw^R4Im&aXQE>GOYm{)^`yJ%8$a{`~(u|FiSI`(w!k;qqlX`c5ynO5BRhNe^ z-*ma_a_cWFKmX0ofA;fde)is*6M-7hC)SA7qDQO}CDARqM5pKw?P7^2h=$7FTL1kj zC}^Gf-#akO?Ib`MO~=(!qBRm|{|o=nJp6C{F_l)A896iO{m{EhKG>pTWwE~egYCr{ z7U%BZHnKU~SGm9Dc5^$qhqA=v!(8^$3G0fUn6;Rsyhk{D`%D5uT zqFaNZ;9m{B=`F1E;<}*;?>j5Kp`cO{8&bM=uGAVt&~#}(tOTpha`Zx7r( zGU8P@Jf?J3u3oEZpQ_vbD2DLjP(TqHmMC2R(BWGT-x8q0 zTyHSA(tB7t8_>__g=W2XqE`&!CFQdM|EvwiGAke}rLmErKwwd*`1C5W7Xc&a;_>E^ajoy1{iSD zV)X5%V&Bj|TvjG!1r4 zgN+721^YDvKu1H}p<8ZSJ$)o}t78@harhvCZOOXO;Zh~gKQ!O_JX)NyPIK+7y`zII zeOlz!a@vtDz6m`K93B`7twHZY9bWvfPzNC2J}{IA)#+T@k!JyhA0@C>@!VRY^%PHZ z%~DVcxZn^cYy|xTg{Z_z+y}C@4-3@5m2xw=JlbN4P*6%`g%y}$k`?Y8oeN^FgvAs? zAy>v?+?+(p7PN(fw%|SkH?fxo=`?Z|xqaH&m|W@_)`OHYqU|LYaqw~}E^nhZNCl-V z$&?ydsXC{W74l_O=Gf`>vWl`;zN(ChRnD?l&ZoV~(Ub}%C3h*arIK!!(-;cYHKZGx znwgC?7@f(I^(mJ#Jn`sz!FW74!TIBH|HX+%!zHiCvW)79y>UOa_~ZOOeoa^#J9qh) zC9fF$T$=kAE{`6@l#+r{A}S4mb2g<0!)}rl(>Y~UL5U^vrdiY<6IT{fW{J5dfG{&j z{g*@~SWtp;E`zG3>St`ZfB0+86*CJ;Y_?UgiAqe&Rj~I36mv7#`_I^Z`VWWEUanM# zr>zw>N9=T^b`RQmM^Dnat4Uls8p1F-(Q@?ZcT@vm>oRQ>mfcJJV#G z-Q1B0%b`o-%{R9MgDu1J(HJlpdC&L8U(u^>)^^X!zcjW0?tb9GB5n_tcM5pX?Ja% zU4u#*Sc26?IHIkyOweX5wKDt*)ip$Bvq(e42H;4wOsX|B^MFyNm1SBDEiBk28~fzW zPWk=3+;z;z`MtNjy0PV+6$4*v89jHKx3(sh@~nGtopbK|W)IJMnwv8&oO)6*-$ibF zNwwV7C13nk99I|y{f_>x4JL+%6NATZum@Pizpy>y=zXwHj75FEXiV(;%2NB>_J#fh zL|d?yOU=Nk5LeCR!AQrLQm+l%Sx}sXTv#I^lanpA8d6D`b1PrUFqsiH+t9W5%+}@| zqpPBk)f=}pZ~Nxn&hUc4_{32u;IE!I8Xs&63yEz{@9hrHUlxfhn;-7p`}DSs&)&H? zKJkbo@$2K8cY%ZwJ^hXGF!}*rfN#o#9ZgBeQBuoFnZs?2giDMK83!}j~LySvX0(bs*%dHgUx0o%n&Xyuy8pG+tCYSjcE56 z(Gh#tYDQ0ZyCm7EFLsyY6douCBOAN6|IN_QBV(PTBi?nJR=Glp=7-H5Uv=5VlcD-7+aDet z=r9{AtrnsA@3##7%~)60*xw9o{%*5iu~r(*?SsQ%b&ue5SYsH5#^e>(pr4buHgIsC z0@uHn`x1D%zvJ#Nu1QBBw|sjtNgLhnloBc^`;*EnId}7sR7yz|a%&$z+k9F1o0QU7 zQ2u*T>6LT0|KDh%^{W)uZ$2=mJ&EhEh9wruM>31(tiPbF#!<|D0_%E1QrTL_fA-$v z)Us8~?ZR~jANmHJVZG+A z|EcFsrzhLpwxgo-F%E3lZ8I#TOUIw08oy@SNq@TIL8(SH+hlU7~PD!0^ zwiyThcTy+Ln0x#V>4xA?sNX$tfq%Bs{dcHR9{^MITS>bZ&4Hkshrp-tY2!w&L~|cZR>wP}xG4B#2bA_E%5tt}|EVs05|ZBtTNR8U%y`9;g<(nTG( zYuO?yE=%IBMPhCSu7Yr~93*DZGVm^*P`rdhlNmO}4FScj2`C{C1QeX!K=O)`28UBS zgS(E90{B?jhsr4F#%6Fq5?DbW_(7slG2#a?c`d}eYXZx=XLNzZzREcl@=D(`>!-;p z58T$?e%k|@ymBD;cyNK$bu#F%o^)0&2tICgT#;GUKf4Sv%UtIwJJV&BGZ&6rBeQJp zzyp}w`gpLz>O5(61W!7zg?}4&^CbLRWCDH>#`>}0tawKn@1x2GgIm%vw) z>?Q%%@}C48$oeEz{|mvyegY7w@xL5A1Q@_Xsqzv}c+mx3+k#z<^0nwgIwRLmO*l zlH2Zb@V=obcrayOB_;<4{-tMF_o!JAEc-2fbI+UmMxQ;@-+$Lnuo zd7*+9m*6O)V@Nxuv?Ep?Qs78;Q9#l)4MK z-l?r%8VIh1$j3Ox-4K`oK1qCDbUAI$N7x}rd_i=%aFFyeMoZ-{pp{0B>)4^la}oN- z1gcTTMJdAaTCtCg{0TZvjL^~W7D0O4N9B@yByzDYqT$ZZjaj3Q8{-af+qwKO;m+=Y zazIvmz@Wn#ICd74of>DD`z!|CQpgt zZL#GVZp=b=vU?a8c5Ok`0o!R~M`jyc=dtgMn1l~WmA<#4S!rlq&XV)thjl+In)ZsHU3 z(?(yj-)M1I-m#Wg%w_&;jj6F&HX2*IGND*h2-*{yWwE($iNzYsbQm+;ZDo9-IbG^& zuH{QDVg>H9nvE@Uqx}(!v9&W3h((P-d+K&s1@vac1+16z^NNag`_h>QVI1m=?^>!=a#=uCt!Wdf8WvQy*ftA*tg-%Ze z&sS8r#>0k%qM0{|0xJT9N4xsRuql9rW*b4sG1B*ffo%*)I|t_kxp8%p7PZOsf?)iZ5*(Pp96u$RXf&p*aL2FYPqJ+2N1V}@#fIsZc^bA4YMt9n9x*X*xITTT3G zr*q=C$(o*MdRA^YV{Xi&SUv$928sO@=IJdrNJAn8LIT##5P*&=o zhu74{P_V>li(txZjqH*3Ps~*V5YR1$#heSJhNMzapj{wW?F298s}0tHoaJ0$ocIHw zdYtG=B~8wg0FY^FPz*n93p&z47o-2dMzF-the9S^AMACrPe}o=@r7XgnBl0J_RmuH z+`&IJv6O#G{a}Uu$O$iB`o)eN%({I$dq8mT zY(x2NPh*;*toPvvjsYV|+F-~;R4DF&O zTm-DBMJ0IAR*XL}14FL#goqdAa*263GdpW1c}{y%eJUwT=MpkgT!gL=Cs|kDGBtKn z7l`+~&O#?ovbvw%b=ObTpPf9ZzWMr|^Ft3|!+-hVp`nM*?if4!&=5N!2m3>_UJA-` zP<=Qk8@Q7!^!lDXud8qBcW6)1?|8X*=gaEv*(=%&KgP`{&^iF;RGI*ONRVV^7cB{5 zN^!uVR3MXrv5+@dS1n?lA31r7LH*T7PS5YG=7{o?mb zPnLa8^kXd>t>Q#YwW@k2d}5^`_G{LSaR(@@5~3LZwYYHK`< z1Z-W-<-ys+AYbXf5MHh5gpQp$kK)CIKz6Mcb7qvFDkRkOmVtc2T4AooZv?X=pdvRj zMkEuotO)ktRLKeD8wZ3%1!*T-HXN{gNnjIyElNT``-!~ojj-hvL6(Z)e=yEcev4Z* zNed*^6d@Yqwy7uCF#S#(ix`dv*`GA&wIV2~M!<-{?c<94L^#{EExfx*SF?v(bd(r7zF*f*cJiCVidm-YwCKE zPYdAFR8X3(f=>&^$~`~T(|yV zwbmr{Vs$~OgW(mltO3^Nb4AKc{JU7lMSwnjQ0kngM%%z>Ezm+Hq@PZz9YHCW2{trF zV7)Lp?G>!X((X6B?QgfB{DR;LAODaq8ud+V z^sNX^d>8bYKlJw7Lb<>XOgzb#UxWX1;qh}V{%5D*f05eGL$_;bx2Y_dF-N1eMMR&K z{@4=F`dK7^@UHKl70F0V!4@j3Lf!+%g=12 z_YiIxFaJyFE@KTijm4aWW6Baaw^S1kz2K9YBpBB!(LKpc1}CQXlvx;wETzTbS7$dsY~K~^ySo-hNj)cGVH0K#bWx3n2^@>ZL1C2 zSDn}*T7(oH`si;Ddeic$JJ(4e{=G+jKXnpU7k|ht*uP99h!=J64lW3dL&T>~tV+@zOpMs5h8egAhAStQLERh(A~l6v zG(*3-K^oSnjcBsfz;NHXuy^_JEwo1Tolf7*rtHw*y`bUJ_3xl$kUc;2jF?(or$eY# zRK!E@{NUMiBNL3)7rCPm-AEL<_LuE*VF^Vd6C8>4A1qyEH4;+e_w+_2u@@5m@MPiU zr4hFcwyBBdQ5``o>zpifp*n(QqA@T8{Tgen8hdOL@w_l7YYL1xGJr<}(hS&U0OE6s zx1cZ*&j9urNyRJXYBX92fGZBFhYSd8k;w7G6(lSYVY=75@t!X#sn znKYsLrZK)OIOzl7as&;n0BnQi0^ycop%o9lv~Alzeq}{y=0bT~kh@uy-=0{py{%*G zClXIFbB8b7m&x?i`^NY?BJ(XL=+YHmd1>nj%lyd17v=75L)9Z4cMK*HgWDI3Kf!$V zmQbd@KND(!d*(D=$_Y+mE|-V%Cp0`@Fl^@l0L3gSMj9bkP&nfCa>QMjZP+~xS;c6} zx!l?&K}->NBDi==ZGW>N)Q~3(gWdvCr{tF0Sl>jM$k72hve|}^=JH@{7;bMHj)vS~ zpXdt3SSsQheSCg*Q`ffjs~g(}y1%o{S0Ap~_MPs5w$v@_w{>L}HvjFYFH*9;?dF@? zqMg#EE|Tno??|2FYx&;>JH$+@Rpi~_gx4nskuK30oN)R(#jc1T_`Hd*n-{IESrM}h z9X)&+_5cTNB))$k&A$r*{d664vY;fzTo0yuZc1yCe=Fe1;t*YXeE<@r5XIW=)yXXrBeev4uf9SjmG*>&jzr3_8>4!`cIVi!{z= z^*ZJD)AlDwp+4>0}{i0{+{%9n~_P=tO z+r9hpEBgbH=>0>~>UL9WW*1E3vMC|s=NuL z+v2RB*}Q=21=|^SpsDi)lt1>M-GGEcoP>lO)D_rQ7olo*UVqdp$^j5otD!1<#yMt<-9}k{ScKCkDjLi5;Ux$dN?pJ?t zOg*cD21r_{ZLg1Yxfy8~WX+C&)1v`PMzS1+|^2kc+3WKVqMSGz$W6D=6jUi<$HIP|ZYAc?hynpHeIu z)px?>E2X%g_es*c&P;(TQ^Jrm=W5%pki;Vu3yxw=#LPOeJr@)=jv{$-DiulibSg$1 zb>jk@3}6w%ZW0o6vj_!f)0PXlYVswKMRLK*)kIOw6mqoHe)x#u4C82kDckEkO@j!d>3 z!JjYES+{|%?w(kPMfw;!ap|#p?lCMpa^%tp{+T03)K4B!SLqiVVJ9x)9s$p|bmGVn z4v@zmjklRT4_T_{epM`ew43kB4R@DUR1(+Nde04~o1%v<|0pKcyXRMerp;V4} z5px!lDho=b4qQMMUVd9IROxZr} z-(!ozBV#>%BfVS0OO7@z+Y;H2Ut(iE?tcOcXxZgol>C#XYa{usUM_Y_(ka;`r!ii*@VA}pL(LyCE7g#TS+C!4F^ zxR4oX)Zum1#D}f8acw>SZ=o2*Ylc$)B*wc^)8y~q@(AuB4_DIhjTE5DS2h)tG4kmo z)jjFi$wi&)vYkuk=07o$g-LcLR9}v#An!33Is-sP}Tb4OIMA zTdu|f24HLxYU-EJz68l7)7YRnae^b#3x*FCq*7w2$q5?-7~Wo`Mo2rT(M0eF_OD_C z^!5$RNDZ*=Ykpy+8Ke8Eb2BgSCZ6|Nq_|mt$aXp)I>+~$T_%e~9Eut8zHAvw3p^inM%~odHQpCp)}5~O@XTD#ZxDS# zl>pt{QPD5RLZt{Dm#@?B zT0E6jzv$`A_^pCDo9-Ro*)}AYo%OK=v1-E`qPNoOL*=fH6~07gq>KN7&fL3g(AT@b zGGZXWX^ocyKhJSa&c{JA#{619S6muhff^9>-mNV!VzU4zjT6BZ2QLU1?Ym@wBcEF6 zO8ZsPe0B|%WHndW7v-)XQ&876&2P+xbra|2kZuJp2iFKs1>%lLYG^1Za#D!_lM=Gx zIR{O6-lJJlJ>*=8^~B{GV&D{K11ZoK*kpoal(CV}6xLn+$W@Rg-{sKyYNJ|EeHLyT zluI_qgDqiA%?L+3LGyOIl!8d6S~qfT3crX9M# zzu}Lo`x0Ghfj!Rls{4xcph&Yl7}Wxjg(Mmk=qPmEka?oI_X_-+K^LGrs@5$Zx`~&l zt6lST&dr9avr>{(=Gt;mKbAqgU9p05Nwv@_sK$CIi$ZH5Sjkv5DSBc>&}{hGTcotR8k80M$v*;mW#S$VZ1%eG8d~qRX5U@)FN^mdz1ZMqHGC8^t{jd(caGdCeA|OtI z2mLU-U!wFsukhk&11~sY1`Z?zWaNx+LqBiOVh=z_0Iyy^31B7N&SIMq$SU*gIcF`w zETPL&P4IDUW|9Mn5d9wr1OAfQM1pls^B@n+WR-j)kp~E1jWQ@A12J*x7l8}LMa1NR zc5C_*s8D!w#5aPK`CH~%oGyPk*jnS09hRU|ih9bNb3BO}BQwNSrP3o&xx@Klmgo0n z%@$TF533!PWK?3JwJ~h%=0i^&PQ?17yzSs)RX%&%=ZlN|f=RGfn&k6PegO zH&ri9!O+8$U9wVfPT5&d`jYvIon*_XV6bJt*K?dsB7V>wZxQfvMWtlMYbtvp#2@ULJ445J8u)Utgz)OnsB+>e%dOhhc&J} zfr%lfe)^X-kPb`x3v(dM22Du_)KI+W^F?z@k_%?6v?#>j1b=1LK$Wn;;)+tzD5R3Q zxD%=~IGmC@gHw7w1fWPmDK-=r?~O)Uuo=KJh39zzQ&Z+lNFxH+?!9qSrP1iG>K(b& zp76Cr<1Vu~;BOauoAbjXHBzEuY2V)NeJ{3sWyo_kdz|j(J(*hN=HV5Cr_$Ymc}eH~ zl>;;Eu2}Ox{}bVaxXNfWR+_CIOK^2NyAb)ulS3{OZ{;fnjo630g5BnyCC~FU2Ya$v z*%J0eM@K)`Gu)Bv35TjItb{K!@MV=TfchYyZY{4CMx#l zb6MeiWzO@@w7l`}_v_UaqGEeKmqzvM=i%vc+FWKwEK#|3w9qkEVKbespwcs~4`29O z+*N+ssx_3^O;gcFQ*HE&O6_iO`bAn;61Ca%C!M_T8+sC)kWMGEbMVHbc5I|$E<4Ah zq{Y*X>Di7LU6H2RXIhK*oNm%C&1lEDbj+jE)54v~vxX48_cms>s)Nel{RquF7Ov>#%Y_FX%LN7@f2B2tNA6xwwBL6g}d zij`tzFyonFTlY|t`qHDnkAt?E%tDD^_gRcCV7_275$i>?i}V{@X%e(+H+PhKfm4>r zxs~@qK83C+B`aIW0XLs=5=~0o39mVMyY9D53U;3 zjMk%{#8vZj(+09%hOAN0JYgQT7;vH6LTx_h zwpUp&W42-DVwfSCao$;H^;Y{#mP+%wA!{ABCf;oFx`eu**DdgM@<1qb=a4wicw<>KiayOVKmmLuy_<`an+{blOyAHaWe7 zkA!U42zhgbP-XTzyl%5!?0WqH_T=zJr>WE^xO{hoEYgEs=eI4EZ#%u0e&e-2Yq30Q z_X-p?1(Y*DSHgo+eh?mQRx_F~0vyqz$oR6>yh%cpFx<%M#%xM9<@ z=WpM>i%NaA)3pmaKcnr3Y0W9xN2+j`sGzCC{52rp4f;_`;v{AfdL-TR!2e{LF@G99 zG&3I$q%sz9YBrn62&>?g=_th>i0f$^)xx%1;Q2|luAx+}oJtBOaq!m}}y_X1;UilQp{?o6fT1X^Vv~5h5TQ!CH^kTWYB^_N>_)vjpw5 zOIj>&kMkjl3$qOILC1{ddckb^PJi42`co3_Xa<7diFTh^ z?cCMkHyTYwAgJho+o%aUGTKDJWx``!CU>QMrQ1rpY>$(A`kn zRYTD>1w8@u7I1%oo*dRmNC=H!q1xqQ91LU^O}v`)^Sw4YPZJoQtW z*FM~RP_Ks^b5u5H*N|^d-**43cEr5)VK5Xna*+$hem#AZXfYh6QDA7XD?>AEE)FdgQ+H2|(y-~u z(EfiL7dXd1JI?9jLQu@qB+X(!nm({&*PpYG9@t0C+5b6QoQ{{*FJGCkDFpm;xH#Po ze06N&Kyj@h{szkp@i!PH;%~6%2DMn6OyHe!-vjfb)XGzzQ7fF*$v1<9M z8FNv}?bFmAv@WOFaW!M@Uvhpe9(>d~zP3Fc)RwG<+<&gb3P775X{)}G7Q#oD{{pCA zivK0l0!&#^FXDt}*rQe6!>hCENV52e5)2xfgN*U;k034pNZVdNW#2{LIs&} zi>$cLku81=>3!0z(2rDRa|^)_E2YFO>9HiV+eyXUE>s7zDJBLAAsFAo*Q~y4q54th zkynH6*FxG6M9HcoC{k{%z5rO^4?1aLjLY{}h@}=t8-!(o{(YtY1lv+*aYE88Q-s7V>~s zGlr;W6p5FcAycLeE@upZORIp#m!{V*DkXhT+NVg}0B<5PnnDEu`6vht9BCpA9CVCf z_LdZ=5M^1cfWxgX+`4?u1nS$utc%)P!r_)d`8<0~f{$3@($R#|=w`3IBM-KR!|hPQ zU$q}Q;EU0~Z7kvf{8^A+0N%$%FBe#RVIk7JT*#pl2DV@!AJkk=gVm69f>WL@unFga zl#IfiRctneTyN_k*Pe!w#6!|btqqQ!lM2Y9CKzf*9@@kjTYO;$@8pLaUV9@9jh zA-pTJCX~&DLc7>whBfMM#=pwE9y0{Yyi+opC;AOf?+S%7+0fd$U3i&hgZiZ~3ZDlj zq8ldl*8nuRm_g4A5JQ>m(xZ9c#EhgLIY07wA0HdSrDKB+ zbxqt3rR+mpUs;}AuU(PNZs?1}`qt}x*YcV;5WCcR#VfGrAqOKCx{pl~4(a5if$j&; zeGj|>bCu{lyyoEhnlp2H*FVJj+6M0b!yPx_6Zhf%eZnd@zfHpUHo({qyEFQU99Qrj z2Y_``v7Te40X=jV$gG2(bpG zqD>HvG|=odAhZYSz?gIG*r!A0rdog69Nadx#u<}`j{bOT?0+5`dT*e)dBAP-)c8z- z!)`QreIBF4ODi7g2p&*=vNaSGgkWgfKPv}<9S^N2&WEXa`M~^Gz!Z!();J9iD^u}6 zS#WCIrXfStb5Uf-Xy-<_e1OJ@{m-J=Lgs>2>yFC$qLnbE(2MHUC@J>kf#WINRxZO~9%p-JvkDcMCdiwK3FAZBHfA~~4EB9kiz*r=}@ z@+M3SY-xrs& zdS*mC>YY(fmI*5!cxk(rQp4%6YXs~<@QUr_@_vFH+^^uPVZ@5ky<&CG0ND4S&L{ua zoEr{7r_1VNx&vN0{IE_}&Ct%sX)O*6NCx=~ug;8jtyZ)&u!jcexea|jCXf{vs}b3>eFyR2l+A^d`pQb>AI3TTT#?&{}* zo|M{hoaP<{4`hB8&{W(uMSAD3(%`66w!K3xlGaao#W+ zeKIV183(U(I?6HjXbG79QNYez!filf^7)HV2-e6 z?fRonL@KErPs4d-L{T3ISK}N}&v+c$te_cJ>$m{7Tgt}-G$`g#fep0*44To!72WW4 zb|u2%{z+kjH8LB2kJW1wL!n63#P(id%1U%*E!8CQ-?Iz$=*7FDqP2#9p}0>M{c}k! z`^Y!df9yB&=l_D9*gx1c4F<@dISB)irjtT4G!`ww>aRH$`7c7BXbFYF)f0E{=dV8f zb)y|aH(Fyfbg`Cy!G3Lp&P#G7-6j8l{HEYnh)ZXRP0raheg&|H%l0&f`A|3@JR1sK zS}1~whPq33L|l?IvB*;&u9{ec@DF_sr}|%CaExI0`3TqM6X18Ufqjp zdu8CRthkTv;oK{0kh-eT`Kh%HOe2^PQhXS|KB8-XrYl#yS$i+$YBT1_2cGx}223&K z*9wvjtah+t6zv09XgV4g?E(H-=R7C>Y|tUjx%dUS`-g;ibl{^%-SZ4$Gbg%{>_w;N zU+A1cy#kA}k&}e_n*LPJi4&THr{A;~6{A1VV-r&Ek`M;=!9{`{6yy5`FN;eZGm+l*{80r1cnQ|DmVwnD`W4IB|=X#RG6D=J0SJhev0T*M<=_ri%*6 zX}oqFRx5bz6!zV^E4+3L&LB^j-JH}A0eeD>><1a{uoI3g&P*y9K{TC~AuANLHNx(L z=(;-B^|)|05MkQpSB^(m!V1n_p(y<+5a6?S7 z$k^D99b;qa>uN!LeQb^~%F%;Wyk&&<{3pZ0j(xWJEM=Z)Y7 z{84|Z{z(0)Rvi0&b@>i6EC17*X53cw#(zjv+dZCli)Zg%H9s|5+9P3^R2Tu`ATMbD7%81E`FsLJReP|51Bue!# zmKJ3CjD+ffu(v{@&@BwGuZHSK$ZV!ay~*n!Wa@VtLy~yHJ}~y+AY#E>gAa}k*pZPX zqF1@ZV-dY7!Z!Pk-bQ%^UAG;pc{0M>;*+SL3vhl)bUH=;%+v#*A-(niQ_q~d{1k4d zSJLA|cSG@MBAg$uT89xx?H`Om)x~pN+fws z(Q$=iK3+QTf`qqkj4t0G*-bzsyvZ6__lsO!UElp-z0_1T1LVdT~XbHE0| z57;K%O&$vizCRxeJR{h)LgqY@mfdI$mEVD_NZnwG+U^i%S}uMp;CwrTCz#K8JZ#Xc zJxg705k<>2vHO%eb`oz8iGW-QL}m0y2OV#qsHV*d@d&vY;4TomTousp#tU^kg7l@> zpMi;6!fGO41pq)#qTCR<_Uq-4_fM-07qHYKtnW}8@Fjp1ek<7Xln{u#U){n8TRfi>>+;h-hGV*?p2 ztGg~gYVe?bP!AM|OcbQe&xz#sQi7;Y$c`c@2uRaHMm}g%rh+83b!a4d@qxZg^<3xsjXdOtsd>@*QF^5xrRYbsu1wa_4x%5Bpouag7Y(f+iqN25 zO%9IU&IYfN3HaA^QRI}NH*(E{`2f4(yuju(0nL28h#xTA5W<72_EEZFQpR&R2h9$L z*`cs?3vdM*NUok_`bj+kG>{e^&OBJqk%lj^FnfWedeZFop^)lIEm1G3cc_1O#3=;% zpkO@s3fsnaiWN#?Lvj$6YO>K{%<(jKqj^Wh3+*NSx$|3Me1|8BKDN=uAn z6IIhoP+v)syIvn?0%GbQ&yzD{GMvSgQgz4J;eIdyy4X)p}WxjJlm@QVej*3 zxGS{8`N9j%VvD+uTG+nloz7y*RlH3-vRmC)G4|!g^NsA;D?cR0H#)C zcB0%lUP>&GFDsu#+##jCGE=4y-MAJcg7@JNjN8Dkj*Va z$Ze*NR^Sr}U;q*MbGjzB7_I%t*FdQR@-_W*O%2kl=SV7BoPpV<(oxdfi_JaPkErpS z1m9UM*M|79ytxKBCP5bUC_tF`iXV>vHwa&7iWJg}H@ekY%QgdI1(FGMz9yt0Q3iyN zqP&JgTH&dn_9E$wDT-qO|A%I3lkTAl<3@rK?Z53gDxx8N-}CAzuv92qt9R z_w=6lm%keL-fb4^xwXmus; zWyb`s(;xN>fAgiE?++$;J|22N9sk{{>kg)Se9{bw(kl9$$C>rDM`AvN?%5+D=geA% z~1nuRfs;`ABn-C-ReggKc6Ygo?GCyGw=HQhw24E4u)jj7+-&4Orw4H z_R2}41ZoW)w3{HC#G2Mqca|6O<(hz7z5oD5c$Z@7J?ub~EGcqR}o^gw||a6AD|7G57g@_`+g?-EQ)h^Ed9kzb!Vn;n1p} zk+)R%>pSP%$=YILTR$mUY<8n~oBICl&HrO}SJ&=Sz(LZJZ!T>t$#Nbp%PoVPtbnbB zW&mi|QcxDl$_z5GF>;DdpCg(8hx%@9ndfc*z~-faa&rj(cM4X8yO1keevL;MTcJ8bN0^B z|FN^9W9O3__kFLq`O7PCb5GCSldJpgnb-VNsV?O1yDcPn0&@QrTEBWO*+%f5b+D3k z!i#GJUuV$ssC1D>91%}~-6yqua!w()icoAO8Dks#aSg*3b^(6=tkP!t7USX#sU?Fq zpx~7GyyLTSj)@CFB(Om)Mzl^ zwfR`@$ng%$!EsgI&X8>+*0+iO2_XC8p+#2nqgE)ZdQE=o#iMZZ7pSzo>&*uT_Wz)H zwC#nlzI*1kd^>m*P$vvu^PGR~iEW2E9v{W5sOrBVL6Pc=NJ|cU8hJ@In~w23=%o{0 z7b*IRloscTeH+*cJunp41nx#z*8uD3M>KC2LM2Kf0^+BQpE%qGiYhN|$(r^~KaC*D zTvJk6$_<<-2ZOR`K%7Bu?0q%XYv3&|>k+G~(q%maqXM84dJpLv!+Iq4c!OJh{fe+K$<{+LRc$xTP55`0B$NKkHn&6|* zic$5#Q*;n}+Ir-b`82*ox0CxTe2MOECUf~lqQqbvmTkc2N)Wdr=Wp0JM%uXMLjK0v zcTrudoL|2APO57|jK!ASRJTCRe`4Dns#}Qsv-?nkyjg2MkMr_Et}0AAyh9qhhIA3l zZOP>6k_-nPq_?1CL@g!Je0a1 z$lbn$e)aUUdW!H-v~Jpp+U!sgp8A_{rjkG>7?T`Rb?G29v7n@+u%?Y_dJE!CrvB2s zSO~bcTaGy6OVa5jaaTew$gYGdzPJfB&ImC%7thMwkHY)qUnl?H(ThJnWaQpN+j@K1(%vy)x4f{z-a%^jtFl9Vrj6S+yEyZb)v|J%=d$JtAkc6w~Bi z4&^YCLr|nmDH7!}5FDKmBm2s=_raY_d?R(s@Nhh{>)`QqXA_Wb@L)9`N}Nrv8o4>1 z89Vscnm3@reWPpV#^G4YT%b9<(8%D;DiSE|XgFQp14ln<9 zRP?F8vwQIYvETb_(Nk?3QUBzjLCG+BEW&2=te!hOWU`d4|AK4ctI?qtG6b(b^juV| zQGajudF|?NanIw?p4CO(O3ND+LUv$E21C*kq+Uo%lrl^I7*?)?k`md#*=tHoJ>?VG zQ!D^eM1uz{BOtWtL*i{n<4PelbP)&JS6Yq`OWI(F6gaI@Uto z8Xzv(S^}=morEbsS&$-!p)6(`J2pvs6gi;8wQsl}b(4}tx-aSkitv7l!NkUkHtd?jcxgx@EW&sjZ)L-~o;q#hl^|1i*L8!kt_y=Xf2IU>J7cZq7 zu9P)>-B*pAaI0o-Cv_ZlLQNglKq(*~hF_(H>#I=(eAxoJKi0a`2a7wanONoPt=WJA zQ&o_nnhlyxb}C(?HeUR022UD9valPrX`jqc4GhxidMMiP zYzDhN=8orh$V9ubH&(&!zM9L2Y386wLmG(+2TfiDO&&4=Qs6o!5LvJ)pk~pM2*F!g zv%*)vJWc+jvuvl!?4BqwR7h?b28o@G$n~enr7DnEjlkNAo=e4$NiazcU7FO>F@RqH zzeS$kdJHAl(@Ia2?ejE5JZxXoleu`xXel3`SR9n!=l{rmD>(aN2A+I-sa@Txw^x`9 z=Ud|JaeP%|DBdzLgcw=%ZAgL-LsSWk-_{aWhoFdmJl?{eM4}LYK<9I`oWqS=JND9p zT)vf{0GS*qClC#TtffFoL@i?EDH&OV7{X?WJ#Q{3%_0S&;d3FhpHUWu7q(s4qX%@$ zA|knSmXi0Cs^?2iS6HeLTrJVjz@4^K&6X+DnLTAe=$&4kJsaW6xn|<!ZtddWjA6F@Eu(EYmx^v8O*#;BH`Pblll*Wm|F*LkoFb>eSCEr)a@xyitc5Te)-J70Rb7=f^{yix$VV3Ghmv{M>1|Qa#rZcYw zZfQDm!#T>|NV{4V%FYmLlWP4ETM%@~ zFTX6iLh1{W-|tqx%ZB6pg*Y`!>I*c2fV_cJ;t6MhqYS?#1?$(oto;~u?m(CtKdu{y1W9)YIL4#@h zJ-&ZJF&rD$Vh4);elBF^^A|JRdyt#QMu_M^Ks{5o%DHWmYk<6`HNLXwDvew#nuHE9 z6yEkB{Reo6Tm^_s2Vn$n(**Sgg&-pk83(XEy8em6)7_F0N)s)clVqfjWGk7%;ay_% zr@9-2ef`_~sh-HCy^)0}|4aSv+_O6OrHxesvej&I3sR{`MDBuE6@qwqaUhM@Z=;cS zRpBcE6`m^IYHRNEh1@N7udpKe7kVL2iDhnu)hxuJu`&k3gDd)LO_E7^LHO%PPs+co z|I&YpcBlM!FMDXqj`XViea4j4VTZ!YX~8!cDL(<^fh`n%7bK}dKLB!&)iNgGqdSBUHAy|=o0fk}&b4DTW{Ef?vpF}?j^;v0tf`dS zl$o?PGsXN#M5Sn+urQm_87P=z#9)%N3qKx8frIG?*bw?Hft-*tGxVxF01yG-w*v4D zYW0)QznRPxPrG8CmKtLvxJya!4X;suvVp#@v_ah!0nDxeA-`X&cpN}q67}K(y@FAE z%xCm4^^L*6;}*xn9=rg#2&bRWB1y}K4 zDN=u@gCCWrNtd-~CelUamGJ|4fQ{UEr*-1&RyJS#J_}{n9_a1;90bF)2bT68SexA* z=^SZHjdV3Mbd97^pX`h*^5AQ#b0g#{zGUO{Wj}IYYy~I zznvaO=}V(&zRG6z+)kK!`7QAB)zDzwz;Sls$9bqTVSr>AENAUIPFhZC%3)WE%^vF- zDhN_;+QBZ>>N3s$$JzV9w^3dB;+oNTEX%Sy`a70oS(eALqA0Q~%d(;<{;w#G;~3+( zig8RZ!EyePgd~IjA*60dvusLJ7Rr)91Dj>@WBKq{Ne;9x{X+uVEi8CxA4^%bkFwp} zZp-!`rCqj=Sbg7fN3tEDyYKxVmgdi$(agQ~+G=5qt-LzTe> z@5pe!6K3PYexK8940^pIBmLE0p@#PP^Y8p}*RC&iINPIVpMPyK|K^E)+-8-rwERES zZ~efDoO@d!U~=>ALz7-l49m6Q{%Urk=pp1>i?Z9z?+2q^ng@RWHtN8M+(ySVKjYSd zO!g*bnZY2~2IJa7)*&!Sv7|#-*V$zXB`G*0KuT0gC^1aYVreaCyGa}&WLW253#t(O z7>&M8Rn*cED;Mu)pS{|uh54taYvgiV#-+|59$g?Cy_#M@hiq1wx zR1C}@gK5%Q=$1Ib?#Py-9h@8~-V#sCnp!SAH@hEuY_u`l0<=kwLg|tCHkikXHdyjq z&2I-2ZF+-44ps^NXh`HKQBfcy>MHa(T_rd=f_`@=BCbNM0jI|;$dbM-9t_5p>x{A- zaPs~(c8O2KV6Cszu}gvhce_h3gd+ZGkE?J6_XODQke(=9Qxop-4(#Bcb1HSBP_7ru z7Na*D6m^25+94=@-e{3TVP$Vyxgf#)5SDe;NkR>VW0_zImtraBEoLZaXe_(Wfn7t0O0oE}7Bd?4sf;F{*B->KA=$VPozA{b0W z%h3)Y2alLCv;(dQM0hmBM6ueuyQhmt)$Vd3r+bZ4 zkQ;c>-GAjf;l5R^;Z>`&_E0C)UKbm;RPJgo#;x5NS^x!Lx>0Qr@H-Z45o%7mDC~Zi z0rZ$ibBzJ;QN}aPrrh#mingNWnfA^uA{EwT1EBdiFE>^#@5gSY5(&$z-Aib*#C+bY zG`AFUDRgj@xrSNN$+Oc)@&^}Mqc5r&G(i3hL57Sp5VJ7zX^_0q@M(i=v4N6=w7&7s z>s2-OyYC!-FATbo$hW!CEBA{Nd(Pdb zv%B18eWk$L46@%k@noN}#(UrIv_C%h+Uc>e)2|&o@ZHm6qOf-?N}qUBTvBz?wx|=_8KCI zn^|#9D{Px_#?l1K*>>hJx&t#Ubeb=)y6-@ApOgjIEd%6kKeLQtHqYH!P1@$Id!RUj zL=o0a|9F*A>x_459hFY{q^xnPtxi&6K~24Hc@86wc>}y%%GHw zi6370#SdS2jLv4`F&)ljVi%2>wNhr?#S0yKe*K=h>aAq#X4Bvu}9F+P~1L{q5he64TPm zk?Ff}{Im24O0n1i(^w9_vapvi#d9b`jAKVYG-ik$A)2w}1MBYo?DS%OF|Mn!a4Nob zVBO%y&Y~pIiDmoAWd!TSt)}xjTk8t4N)n%#>t^)j5mUBqJHA6^5Z2v@-mS@Q2Oayf z-q7liKR!Vv>r693*`DLHd53wXqI%yw*eu3^tM*CyEGbSp#TiE|#Zt7i;Idb_*u9ZBzrCw8{+B{t;4b1ioTLW5n2gTawKy-u6i+O+DJvMgASpS{)N^%(qp2}q9A z@AbLD{qmAZSG->F+psz@`1{umw|Kgv3Vh~eiRoyh-|vnDeauw?KURJi>)w-yWIU|7 zm-`{`8akn zr8f+D8JNutgh{{#RztuBr0gUP-aVVSTgu*pEku+dCnHH!#~Z)-zA7CXq|9{}vrBa! zW|myM@ZR5D`g=NDlG)ajv4XU78~h`sAnimz`IgcTFZ?|J!oRStZzjO&m`8G&1qZ_UxNlIK&Wow%>Gqr6CGVv)n$79B*vg}uxa zL`HAkU|Hf{I(psI)&+s#x+-wk%8qZD+PZDwOi@&J>oMTpdfOoy=EJ6JtQ+40=4@*c z-;)Rluz8kkCrP-Qr8LdPu7&R3815gZW8J11SN-Z6XmiqhUZdZ5Iz;CI|`y;m!vk2&+;j`niLc7sL5Kch;FDkHwR=I}DD_f%Yw{d`gwFN{MYB zjvQ1X?at6BM8W0p)mnWquTZIqLJf(6KM?WreMgT!kPhw~?}7j|SQAy1l0!&9wt_*( z7#DTLNf0^{w+BadC#$U%YcLg_I~-0KJ$7rOSxGJl?43-iq7&r>h)%cSx2ke5FdT*) zc(AJ0=@Ort7X<#O$LFc^ty!s;%1MA~AV7YjE6xi{rh@?gaj;tdM4Q4Kgs?>95%gNx zA|^n_K>n&T2f2^_MRw*B{*W%6e^C2GOzh`g@qhGLk|2C^zIXL~NTTD}kB-NyD-txj{Ut zjgrhnws}edY&G!&&ZIPPK*y+f1-w20T9__C7SPGf<|AaoqHl`)=B^+!;nO}}HSb5j z^W2+ehu+}Jk9a@<3(^4;xTFS)U&6)Q2zLt-H+m^h86{gKd?5IfQ-UhCjp0Tuux>R0 zi*Z-M#-+?=Te{(rMN=bGJU}knYgl5TQq`sabpu@hW*Hb1ke>qSzo33l1_HqQ2mq&Q zGI0Npr};DJ96pMJamh5xnljb#Y)2caV+|>f#38c+Jd$iWrJ7kVpfxUDF{wZUiYvv+ zP_)g1)tJc!rW_TOK(RC6=_{ZSU`+7~cNffLpBviy+E6S$G!%~wiRSW`5F+!E-oouM z>t8mQq5}!PRPn0ba`t#^yI-`ws5gJiZnIY?Tsw5dq_>#M`4zwQcr-u6 zw%@+*c&%UZB9sR8OMaOHVjb8nI)PQYiE`z@`5&OT&px`VnGf8nY*)7ytd_#~L zYeP-%bu@%FnR4E)H5i9sP^KY|Yz$l}Fc0{`ph>}`6lza)g(fcMWu8HxtyGgEYz?Ge z(`N~XV+3r&RRmRATma}bSRJJP&d!G)KG7QW>$u>a?+(NwLOjMj?XVeadfnXR{y%^G zWn*8?$PDCR|Md$q6{x2jCw^3W^TH?Q9 zV%(1-29G|nbu?)-y7k)0C(ftShdOwl|Jd-4I<0a4@pIqUl%I0cNZ{Y_4(*N@{IS;# zzvJP3zCZSq8R$*9-62;mQqE5x2*#)(LSPw|2{cY$PI00D`AbK3%s2LCK)((?J=IO=$% ziti#&P}AH_*@bz#qn`IvafT~- zNgBFptaGSi9eF$o9yHh%VY>IC>td_}YI|8>taB2TyD6UaVkSWH^P)fI(?&HeieOjB za-#y1AlZXhtg;Fd@J`V9=?U@fbaW5!`j?i82z-T zL%o-%2Cq!f>lSfPGHni;f7~3!xGJI znC@~7{dBs)4orG~18w$~Qpf2}LT^Nx&>K+-q-|T#HTs7k#wGFY!42pe*&9(EIZx|2 zTUl(3q1Si@H;}pnA3xbSkq;3DH#YR4B0yowIs=)P)C}=(8j6@X(REmmK_LwU;=Q62 zRSDUr8I+f?KK3Bc4&0|k4i(wUm)ZRaf6f!I1Lu_V1UH^~?OWbg^*uX_T9>T)5P z@=1~}6*V}G0ngVvkKZwF(Rcb3kE>phtKb)K+Vly<6Nz|~gx*?XHdh*Dy;AS;D85d; z_4XR^w!ME52p#K{dfWu;S16KJNo&~k!XXQJR4LVoN|&QNGQ)H*HK)I}RG>XcHj z3EHbz+Jr?KHK3}P(kI%J)LI61CEF(kWh?2c;F4)vJXPiYN+@q^`o^olpeR`EhCp9e zyW;8g;GfdowR)KW_A;3Mp1%EUS1FG!;;jF>Ji3&-O4Su97NC$vH$d8u1IZrXR3PVqoJPBe~L@2R&qd))UCj z`aYRW_X0eyAHvaED!cO)M8(JbhPom7d-LKNj2ELwb4}}(`DMqVjW!B-W(Y|&{##wz zpq)utNnlBc8B!eMI_WK-DZs?6+WmPD=L(pkJvG)Am)>3>FLOH4(5t+uG#?!DC3Z&r zqha3F>v8xEvRDEanoz03hq=Vx7xa!y-qAns7X$8X&rS)-h@bbyjn)z*yDg_AHobnO z-_>(h%s=Ea0_GF6T0JJoX>{3nLpd^t8ubQ?`&vcmYmhxw^D^tUubw&48NM;S%HcE$ z9&`qWvexZhJv7W@vJhL|PaaT)sX(l+w*#W6@h+vIa&3rU;P9-GV=ZQHV|qT>?U-qt z1b|frX&ve*)C(Em*?NzLFZ^@GhoT0TLBC{)w+xS0CWuOdE1YQY=tsWypgAVXiS|yX ze*MIlB&|de0=-c*ub^Hd5UX5nz4?a8wBFkh z4cVO~b$Yi|G)exTztYzobVgjkKY8x;-TqzsZ@F5>_Yqo_;=X9! z!;D9K2}{_#fFPwRmF^CDK5-!~FhdpRGSceF)H6TNL1`sjULXygO<`aXQ&n}E+LM%6 zq_?QQQ$cm+qAi;KX+rBo+zDHs32M$72d&Q-n%97w6sk`hw06+URXRQ*PlK-<#D`fM zxkF(}lTF|f&6JrDMWmc`?CF45WshPiDC}!@a@1aV7o9WH(>t-pu=j zrwZ#NauHd8Mgmg~0K5SNV6Y0jkqy#VGctD5>nJN^!>0_b^^I_z7o?~lOR5Z_w-ju_ zG{|C5h1$!G6eLuQ-=HHfkT=62vv_2^j77jDzS<-yQvd8B_Zpvn#MgO~-`S2VLb{R? z!7l~kK52|Dmjdzp;G7d*O%%%iGbr{gX~`IW6FB3 zH&rwJPlIN!5jo2BRT#hBy2eItxxrfQs6(>cm}FeR^Ht@E(~}Z%`nZkKQoFRw8t4f~ zVNnpZS}8F!!RA5{xJw7{@funj0y`9gW4Z~G4RcKuH&v&#svmS9x&j4hL;`&|Opi1K z!49H=h)UZEV#kvB`Wl^9qv_BSi34GmS7(lfJ=RKp%A@!#HRgLxeWAt?v|HPHhQd0@ zTqZ?KE~7i*oH*hXO`&1Q?DQGs#%OA-EpYz5{Lk9e2{|H0=xb1-_CV7v`EJuuj>~t*!@%f4GpB(u5 zd1mut`hZr3Euslg7A$^_jD8-buOZP2f-Wc@HCEqdRPv%$fe9}a(S^{R02ZdW%~IlOou6DVV$0HDZug;G9>FOX zq)KJ2E9!U${veZGdJPD}yd)n6qIAhgve(1bojG7WA5Qe&Y$rYEkSV)m8;(sQkN0YP_m~L7mc5xGrl1q;+lB!ez#vtr_7X{2Qp2r4X? zyU_@;x}s;Gw-RKTRQo-?nEG^;`J7T;6|H>z1CX3@!C*1!+HV>g38(+(*x1)bL+R0* z+A-T1uu|m*)*Sn7{^`GaE&tT}$3B{V`4_wTzw*%W$(3yr$A$*KGB|i<@a#*7d!<-T zUz7_XR!HaUaYytzGny_H45Xrp!%?qPITS9m97QnFEa!i+|IIYC=8=G-GnueCf(bWr zc{tpOpu@T{+35(3_;?}x=Kgo{uRonkKFtN4_n+xE2)5AZ@y#Pg(gCCKndzQQn|gY# zzy2kuOtcJe{(8hjSwivn8H!m%6yiyo>p_{K?nSYPA)sV-X>zdlA@&W*E_v`W4FGqj z(e;4HAn6u5Q*#Sp8%xjypn^rIAB7_sgnnST0^lB?9tjSOZ+Ngj7_kzL%kP7AMgZXD~n+)AH-C`@yP%Mb3yf23!^ zuYp0qjW)G_EqpC-K8(93>+OQ1gSe=ql18(VHd3?(Na(ZHFbs3Ri?72&GUu$TiEKn@ zGs2E9UB#wzT22;V7PRERI+JDwd&CYFVOmc@7gaScj-5&%Te`+ZwU-aY2_f=#(HO~qqhKgko)s@11mG+hfiu2b7xv{7iKSF4hub z9w33S)B&1k(NMS;3v3X7Y2DMKeX3`-^_QZ-9a-)BXmDunX}hT;M-vUPd?!lo{f6L{ zuB0V*3IC;-pGGx*jEfYvE^&9uL79KEb7-h@4og2d&j5aVkp>#j`Mc@!65k_%ALmM^ zdTsH_7}M{-!-IAptTnK)1VmfGv`%EKMKxm1$=VQ@oYey`Y#K``>p5+N_ex zA$U6!>rH!acAJ;gRK3)>QR|!f-pkMR51fDbdsF=TKknSvyZ7Y4SXcf_hHInIAw< z=UDQyI|mGg<*WK!{#9KGS0E@lYui72?Bvi`MCuv4d4=|DV%KPIWxS>-WY0(Oi)nxX#{{41zI7#m;-qV*=s3o#E{W))&>SjZzF7O*uUTxr`M4L6pFlMg>L)So-G zT?~vIpA@zw^8xd8I(^iV4Ta|wCdq3D4+uZLDq$VPJ-g)EOFQhhG ztz3W9N;+;~ZMl_S3wSWHwE77GIk=EF#4MVuc~ zEohiy$q5Eh3_(jN6!gD!KSwAvq8?9d8L zO7nT{?=`s=n%gi#AXaZ}%S>#5m<8aWLznDpp*8BnY-R@wc(^qLn@dq&ghntQ>Oiz_ zq%T&@=Jqg#jXgVHSHr3npr1?-{aW>e*E7|T2F2e#cZp+zVx%e4*OZ9>RZpj-NM}njZA}+C{{A=LRYd?m66C|XtNg>vodqC?32yFRJ@!I9&X=oc=^_A( zL?gOPn>2%FhtE4opBLWaUeK{ZebUUDzO^{sPoEb$%YOSScKj}B=FnYtLXdEFL69>2 zaR5n73kPy2M3U8|zY_?O*65o4Lw7BBy}2$U9geg{+xph@uU&kK3Ni4=YM?;~JhBJi z5lc&q*#xU7z9SnX=l6!|Hj?=e&hgxm8!0!MCc6YeIulG@%iK5;I<4B6G z@aWbMuXLp&;dG~xXigjm4(v`TaC%<_A(4DNVdRG_LP-2ZzC9A{;{PCg1UeShT!%59 zub|Zy_t%;n*i-|QjvXtkk(Qap^#RBac(F%kvm5S)dIgdeh|)o_SY&pFfGfFLg0Ps( z3cV2G)}x95QEIke0SlNK12SkWf{b4pSx>&m05|!gXVG3(<7m;i}!VpU&+Bzgg9d zw_sB>Hb%S=vWG0#6;(@->Ouyx1Pc=q6+~J9jZ0fhVC={axquW=VI{bQiL{ZTZ3$5p zDy#&ehY)Z^j#88)ktBk<{qwThmzwMt?5rxUl1CsslG*L##>1&pIDc>Z;iLBrrVek4 z`xJ=IOC(2kbhkn-jE;oWtMGhd$8aEZ{MfNofJZ?L(&bx-B9 zPe*!64nf8kdP*COq`MS8G}RX0la3@O_XhmEin-A$*Hx}!xDtqolG;5GJdg;jR65h) zNIP#_YVQxbeBL!CgTol^@ksz+AppS_jJW;%k?3?nhfq)@+EW)^zqa4ccg;OjKx)yP zlRwM2<5ih?UPIH$-7GSD9ZU?g;>;ajtf~iYLAT$)0uM0fEXc~8vza@ktPXwumRS-D zq~0kQCWo)#f}$&iL zr`mt_9?fm#xYNuvgV*AcA^ObW>>|+sS`ng=LxF{ZnW1Ev`%7<*8>UuNhi6#pW0t=BSyHmQ}2u-vWaQ98Q@j^Gsjmz*_Y8>@@t# zGu0bzID{QdcHKP?rXZ|0rt@x1L-Q~RM~OM3i)X9h!kW4Mh8rj8&<<11wpE>8)T}FZ zIZEhu(yd$|U_m@HD9 zDylVr&>8d6LI@`|taoBq-+*B~l(;R3VZFZ2=eY_H)$6BO;EqoLJ$XGQUpI#QiUrUU z-`*PS#E@S=N(tRG715N$k74#|td);(cZ5eNW6)^$Wql3JUN_vuX0ML?ABR(`T7aG` z%y|H0J39L@L4l~k>T;u&nkIV4feA@bg=s-M19eQh8k~cmo;6aI?0P<+M1Uj2))cX5flF&f zuGum#FWVU?r)pkaE^T<9@PiPH?M)eHQ)WBtJP-^ggb#x8Li?{)(Af(w$OQ?hl4cxL zPIUKb`b6=Wt=p%tyNy0`IJKywSI2WWOdWk|T=Uf`N3|31!R^Iv%*{BeRWu>%&Mipa z{;W{e*0cXM>WFJh=k=AwRWx#EhRnHTJAu26XM841M6fo_ct$7Ge(eF2JlEJiL}w>V zGwai%l=V8>LujE0_2=^jSyQuxZUgwCu`mr3EdS7*7>bG+qEwX$4p^YfNqJ)PfHrDm z9#}Gj*Fp*)304pdseQFA3Q%H8jCNwQrGn95+EE>NDoSy2$1V=RUYlHJOof4qO?iBE z^{G8;g9lcI5*UJ8B2Z)a(AFr8*avw}wA&LN9>74`8I5%CM!$@~xzXD%861`2ZqS)~ zJ#&W_2IrMJ1nMsI>%PHGhyMR+rdd2c4Picsc`=`Op2}x1pM2^hlq$J;65_Y3svUCH zF@F=A2Z+;sQT`-Y-HE|KMZ2l~CJ>&JVG6jntb*aHK=Bs(uk$Anc{XDZZw(cN# z%k%JEU;TbXmS@aN0B0?{A8dwz^Dcfrm3g&MB_#4;9S&O@sqvr2SkK&muwH{T6FIs% z5DG@j;IvQJpig~8e+|Fo12F&hTVpc!E;jNqas>2aC_0D(kJ^UE|zsYv;$utQTjAJmf;nPj#Hnc^glYu6!Am_KqR~PaMvU7n1$nE4;n%#>@Q@IX+%U0DFY&`$hKNQ+sL~Z!Cwr)XUhG*P{ z^a@`yibW}CFuDR)06XEsXzz=O_D-%*B=ZpaJztD+5VWJ1uceig_|oPW_@KzT1^ZAZ zh(eC zz?j$QE5!@qIq}bjD5XkNGN6@&M6VCPZX5O4d~NuV`qDPMJyk$y8@)a5jlg0A7`LKj z=)t0xY%p`-)lhdb-aCeh03r|-i7#A%N5>oC1~x04ll3;-sh)zy3on2;OWMO~g|kM$ zJ%l^7;nHRs(xVgUS*g{o_{d9BD#N#if4;!C4w zG6nqw(XB2{wt?CwTFJ}JHXrU|FO{j9-DnfpiUIP-4>->gXSwU<0*p)9HDs6q=-nhoGC#UnL$EfrldKOL+J^ z4aQQlsL*?`vq16~&7m@*S!+Q+rlG9#x^^v}Jf; z{AUw+G&y<;Zmgwp2K)}4qAC+agI05vQ&{JETkTxb;dlqVw?V`Y;y;u{QgeKR9SSG~ zUa02zW1#2dkNr}T9u>yxc?Wu^$m`3EXb-BQGK0yg!#iko zz$M_nGIUP#OtG9thoZ`%07vTkdIwJ8KsBC=8izNl%^?aUxGiWN(9mTibPGX&r9vz- z7~BH&32IIJhZ2&$j5=3Y4SrZB^LkViZ!l4t z5ulwxJ zPdzq%=GGq5+@FO)GI(#j^V&Ycr_A%a5Y8ZiY@`Wd17rEfT3NguumLPD&B!+Mir;a1s9e+yJr=P3MmcyhZ85=!4(>rh8ei z_D#S&`KkG%bH6)1=RT$V?I~(Q)i*_aXm%iVaz?ZuN4NpY_Yu;PD`%`)<-mXEEamie z7J55CDzfDi?_*?6PxbvU9WpEt+)|A(6S6;hN{)Jh^4u#ykH`LVnVWk>F3Az@6wyqt zTzMC#ekOY`BuC{%d5&ddg$SV?5T9eCzN7=CY$y|%&2p8fXaYFQW*fn;O&!dmwgTw$ zm(Au}%joG`L^Tb-)G{@)8!qygL=0ElX5G^q*)wpQm6mQc2sOj;PJatgqBk7Jv?br$PlN_592Hx)rBl*J$~dRU)Wl zh`_WMaP zl)sPrw^LVcWQCDSl40cltU_CLf>kZIl4__K*#WykMC(;>y;Fo4X?qlnKo44peJEns zEHd>|-ekhCuoP_|WG{n%k&I%##;|gh8_7TOgc6pWwcOhgoANj}%nh7XY!U8lkKKXu z`5ZTVMhQFQy1at(=kl5S({w(sxT_pP?3%Njbg<;&v8R^kFWz|TV!8?ToU%DUh^5v?ZgGMp5AjA!10K|3S|xu7(QnozZuM* zTn2IF7--6v&B%gJiB{zxC(gA;sJYwMq31^0X)~grN0wwQ>T|1{HX&V`!0=t$a>?diq$KJ!d+c>HEqWHi}2bet@mrhKW9cD5X5*7*e^ zJvsiF@ezg?2)P9Yn+5C5)y1GP7XR4@4S?d%d111-y4a$-@n*j_81*Cu1Hr+#5(|3$ z;GnRW^Iwx}e=-);yUpe%d;1^vjO|L^`snEBqqin+-q>?*hrG;Ub{l%u8YEk_{Lzz& zPxwHv_#1*T+$b0rOn9O}ug@$PY*PMfW{Y;@VRNF*=em9couc20Z*uwC66S|>V66QG zcXaTMFc71dn4t8%r=~cS(ytSm0>Mh$(FW zse}-1fxA;b}W8ZV5DEl+7Wgf_iPq+8%?%?C0B5$wkW_bi_$V5 zc}tu)%pyt%_0aI1ZcjrPfV{oy%^MCrFf#G^hfeNn=Z>ciPo*UP z=H-OK>l-*a(bj+D>52IEP~wO8ZhmUIzkTOP>ZgG0mb`~C*oDYppzj!Brgj#25wd1P z0%6uQ)Y8o2F%s!(CHM3a=b9Me#SFuMfeq?cgvO_8DUmyr8kKoRF3%c3X=>* z5dd@%|EP{4oChaO5)j|QAQEMIc$TGi0Cf3{<{s~5v$vZ|YmNEuobKyerB%4yK@UwN zo?!k@8I4l_=<-$+c4iA(|kemu;x+j5ls$Zaf~?NcCsdA zKHHLcD3tjUXthF_jo?BK0ZGASzQURVD8lW?y@yXJyB{xieM@HTY}R!Q6Ev7Mh-NE< z4Mx}Tz-;DJOZE&3!9iR;c1a)uy)koI$~dnP&DGrq2uIxl2~&#_EyaX6VG(Zu-pObCDsxE1tupiw-m+&>z05ik8nEJ^e^i zs5uN~m!6_wpM8Th;18c<2LJurVeps4p{l8kWU(*9UjtNRWgnLb6Ae(50u&*{pKEq@ey8OfA0-gBG^Z8Sey z=kb1Cz0;KGyvw)5rc%q$tbiPI9C)kX!WD^ssW7I%41oY05km*22}~y#h02H(977Ql zYm7EUS-@08F?2K>#R!ee>>;HVD`51hC!jG38xGQD*-XOO@R#ox(MvXCODrO}yvkgX{{}dGq)4pA z2uh4A&!u_obtj%4-hBAmc8^z5Hih&ixz20ChLKiudeOgmL!8%D`ZuTJ+|j7(=Aia> zPhSa(yA?y&6>v?36eyDLft}?)dV0=(KK;b>pkuXcz#`4#Hi(1Ao*db{cX0ZNv|iSO zRXg54IMC@Ak@G|kQl_9QAm^QVryKyN6N`N;^SEaQP?GMlSGXca!=M_72%;Pb2WaE+ z1Qu`LeF)I13*X$mj%5>0{&{!ac;rRJRb})BGX?M18rRU_UQ^ZyFG$92&RCc)M4kOf;%FYH$(@9VETt5ZP98S+LQ2WB zi31CTn3@N*VezrlZI6$Qp6%dI8tiV5UaFYe>z`U4pBe}tPx8C5L1J25J~xYy^OY{{ z2Zb_uFZk0_H%229UOqe(+jOM=HF7W^!T&(dUVh$he4L6A^Hf>C0zVt=!sXMsT0 zG}eXavEb>T3MM}-L@v+r=T&?;j&>rTY~vXJTfPc`(pc{V9{6<%ZB(F z=z!(3MABd@E|kz@YEMUtp_hLmdg^LIPznhxtW8w>J=qNE<}+fGod6aBFn2cK_vUkm z|G%#NgC6k|P1zq}x%h{+2j8R;>XQB+N!;jT(dr)03FSm%MoiT&!C>q~=9V>xU)`>O zr+zhqdvyS=OCb`-+XOTV@Le9-lV>wqLzzv5@QDCk1Fn0(@Xd{w&Cz-_%`j=~q$ccG zjV2^7V0Mt=h-=K)3T(wzV>4@3rq&kx(y(t_wF`*;$M(s-Pc5P5LHwjW!uY|$CQK{~n~UvBwcuq)BiqGoh=01G$@P+U)i_IR7*MBT0F={s zPCT#RfJGxfWPoMeIh)ZD#)wkuAj*4f3(z<;bX~IsL)Sea!0rl2y{y5F_Q7>Ae6rib zL)pGTD5A28tXNA7^`wPSbd0|R!kMk6bQflcQqWa}Sj5y&oT$(1>Vr*b8sFBMp3~}V zjg`G@v@0>^S|Y7bO|oWMD%T_iu&v2%#PaCbdVf=0dl#sR)-pX|xM0~4oLgza6iDt=_F zlEws>I?Dw8cn?>4qrYdMPl-s5?Y-CM=dS1V4iopYpkMqN^R5avq)z;d)zCc$Z z+z}3X+V<;BbH8eXMO9~LaJd!l&CE6%-V@y~u82lQ%;mOSsVG&(}5o#&s#(OlmHPp*s#nd1|ie*?OjDfzeIo=|nv{*BTO?;Q zb{YfFH;BZB=?Y5*X@WC7TjpzR?_mAFtVYwef&>?6u#Cnu69{z>D+oq*teb^O3njD9 zl&PsJO=vd8_CU*G^2}BO4S)r%Ix*G?G8)|sLI`+Oix?E2ht|(DgEGYwx~ZtSY#4p; z;?B{`2vUOc74YMkTi0w|9p1PK_J{)qZ}!dgdAz3G?w<6W8)LgS#y5ZA)N+2i&R8nk z@Yov%qeBA-w{F$Ls($|Ahq-eHp1P&Y@9KMUjh=Z95BQ@pt%3v`!>ksePg9y4#@hhZGlo-O zm$rw_o0cvMbu=J?q7<14n%kJE3i#RyqIb_YT5|RY5@tJ$k+}&wZBCHoQfSH8B?`&{ z%LCHUL)eT6%deTP=B|nFg;yu-T_SxX6z9q?tya7l^2&G_xw%hlNy%eXgd@9F8nn zJ*DEA)$tsP6E+a{!56URDW$>N=u56z-M6ri;=0OGpE$}^Pxc9#I<800@|eyWD?-gg z9FkdQ&P95!VS~zcj2-9g=H7LTTdmYIqqjt8cxeuYsXw)~kiQtfB@y$5*hu(RGaEHX z#cC3KG`L`pfPIshTkLS#V<}`ruR`gF+^IBCE`Wzy+Isblco{QH0W!1=_1%zo?G{zKdPb>KeZ zhXrIiFgOeb6FgJ0(^y?8c3;1HqQAnsVdF?$ay%+qs+FC`&yI85hLzpR^-`rMpv!4k zLI@V0REem%B1gTC+0Y}HZHkeB*&4VfK&73nU5a@DA?bBwLPt`A`X=ln`D_E`cG%9c zjV;(G#`;#KF(Fy6wF+k>7BiT&Ij{`_d|d;5OIbimvL0ktLZD@K8Qo!tL>vLxAO-Hh zDH1KJT5NtV>UhLmA1(aRO5)SDuOhIElb~!5q%o3fr{KDQEe`3nT2!lE!8wIl$qi_L&s6yK7QT^j z)~79OyTpLisZ{BGUZ?BBH>^&tUB9Hk$!QLF>kl5R_x`M}?`Qbq1`l|>x8CaY{>vtA z@1}zXybT8qGR^~JaB*;UH$W)ug3L1@*ZGUT)Kl( z?wI?Ya@%bRju00Y*>y-qr97VNp!t2N5I9Gioj5LQEShf(jRt&Q_1EYH~U@YP? zV=SOHHai3S7G{VZ=0NE~n^r7m?MzMV#W zkjRP>;$+vZf*ydZCy~}_CdrI73f$pphNR+p6El5b=*OyaVH0ycRs|4i0+QJl6QvdN z*^$f}WViH=)Dn$4hJv*MsFZ@9wJq1~?dse+9L~=YKN4*Xx`UTsxYh^C-qA^?kn;mf z6QQK`G<{Ou5CpY9=!izc(hnuKz2a|})|hiIE2V4c9;FLgLGD&=uT=K7E}+j>tM@5p z9_cOk)QBHip4F_OKLOVw_8=mShptzg^NZ_bJ2QGizf;%5#pMG+85r#l z+StZW+C+o_bEw>;{TK)>v3I!~GL(x}i@c+I;_>CaB&1;o`FA&g;NJck>WFGx$ntP z%n_XM2fzHyA1(IdO=|8hu!h_iA@UWqi+I%p5L=iq!uEq8H<*8xqbq#8myksny#x^l z*$JeM%toTnzp2q?T1>5ssq`AtvsQ0=)mj#zg=TZIW^;m$Bx|R67|m8DSJf?TLZhi% zUGN-UwKo34O{O|3pr-v-ZN>!JfEcA~LvNuse*)L4V3V&T5qHp=#Z|GuZtR;l}g zdkc0vnl38AXt)+x;dW~NM?tr)i>Nww2W)UG3k3+)z|tFGF;$@GCGv`!Lz#i^6J-Sl zyE-u3rSnS#ftn~a4&tV zZAopSgIIL|_y(M=7SX53FiDy?xgv{U6vYwQ8=)0jREa7!C3bYw+#q2g6u;g3&c8$rQzHoA~(`^oWFlcumihlpEr`sUb8>wr)Kwq+LFy^QLI!yp-%I#u6OXdFgO= z6eK3kTIz1NX>w~}FfBN_p#0V|ls{UHT>Pbq>gOUyW3iQpD6creG7~@Y8?ZxIT{mHU zW#mg1wd3A%7YAi;g-%jT$-Bmvw~XAYa^y%~s%NNsbjRrAsjrXr{OR<_GpTKd zW09TdXrOZtX_k%gdv^CtDaji1+Ji~fU`__B2Ed#hDdh51THs?hW9_fe?kGGjYs0G^ZqdWI zFTdgrYQJ{%uNQ1AY#mdJbqvr>3|nY`ME8WUy@h%$;AWTsi9`wi3Ro?RYE-825ZWRZ z{QJsC*7T}5r;cHlh028TYTjp&|4*Ge|x*%J<#879)EV++!j`p zaGQDj{PpJc{sGhp!#0V2w4nvqfqu=TCWodBWZPClGl0(z2DwUgb$}(B_4^r33ldvp z^!Svrq%y!vx2y%Gn(PYf02GH&EbBsm4hulau1I3N6~X`&qM&@olB#9%^Tq=3q=_de zQgO{ij*t1&qpC@EK0cBRwJ^^X_T7P90=(Hb$6*MeMqC8K&6zDow{CWpo!On zxN7H;0C~_gS-XJ@m9E-m>}3KbM1{jF4G0`qx1jM9XG|`S?=HfmfOW?zj%(T zf9vq!xAJfQ#Y6e`-}nOmkPms|^g7E_Zn}T;;lDj_;BOxuZC~-25;Eu=wcKk+k9ckC14sXAZSL=Yq^~0=7&DSCWJPUb`wII-efdJIZnJHWF0@AN;u4E(5Q~pLfb<0E7hi-T zt9if`8;-~gAAQ$rj}FCLXL`fovJKr#fCzb zWXyKmpdD6G3TPJyAK=l=QWiEMOoG`BXpp{U$XJz539yE!s>7({ql_83zzPO}xyC#r zE!V(0UT_Iv)Gk8j*kFxb%3@Gq`9aqP(GQ}s81XYkdz>g(4{)5}SI}k{-8Y|oZO5id zn>SzDwBx&HH)C(-ri(X?kB+}~i!<(!WRuRl%x%#P9^amTKD1+nv)Q4qG$gi1V|(I{ zK0NZw$+5AM&x}0$=$S9mws!NO*|P`g-7ffNZaq7D=+LWY4|?1+hQ3YJLWL|DEILnY z<*Hy{|9$7i`|jMHt}{9-Lz_ab)qb5J;Mj2F@y(kbKQihF1RSGB9;3R%xL?3pEdyfg zAdptMT{Mn?TmZZra)_25eQKQobA>vE`U+YaV(n5Di!p57Fq^#twc8cM5>M9EFBw|D z4^;@` z2fi{mbY>v^DlhV*5kgB#`IL&99J+kWVk|** z@!u0LtB#tTJb&Jh8s9wHA!2*(6}`t?t9{kbH$FAmC0d<`f8w=INH(Wc)RoTtR=)cuid?xVskJ3aT2^*Gs$^V6Q-Aa}$Q zJQW*!Cg4#o#wCGg)-6A!o(6X|oi}q&FW!IJQanx7%=G8dam;IL;r-9~N#0}7SO!={ zrdU=|sv691t*Sx?V%LV*i~*l2X(gPoM19zl!T<`Um{wD^y9eUC!kqPYs@HwT!b|jo5!b6OnjIBc5VA%$s_^PESW|FcIU>SvCB)n>Q_gDUnt9d*GVu{DO+JAcl z*=zM>R^8^?(~m^;4u^jDXlQ6>d;6{-MuS9YMUD>RcvMMPKI7^7sBUv!fzP zFu15;XXdB(y1*Yi#qHWG%MUG^dp~*G#zgQTrBa~nX-5rdKeK&gsA%> z8yqF=SpoXoS(=_S*$5`4tg8mLm1VHFJf|;L%3{k?Y!FmKJE$Isft~awmZgI9V}^kv zO<+D~AEszpzEOWgqz>$69Kvt$uMul^E$};@c1OE~t1>(4omZZ4Dg=e&tQG?|OGKyn zh{3|m^8cK_-&vpkTQ0-3l=AtXQc#(e=ca`S^~Ik!p;ntasygPzob^ie2SM%2bZNW6 zVy?Js;{!@Hw@Pqg(i0g)txk}e&1O5?x$RPnImL#JT^=D zATakJiitYqA2CZa;Dm^`0iqC2JVxib8Oq-}* zFr*QjekTQ0WbZ|nt@V=fc<7dns z5a|U+6kuCJsa5bbA&k){$A+YGhgD5I&-eR-2LDL6Uk}C+-A5OddM;g$keNF0kH)z} zzKM|zA(2Xa&hKsPo2(9XDN1L^r7try29}sYgEhAJ*KelZqTk$gAudaPXRyx0Au^d) z9bLLg(O?>k$zDmX9uWGs_IIW>xZT3akqLkP7*PQFKVUzoC~U647*@W2$4VY!yr2zyE!H7#bp!c#Tf&gV@3~q9?zU4*mZ3zyHtD!|JR<*B1W!HC&X_ zv`yWX{zN1wp>O(yPy5rt0zto0{N@pS$o&!iz!5-yn!m<31ruOGqi?zgoiE-CzehHF zvE;k>Xr~zvfAF1)Co~-XG-7Sx7#&~qhih1Qx`wW$b0Y3vf}yDt*%E|T)$=&cvvVj{ zygz-@dzId$0lPWM{6xhf zfA>e_gl+2c2s^GWPtPV4?m^{BR-qidYvGSQFa0+5wWwSAWA9UVzpJ+Cn#ITG@ALcL z)Ae+(;(d$XB@bwLx`yhI>Zjx{7M@T1RpEZcHbH$+`-tdG?0$EtbzOXaZEfLR3%|qK z0{5kRv%li=X;*1D*6yd&XTo{4-DtmfjPA2$;hxkM#rM#Hd!v-vl%AW)6`zr|-@zZf z)5m_Z_}f=~$2Gde*R%WMp6q)1)@UTU5ABzHi|x-pL-D=on&NZKAES1duYdI!(MLu4 z+=r|NE=WvVE@3zfqxHbA6z^nd&u#~a=(Y4?;nbV zW2fVrh7KOOby(Bzg5j+Nk%B#iX@!#tFBUB>I#--pysr4Kkt?Jl+uqT&V>*r9GH&qr zVXT^YwPT)IZZW1bFJF$wQaTM>Qd|S>I&-C*0t50t52(+*Kke4nud$>+UD0bmNo8L zP~D_7H8(XcZ0mT)D=zQt%K4O2i56j5Qe-_vMh#1lI{+t_G-Z)|+C`^sQkj^kCRt9A z_V?~AUnQTDGFa}UWXkt9$!$8zc+WPEFY3>POyAf+Kv7U zt{Q8UdD2?EK<<0hAlHy{B#x1vN@cz>TPauSWh_QN**5VQpwuc0rKUkjiR;b(|L2u! zLznGwyzD=*mzlvnLjMXOMH5Ap-&fvGqPAYL4PBP6FL^e~K10%LxLmTDCRt99^$O`r zlFYKh7(uZ>j;=PZON=-)|$&;+SD3>Z_Usqbr%WEkU0?4yE z2A!1EGR9)1vP$|7wWG7#vaYK%7IuT&ct_??zgjxuT#M_JeYjp)GuA?eGehPyLU-JN z8*vkQ;AY$+*U*XSbwV<1ttWaR1HF+cLyEGIgFeVb9{NfLy#5G7g(f4{4VdzNV8eln ze7O!Eh(Yqj&m9;74-rJ+BZfGJVi<;_0EH;R2oz%^Mq#uJI36qae;g<6Z4*#}QcT2M zn1snF!xT(KIVx~BreV5t@To)?!849oElR^VZ*#3OhVtFRi6VGSO~T0DVucoOUJ6gJ>#JcDPk5zk>0 zo=3CH>%JK;U<+QvR=k95cp0zYRlJ7Ru^n&7M}QsJi8rweZ{cmcgWY&n#_7F>y?7t3 z*oXc200;0PKElU1h)-|`htY;l(T*ed44>l*e2K5{HIB;dYL4L>9LKjff$wk;~ zz-j!5pYSt&!LK-j-*6Vccb#7|Gb{_EpNw9xuCZRCny8nkG3ty4qseG7+KdjP%jhMe z7EeYqh%q|x|6<_Ddf-V6Jc)rPG4Lb?p2WbD7i+=xOvcdKx{Ao<>ijr_s~s zX&qkhe8pli@I=o)klx&~c? zu0hwJYtS|58gvc1CS8-RN!O%n(lzOtbWOS@U6Za!*Q9IGHR+mkExHz6i>^i2qHEE$ z=vs6wx)xoFu0_|PYtgmn+H`HYHeH*pP1mMt)3xc^bZxpeU7M~=*QRUJb?7>D9l8!( zhpt1{q3h6f=sI*Ax(;23u0z+M>(X`Ux^!K-E?t+dOV_3A(sk*&bX~eGU6-y)H~Bsp z4|{Yyx*lDRu1D9S>(TY-dUQRy9$k;FN7thp;qgZ3M(9RaA7y>Cqn`OhnNO7YM43;N z`9zsdl=(!NPn7vYnNO7YM469I*Qe{#_38R_eY!qfpRP~Wr|Z-8>H2hix<1_)-5A{% z-5A{%-5A{%-5A{%-5A|i(p7nWkrQ5UKG2fqzqrQpk@T@;y`d<(acNl#Rw;!osiR7E s0IN%P#Jl8{+}?6sX<&;M`#|Cgw!(qAATVBsH%{hy2?q&vifMMQs?-j9#_BYa?D zAW&IFI>sO7_v3T_NH4-Vr_|6|-|mNX{s;mH=ocra-w~IozT*%3HTVs11HS4(-{@Sl05HVYk+I`^jtZ-#NS=;RB09-P`C}8~-r= zpBTgc@(b`8p4r(tIspM$76Ji*aRC8A;e0`ebGaHD{Jfw2&d)ip|3uO$H~(Y*_Xa0< z@@IbbKoiOfwg1`4=VdOpbwfQPJ-rCM{>hGMuZQljwoX5&Uv9Ol!Z>1P zJIH9QjTl^}E0Xd`kroW8#&O29b>lELjw#?)H-V~F_uW|BFLc@Eh9r>#xFEXdxwV5( zDeC*EuB{`SG49ir!_oe(!CNQY)t1Vt&LU_{*fCBvT&9=D%a#@9LTO2IQ1L05(i4f& znPL84*LmS3! zt_$j0UBy14*K>q<*6&YahlLd2_ha{m3GBtgH)&e??a)WsVO3B3`i!>Ld!&o6FTu-N z$1>xq{G2f--pp|E^=)gp)wxm=b9PpKR(^Gc=?}&ATi}7*4nawPT(nDm4(l;GfuW!= zA^IwjD8z-bp8)t9A@6G2%8U0tG?$w)CCJ3>reY9l3iMNw8&m2KYOOS-@UG1#KFUNR z^v+D|kW~SyNFgtbQAeW8K~pUMZ_0#+rl1aT$O;NUl2l&~`79OJo=3va{NQ>ZE2vok z2yUkjT9os=7T=VKQw{ecgDQEvAS;qmV9-W$^+vljf!7r0b>sNrh*E@_gWI~t!RYSX zWOy`xuHg{JO;T|bo|4Bo(%_0l11q68&o5*8L|`!GP{9=*K~O%>c1$UxR$_(4eJWx? zg;_KpX3(PgTeN-JeL7*1l+ZJ~>R5VM?)USKr~z=g_7nU#3FtUD9VZqJ8VLdrd3Te7 zOe~o=#hUC%`#FLAo6R1dW%k&?IfUp$WdYQ{SbAACS_p}ne97_%7a%Zk&Lrugt}pzZ z_MOXuEW${C#G7-0E|IgMG@m*(@~4FS6gZi!hyjpLO0oFiobGfQ?b*NL&%cW|Mh6{FL7(+jY#bsWO zn^dR|xgf1!XkCwiLw!tm@^PrL7wWl%HvF`#32UZIO_TLQ)CV001GGSy=TasJI(#zj z@%_tOB80{ziN8Z8ba?IFM0$7GE&(G9645+T2VVhrO-xyWRoypJQwskoXLxG9{cPDL z{bbW=bG=S_rRkVnYs{@8+6MNuhGxxbu#9-I{rKDn&=bp6sMBU^1d#lJpbGliFVgSa zzu7O;-vTNyeXM{(T+EE*Tblx;p0ktY=13v>NQxDEdd+9}h1A5Bl_t)CVi14HjwT@< zMEQ$1)GiC2bbHj9B+9|N8fgjA>IH3B9Ex6{>?xevu5v>%v_2fBQ!?Q+gv@s6jd~b_ ztn_9`sM0!(p)L@#W-*3L@|*(Qf_Q=6CEz)qK9eaBaAOx;e}2%V#=C_@nTw7yjnFxt zv&bX;ao}bPI$SCJh5a|;7o=V35dv(I>pIh`?+14m59LE6hM_eNk9A?-%9y7{wQqT1 z%=gv8ab*t~f=dM2-AvQQ_(7H1Xo4z6drMD(TKhh*dIpR4XaS|3jy_DMSykw&0KvG&ukZO=E(^JrZn~=f- zt`{nw#*j{sEz!m;2R7?g{&PRkqUUbh_5|-KF99tCWKRZpU1O5oW|`I;XVX`%ZWH3# zhy|;U`A7VUu!5awv#5f}Wl!LutQS`GQvV|cE!`eH8|?uRppTB7+MbuS3qN@`9+DL) zH8ix$9dcx$lUTqp+EPYNb6DVaT4z>%49sCnNzB}Bf#lw0hqL6m<3>nyLE+N#7|n^` zv%J##=}t|gensQMTCT~BkA?V@yRLxCIlPBFQ+_xyu-P4lZe1=&`)4_HuPG(aq?h>x zNcTF=L{P7Cut$7YX>2!T`CUFi7^@7GxLmzN{vc2u zym(GXLJ;&ewZBup*wA`m^>{#smm_iw{ssA+HAR%hF8+FGxt{WV-zt3Pjz(kl^$MF> zcaojmZ8tPY87X7^j-cZ2Z`j~7b?mrUDOQf~467M?4+G1> zySO9sAf5kuQW(vclydL2ZboW#wKExl=8)+rgl}9x4TS|x#%~@k@XkeT$AoTzm`T^m zj7t)E52JF#{yhKNSSS@;q)Q5$fF;Qm*)(bnxgZA~e@9ClnVCR$sjoMe?XkQw2{eMA z-JbMzL7dBs1;jknfpup|Kn-XB^N=W4${$t|`~>J#_Y<|`q){oDY5+E5Vcs^6_3b%s zfymdO@QVto2!SX7ii)z7waO2)= zo2f%Z)T71k?<^&RI?^(Em_~_ZC}*shI$~s8Gp%%6hB1<h35G0_^u?}5WiBpyE`owmt7Fi+1FEWFKu)a2nh0bcT%YTt0dmWw z>+~i8a?9~`a5ERfMMY8)^Fpxp0zdybcwCvtDRiJO)i1luAC9Gf8$xX}D!BZDgnDNe z8cfoEGKZdkjSIIL!=G+;#ud}+Y@VlkXQ@9mc9?@?1J|={JI;izpNe2VMqZlVETABw zg}+yTc_Yg7=XL=+z&O^kt4efC^#-FzrN$Kuc$vTq6Ou_BSo2Lvc}o&M@Kp11N>pND zRL#*dJ(8g^CEAa<2C0YEFfp=KZdqntuwZt&b;wq5Bz1QIVK8*+1k6b|`cJxTvzw$k{&=U0)pMG0WrE89P`fJ@DcYZFjU^Io2z&+j(ze954`0E;~YJ z0e+uo8ad`|8#XL?FwU0iFE@$?Nc(Y@{9=jxEMgi_kyNXE4`vPyfJjsoBA7D`IWB>> zFtM%5+g2dmd`np3i8!Sb#A@m7bF-H?b8PZrta0utgDv>BOQc=%oj@SmK zVcqaJ-%Q0ol9U;OiQOm0aB`C>P&GSmh!{*CilZ1|6#^x<*RMhDW@)Bj8Wr96 zB>Be`Zk3Ewp9#0aH3^t=pZv>KU^M~MKdE}_^E9pioBpSDqV|E)x8&RR&(yew*c&WQ z+I0t>TD30Ncz9H%>RdtQWFQhl1>}EAv%e@s{^re2?oQTKFFGZ-50VLET%_fG*cKXD zG5PrB+=k$+SaM)9?#Nv}4Q+FrCvVf#&(wnYQ)1Qm#zJi}A?Z3=+>e0>cf`E70)U1_ zTcxA;FlKbzt{yRK2$L3U@U$ETNVXiE{w~(C7Xs|LWbMia1(JnUn2Y%|qAky%jnYxm z`1Rd<_o*+DkDIz$yWc3A_o|53l$4p0IS-UR4&BFX*m0G4{IOB zc7?{DVLOq=;*2^)>`@U%giAdYXEhw}K?u1a{Q@-5-rs^Vb+^C97>1LvpM?eo-Hd zQ2LF$2{d<8ISwmBD`jeOs&fVkv#$eTbII!vpkpm+BU;|x(tk8|2$7c&5RaE?k;FUz zj!rQ{qT0J1uITgEx?-Mm6(sSp!;jjMK(dYR#p|Yd!JC%#vCnu6rA{R3nCG!C4=$UN z&Pm}SoFt(}rbpSAchz@-eJoBt9;+uP8sKZGx{!WPnBZt?bjtl6eu$ORrhhn&mA%&L zu*z#o;W=@`#ZszzG?Xc=cp`~9H;_s51gJLai0HZ6-3?zuH5u05=^#;A&|Fx%9TXI73=ZHJufHN!48Ud-^hZqnCGO;y zk}fB5-J?X;A6)gufDzufk#+WQXG|{<)Ze4HvZ9NX+DCe)rb#lyG^psr=l!;Gl9ndj8&vOACYdK)!*WO#B7%NpF zY>?Uxl2Lh&gF=jh4ZMpGF&@9_E77ngQ^nH!-=ke(hcV4U|Kca?PZ|jE!VKPHdgb2` zOa==S0P)%hO*&0sO^tNf+cL*aA!QFqjo-*pr;v@CMcZ{i*N6p5s#B)iHp!c8qrA`! zfF}q8NBo6%z+sr!)r2}iE#7ZuBvwd9NVxr{UAw$Y6nzCQ2g(nYQ~8QxymH3lTU4HjsQrN77x+x`Z0metNSb916PyDtXh+aKMH&$jdQFJ7=@VJ zG^AN7g)EAnGeuVAuI$4uI`U|O;%&dsXe32Qlp=@uV~qGyqCS(Xpl#QyTtOVVc>3eF zbI6*?mvGe>H%k&Je#?zE_d7){zHxHqi4_5#>|Te1&xc}fiecEU3OQ)h9A42Kwv~LX zKW_t;9bj}a|1G_l{(*k6_jB#>+ z6&IyQ_>?-Mz58h+4i)NyL>8@7g26M}ngW+XGiwA-F|o^VWmY{CZHP+|wSC19UOjvK zoReWJdA{>;eb__|``D$q#v&%7FG^&GrUhjfgG$Gt$0eGvBOKb|3MwK!nX;Cd9~BvN zs$vn>BR_Liv_;gWy8;47t`{7qwwfT)Iz}vwdU@chUU9s>!h9E zXEpS{fLWV*9!;iF1Vh%T%lvdG)SBsn1S!aP#9ntC;UQ43NP8_Mpm$tv_{c@J9tnX2 z%;WNrR>clC0l-h#y0O5X=1zx0a!{&x zKF2vYx{Ge*9(8RgG3SaWva_%}LM@Q9Suyni5deA%lB4!IF|D_E5O5z~erz%8V>yhP zeRXRoT;zNjjpll1hfh^(4nOtNdG8G}HC}}3mMNW1w z%;+1;YUQZVO$+LCwF^gPw>o#4oZqG-z7<4zDaZ_fy{1>1>T>CQ&z24DUo*2JY_~{ATtS_oOw8}wA|`PLU?^fH19>1|^SR?HHoyc>-`gSz zeyP#B^HJO4#p}n_>W_o`Ho54r?CU$G{STfxgNs2zW&SEk;^(XmKU~Hm< z&7RqeybcR1OIWz;9Lxuq7@PMyN6}$4SXKE#mKNyL3E%kr$Fk6ps3GE)mdIoTg<}{N zS7+@;U-=X5ACBuY8$JU!>tB2E!ufqP5{nd2#W++1J#VLUlWSD2IbS+IJZ&p;a~yj z62DO-TiVI>6c^I}r4Q`eWHB*4uEXw!=z7~GpSe=i0{{REBBjL4MD|5WUF-nfY%%~f zL^|w0PX32dT{}Nb+IPOsu^Od(1>zZ0)s#(J?Q09291R)#7W>4+K2PlkUJ{Ds8zpVPklD*Sy!6zE!Gp|)`9*Z`~ zC8RXwc%+gF#RTrqQ9v$rKq|6s_Ae7QL$WOm^YiYaAMh=qyDelt)CB{jupy_iqNBMm;uRVG=c~Jt6 zqy0TfxWnEyBsQcCoYxT^^)+$M;686tL89S)J)fu6>-4*9d~tbRm&ZbV2318+6^}q~ zL&vSv+fX`%@=yf4Mjs~HwRz7&9s-a6U%mku9gN||NH$Nzs$Fg`X(ANc>n1WaZs!JHR4Z2Swsbk z-5LC>~7W){5Nd*WEPf*7dg6i!yxfl(wP8M^ynR!E`m_M2Ij0L1EOJJ%q%s zvnj()mp)xcFFDLA;Bt+YRH=*~eGQU2lB=RsFjd4QGCQi25^ADPuPFWoY^1e{+(!$9)hV+0 zPw6J%NKY-vARbe+ry%cANQr)nS%z&(t4hmjI7r`;G^Ht!j(gw0n1zBYzmP~{kq5U6 z{Stpp*vIUojSc2xCF6NZ&)ex*)3kZefX1}D=~@2VxwvLFX;${PnN{>G9W`+2iy0IJ z`h;Gb^hTh-fK1tTVcJNgX7k0ks8-OeiH-eU4&8?D8UzZV&OUh<(|?o%+ZH?ARV2S=@Li1FiL{UZgEV4b(MU0zzq#X<+nHIfDvTWQ=g> zM2-7!B`=yQ8YYIb`bg#CuMcJ&3<3nqEq+3*ez~#oa+sPu2fY@%;koXX$p_His%4z5 zsaipzSdzwg8#u=2#Iy*mHopW&hLtSPX?2lXFc>-I$Cr5HEwjFE{vMah#8|mzsh|jS zx4Q6zSJj&&HfdQr0O&TGU7G*F`;MC1dlvC9RhPWZDajBSznK*&ToxT!)i%bE+vHf) z*cinrdb>=y{!=E}9@W<_n^m)$F8!5*`v;g z(y$^J{pos!1u84JuOWU6<{g@9ucFhIUa1zq>;>JHagx@eP&Z1JGg00P2vW@fUf~#1 z{K)a>lxL$M=;1{%7IA+%v2p?Y0>&*T1%VmhFPOHsziJ@6Nq>3oG#suJH>Asi>OI0u5VQ$rn3|AEETh`kUL(0kkIXBqs+D&Z0ek#R?I=5+-m?~>ze#LU5-f`{H5=h^Y340%s zx8ck3Arhxj?%jX+e>wAsCt8PNjP;n@^38VtEt#Wz=0>vjb zK0_=LhT@)g70v^Krpofz<((5e)e3n;c84#McJiL_<3>0yA(V+Ea8_{~<7@D{Sm0ue6*kgk7;#Kk(0P7O<;?S#>TlJAz~)*3FaK%S5B08a<2xSL;bo8B7n8w z1G4hSi?-ZBa{V6EJYnT`2o+bnApBfu4bZXA)1Cvpk%&&F_ zd}&Q#QBJ@NW+RPU{^X#~_|prLvtRh3L;}vq*H}spK!jw;2E);RnF(GtCtH^_@t8sf z&D!ds;gODH;qhuNy-zfU({g*h=zW^dXQ*P8IA>zl=C3nxe%fMX!f|Stzuh>7vPtp^ z&UOjBb#2=cuLqe#9F5>gs6uA&ud-}@P&s2S+N&pC#{SIh-R^0QY}_U2S>MstQ(uF` zHo9=NiR%pCKRJR(TeL2;r7kjs35AyDw6ysq@(lgQsQD|=u@6YytRUBx?s-~O(LM^5 zhd~Z%qNs6D z4+{hvbUQ{p^YV0>aka?QWqUK;Ps~e58kLyL6SHqd7GpTAYe~ahZB5uvLc8D@%QGo@ zUfX!s-3IpBQbD8MbJRN#!&$@mqgcOH-M_LfkbM>|1JGM532fDcd7a zMIMko!xib8`fHJbe(>kX(?aZWqVopN~e zazjZoX|eD~3)3`1_Dl<*(hEPuD%;iKV3Sq|?ID;Ixs#~=*ztg~;Oha^f`i*vE0hyS zTNE1!Ok?4K+icNhgpb+g&Vg-aJ8W)gv6#Rx(~h$Jx=W$m0^p?>*KF*|;n>`^e-J%{ z?Cbf<3xGyU@h3z=L@)QRYZqvSLnpN^T|R3F(R;G;eXY|R_$ zM7$EbD;!-%{KoeUMHwxU&fzq&vL9fs5YnoBBA21|GHFDK0YnC3ww8y4vK1 z&d4`lc4ru+W{J({o(^0|!>!5HKkd4Qfy!Onk2`9n8H3KDLOEgEERshPx1qYQ98tG5 zFe##f$z)lMOL*u)v998#lN;2ke14=;rRwn$Hm;|ctWN}bh-$Q9XUe8Ug@f(ZF7l-)~|wC?Kd8O^Pian<-cI@#$2Oc zdW0j1r&eG>2|xk+EJEzXgXPio)SOTmISt%elBDF(n1*A;b;X5q_bn@|lL2uB-+%?y zirw_&x-A-FAs*JLg-5rpZg!B4POF#M{84$2yvBckWA;Y0qa+Bh6(@5!O5iLQLv-(KN4} zWiIebwSIxiBWu3ZI=7A2cfftefpO8U0{tR&8*&Mzu1;!&1hnagNbBCFWP- z>5UbX*M;2C98pW1yZGk4Vx|>p^?F_|1=7OL#EEKO2S*m;eHfGQvJrwUk_U;H`ULqh zW^tcx-s(~Td^c89uiZ@dFDP~>1mHoPI-u=#g{|*t?yC!y>#R?<1kbUIgROB#{co0; z;EjGyna7CZ_iN_)q?pKuET8YJ1DZ2J+f50n>+ALA_ut$qAN^O>9b3MiF}{V4>-{r2 z`*0zjC07hz`uZQ*`#gwVWZm>%u#lMFU$B~Dc*=7z8jL{gJ^3Ce@$o#2O%Mt0|!e&`4-d_<7t$-!j!C2)_)y^H%7IpdoHpFPMJPXUeKH}@UF2~RCFJU z1sqhyK$8}q=7&L|B}aK&RWL)!Lts>!rv!!tGM5bdQ)H%=)-%@bdIKvwZsOtPolong-A|c% z2DbK3MfYt7smd`l-oQBD>Cm-Y56cxBB{WETJeGOTrRJ~ZH0M-cg}NO9krK;RD~hCx^~i6n zyXZMkRxAw#fQjMbQJxOhhAGFmPQ!ABx!Pl4+7qpNil&)Cn5M0h?ULaB`NHWL2ay2H zKxZa$aQSU5=MXPr%pzVb4A=`V*2Zg&hXwn1$LKGgQ2lvnyKfm(JIe(FRT3!Hz>LI3 z-l#-C*(^GZdu0J7O-B^Nw^k2Buz3=L^uWE>5@PRt{NGzjA4W-0fvUTB2YR!_E|?Q5 z6TF55Zy23|%JV>yxO&4$iyUf$$i*t0Jlzl|##S`L9=jOmv5(;?JLTZC-kN2?SArt6 zA$GXa6!SQzBac2A+fY6eUA|~$T%Vj$hkva(L(d@hjH!h)AAxk9o|v015+w6Xc}m$? zn>)UHsRYc#Lp&Ca|E3nAw(bd3UGj)gcb88sVMvz}-ASWsVE%3^S|D)PKR4nq%6>Sz zjyj03Wq%|PBC!}k%s@UZ4m%TV7@iFxL0QEuXC~Y_p;iM(*KVWUzrGnyRUglyoUbyp`%_VA>ExNeOfy{o7YsU>*a()KoW0CJncGX7 z+D*~@CozZiFOZrER{8}cOov|5NR6crRzUCA~E^x+c;|2{S_h_5&g1+VMU4}natf%=1YCW}0F6{;rsAxGu`_?O z?1KW}KBP!w?lN&kJmmuaQYDjVdA>7qp(F#l0=f$%u~=}py8Qv;ND>E#QD`E>Zfh@H zFSEUC$)pMt|7M02ih?R|Nh|C@oG=uj*MZ8|KPw7tUS^eA#or5&CNG;@mH1b!b z%?}0(rqJR+bTG98L;{UPYXbX?`snj^yh$X{(ns~K!j&?=MoH~n=SDLR& zlNuJBb9gZy936%N8ZD0V(|3KC zriyiDS89-8p+e5R<|Y-l(gIpsRMASvZy^1{c|B9}+wnyLIhfLTKg*aQ7_CB3YKF@w z>)UTun_(Sb&W>4tl(xQQ^y82cTW#Go=qL3*EE2Vs={7*>aFv&8W-pqh60BW9%6rV7 z5qOq;+Rhp`uH>yhaX0I>kIIcisORaJfDAM zOyxCeI+29*)2wvA-P#D)Ntt5P`(a0N}dKRqjKlhh{?7ptdZCyvW$PMBsg?N^ z+T*LnTUk#O&|7B*@dflv`;%_d)fxYZ>;;P~3-DOT$1kc=B#`6|z|H_F2i+Q~72jsk zc{^8J(f;HoBwA;I5(Q5Z2^xizb?kL{)ZQi{i?bY)XuPhju=Y2R6(ohqz7DkV5hK0r zT{@Rx`PvV0)WjvVPSJLZ@cHDmuerUx-oE1Knkx6m%r7U8r_4W>z+YRgJ;1A8egC>_ zQMKv0GnK+zkM~a$+$k#b^Vz$DUs`u*KPENbq`>0sG=81k%UQVqb1ANsZ3S}bkf4nc zbF^})PA%P2!*ehdMKF95*Qub>C?uv=?bSH+c8ke<%6S6EAydjy195@I!7OO6YZXlWj_T zy2o%O&GZ_r-2ScA_L4i&SDS2Z-m3CePsN|^tdus5NP2j{OG%6)dwhRQR|!zA5bfUH z|1H4+6beR?idm}P7+f74x{>odqG}v0zMty$g{F#M%&Ec>ah6tKdC!cIC zXq&1>v2DdQlYMS4p`u1-{dA007akUD06N)}CrheE=kqazlCMa6`<)Xk;t7W;@}aPs zecXT;jcle_>5<1#yQ+K!%#zEaiQ5ZY7MVU2>pnXR74R2(iE{shW9(O90s~+oBCp^;vvjlC2kpwGQb@%t1Gc*qKS7Sxf(qrd<=h(#&*h<97nnKNd^gJW#poqxd z3qIG=dB+qL%+ZFGP4)>w62SEM(jPR_Ee6ui(cA?C>~QxGP&1gV_SoT1&55 zNOLr&;--XBX5=woCzd{5+cf5pu_T$pv}NS4P7ie0+7}+?$Gos%V!-%P=q3@QEMTIP z?C5LqhLc_Kb>r+yT{4B-4`wT9y^jtyj=+81^!q(4PZDG0jhnKXTAvoO4=|=Rfz*sEs z-~2W%LbCUjp8M3XPLG=??-I9d-z;r(zqSzc5lhJ(6RppuqvcKR_pm_tL@WBg6UUej zE2E(mKHS$eqA6Y9g3g!h36=4nr`0|=0x}gMVB^lh=$)vrTw}4UY3GxfVfTAc=vL)(%6f@bNpJG zNW&?|BjHZVKM<0;pr(?_iK1$Ao9=_fN!FGV?Nm$TgySce5S_Ct%Lf*=>Bd$%tu=U+ zsD{soQRA*HxvkbFvuzyqSL^n3BVQrQ723GjmiVA8C6G_!d^K^>yC9a4SQK$8lGuQT zlDi`#J%LW7NgB^DRt-%@c?&97L+%SyFN|U|@^;5PF(Sj(UyP!|WFSul$b6_%Fmd$CIVMysUvEvAIhT^lb3O$E^Tz88;}OiQq_k?&<>F zkK;nhx1Dl-M$ik~bdKw}tWY!l)>}}0c=w!NuD0hMKfMyIOxgTl1;v`S$h?2bJZ{$c zmQ_u>&V0FB;!D5Jz!leQCs|EZ)8KU;0@>bPc(!$H(*Hg)W~G!+IlG-xHNCR7fSiFk zJ^v?xSLbpL)7O7d^!*OE(h}8tUNU6`+e~Wm8SwJVYtre|%HGiSnqLG{a&8URqWd6g z%gxv0x)pA-k*xUO+&*>Q^gF2;yyQ);(&+Y&GHz&ux#F+8N+U1{gE|WV=-wrXLAWhM zoUpV{QQ$sTz5Frb9-dm`{orD&GUp`c`@8zvkfcrfx}ht@2A;Ixg>9hu1QxYUI|J>i}`?dajLX!%1}Eg?$bu$uQXSK#oi6 z-^}KGf*9=TgirC!qqGEv$4Lm$pYgt-dRDhTs6iu|5Apdjjk14+6|&(+kxVlMvhA?h zC?o9HMV_j(Ev-^kydAuf$DErI>_X6Id=cnxDHK>V?@RA7do?j0;82Y)tq=rk(RrDJ|YFTrzZ#u>}9NPilAmF4ceO$4+@|U1(rF0P=+Goyt%uQAEzl6cj-ab#HH|RSeJ+?Pl=nkEA zGghORtU*#Lb)6N&F8^xTCq(T##3#wh-)s=Fb-!@=HF^FeKkGe;1lWfJfFa-nsa zbt?Gow3xdXqM?Z}r9-5%RPV&F-Mvd9dA)F-c;`)Ld+ypAQPExkba@^A&Zx#XRm~cp zy4LVn`#`bY-G<>c!uGigN-E*80hn`tEhWpubU&zC=6vqDipjo)47Haq-TZNP{?3|U zb#}JVc#5e0JMpqv{}<-|*=5>lnOlms-Fvsl63t1}n>9`iK*NNV?eaT~%S1^BQ0eYX zQJ={;tAx4gAx&0{*2qFwKBqq($N@xhIlJpvv)QBbT0X7a!!QdYj7F;b}D zC0>FPZ+I+yswSmLJVeOc+*JE27x)Tq(&}w{g_ZVk3No9cZj>i~2sjTb!IL#TLb~s4 z^r{Y!{H#1vhlmtoUS3c^tGxaFM@%W=T8Gs-m0c4CwYcUP3|=mh46>akdxc*>W76 zR0UTW_5pMnJ4;=XlvWYw5zO1cIu<1{={5(1=;SeY(y2`OYr3tq^la|!JXh459~*H@ z{NPXuKr(Cb8hRT?5^De24`AW!wsRuc^g+D5TCu9`qa6%DTk~*1hb{e zeNZW&^XHqFI6;1J6#Rfqre;OGZCMXQOfm|ioq>-%wT3%h|9(7ba`_C|Arf=8{9jD0 zQ(W#9A^l?q#2HkOL8nE6aIBed4ZbHyQKS=lCKD@0#}TX~MbBQwW|D=^#h8q9@-p#y zr>9zmo_Fku{W6&XLW(7{^Y#7O$y zE~C!pD_X>D`1PhpybHTODkYoAM#L7`$(osAzlB7H;4reL+tz!z5PQy?^Bz!x{f1xP zyt1#}p5%1w;(Z?!Q%wf+`H0tbGo`J?R*+kRdB-xj)gL-&<1#b=MtT2RRUN{;6SkH_ zv2!mNQAbnVi@Nhnz{j~kjk}!NK`dfw?y0M@psDS1$VRh6$og^H!_rN(qw0O==}1NF z%hMWGa{_0JH9V+H*!~@!x%7lz8lqH?3O9FY+zS;J~yvgE8Z>o=)$=3!Zoip zJ}Mraj3!G>ZvH_<=H@c~Y-}ejO@%I{-kB{VU7#z#rMlJ5HnV7#DB!r1_y<_o=e83>A+aiR%j?Fn>!{v*u$T=rT?@v^2e5{E zjw!BvZx*ZdQ|_JRBG>1}PL`Olv%MLAL)DwO%mIkEe0eSL9w4Luavf$3E;CaW`K z5(#;+D07}SD(ZNrSsAK%dy(5lKKooAo?m&S$GRIRaoTO6J=+qcfa7(Mvdp4bIu0K% zfT=3x3be$D`;oUyjfT|iS74*7>-PQt)y zM*Z;)MurYrXmbCg?%S%|FydZvlX{gRV_Dw+`-wpFVaG!XIMF0Jh(aifD;$$tP6#8U z%i%(Qn^OY&{6&`OX=&l$7UFqPRv?eX0rl)Q0mUOIVl|vzUj}LtbNHJ!3<+V%BTYW@ zIbQ<@Gv@mCf0t@ruXlkIQ| zHwVebczX3%r%Mm=LzS2xvKsrK6xgK>0Hl{6pY=TO*uP4swplvBI=uKcklYl~QUpg(;+hWCxeQw0ar#m@5nNpiUA3iqe(2S&69(3l<8OH8^%y<(F{~U7*Ey4;d<+^8 zjvW1aBy!z(jMJ=JY#-SEF!fAEGCdDwylgAY4v_4Cn8^=_evE(#Q+}=&ATGiypi7t{ zyYMNK&lZZgw40>W4uTE=kQ~d$aZeVs3m^?Whyf#EJRobakT2>=Fslb*xM2@(TWJsz z3-gGs=mCEguWCGRI%As05q=ZnLMOpvR{Wz2H_sc1X`&d+Gc<$ zK^@vq{Q;#_4rZ}V8b|{|M5q;Df&{pSLIE8QUjrXw$prLFtC*RM)j|%0Pse@%764@cl^gQ{h*A(C#-ciOUybo`U|?GiKqLkBrDpXE z5(ExdFq_Xpe*oSrpri=c!fZO`AiWf-fZhRGu+o5n?djP}04t(?fCEtl14;oHgsPYU zE@k0a12HgIVQ2?vTF>M7XMnciFn)R*$SWNOGK%;-OR=@P)(QLEI#sR=PwepHg9bQz~e3P-H;F(2+nW>0*9>K+gd8G!OL^^MzDg zfwDk9P*#QcF#vx+FFF=gV=$Z@Vp@%>=^Vh7Qej9SH`E4SP(vQ-!a8BRXc155XECg7 z2LBgvz@TZ814z+BMb8$pz#F|3lXb9rGp!V`Qph4-q_JASLo3Y`f#?BqfM8T5Alm>t zGvCWbHvrV?hbulI-x9_ozzVIDF<(|^`wU1b6lW3WF8-w%!U}-JJW|{|v6y3cDCE<@ zLRRl?1u}zb29(S^3^4#OL9a3lzd=4?fDGWWG&;|9K}DDdy++ZIiCcP&%W>w5;VfPUqG5s zQ%Ht!6#}6CV7^v0|Xm1pUTHf>7YOl6&*inteIkT zF6gupcT=dvO^X?j*+9(cR36a*Vv$MVd90N*2!$fYBQgY}6hJaUdyMX50jLaMOann< zAAqM(&Y&La&q8ZRZ9rdo3{eb!Fw%0sEkVoBI*7Ms(hW8u@O{1*K=GSJ0!4w~Mlq%G zIj|Y03^zd%K>CXVLb1mZ0})sU(s5RaBYbXz3j`;iqQICMAOi#yY8wj8r zLYYN+#7P3(*^1r4qK;%q^EfL4VP}yBQ7{(~TR`ME_~?0t)IGq0Ux2jm&kmr=4x3Ct z#K&>#K8*%vGXcJh1%OJ581;5G$R6k!$VMGzRp>IHW`L6hOtmQtprJF7)Fl?!=plXK z0Cx~3tn-ZG^OzD#W3L&<0QJH2$K@l?51v$RMP~0J-M9o0K&irJ4P*uEUIwQYJ^?Gb zTSWM97K7OX3d1;b(Kr%py1*I&X@ku%O80kA6`_Igqd1Uhl@Ym$B#N1UY6I9obDoA8 zV=8>JS&uUYkTrmbG{A~MS3#ny=w=AxpU>fnHP*w(1m=b~Di?Y&mtka7olBv+Fa+}m zPM&}fImaMIQU_wm;;KfW6=Y%o3=H6`6q<1im%yXlP!U6zTQnyW0co5`C`MOD5CJ;XkK>7~06oAM+5wf3Bn#kzQ$DIKC_YhU z_0l*X1*Rm#PzEWAX)OUP<$?)5XsR2yI1j{9M4hP#IOJi2ospr$7w|D66uXpYnRZiXcRW%m}r_nie^H za22V7zxqIV#rQ(9Vt{B9J`Ngo8M`l4>xAqQKrE{G8qyRFuY}N4b6_2S0uyw?YXzi1 zIjIUN>m2JTd*+ZMCNQfgSsVo0C6a~ZqdWurSD}DRs7J!8WT?yr&Dtr3qqmAwLd?t9 zHzLY_Ld8lf*bLxImQ=if5tRt#?O^v1Od?wu0yxS5POFJkD%qh04k+bGm`TFHfnr3{A+`f><40peO*#%@U{u znpFs*Kvb}#%t%jSK*C^Ci)hw^#VCgh#)!ixvf8QQMl8USYGM6B#8U~W1Q9LqFF<4U z4TF)5DI*s?{CtE}7%_$6gpCn<#aRfT;jBa%A#(h>y%s8dlmVb}{MU%iLTnVd5W$qBDlZX}!U*FTNychLMt%~<3{fZ>KS&W7^cBZ~ULiu&r>^i`Wg7%OfCoRzyaMH06g{Wn>ZAno%e38}cQi zQ-&8LARHkac9X?{RZJ40TnI4QRl%Hwd=iecLaRJZB{yRfRb=u?0%TZFUcjT(BGw2= zlqpu_C~HYlt704a zYPCbdHj08B$~sgIrNxv7OvE@*hC>5fhI7V4l4C?8s|*1muN(46D4Hx12olj`X-Tx% z7*BACNNqfgaOuejiZVcfp;+ZyE+FouDzh-gXMDn0kW^!7}vCNs*92w{> z3^2UmgJ3eZXtF)@K|vA#QAM28Cb7Wq|n;5gcQYLwVItJCKEAEm(59ukvtBf z1*sJP0V(sl-+tAUj|?t__07tFmMspe2^BRbTAL|Pm=F~ulcbsC1`&Y>kvY1N0bq&% zflo!N#X_q*NBN|M9p)1iL$boq1)2tJsrPfN&SxYi?22-t&Rp_#8 zvEek0q=T5nesJ9Yt0%?tFEdA<6A|Uy%I5@PLc|4-GBxLK4iTcCVHybqUdt9XeKO|Z{J=CBRg$5%3W{%#VKAGEiaAao=$XEO z`WMCDZb3kKS&{$YT!$Qi^v5OvhEmbwBuSCDkY#EUQ+2G^s$IePNJKs>X=2BC0TcvceSyl?w&r31mlB3{b~)Xy82TJ}ObB z7REZFfM`+FszN4KbybuwCWy&;e_RW|G zG;z=rtP)BW3(jg^P<%10cN&?A5NL9{aUq#L$T>LQ-5*chv2FeaM7M4Wb4-xeTMYb|4 zNv*ao@_AUQ&X&X!>{W@y8J3_ygDg;Oo)bB$(QH6190LHKOEwieWHX70RUB;9)w-()khNx#&#(gQoG31ORk=BnlyDsZeoxL!uHz(M*_;V%-1D=zMNIh467O8 z5u;qR5W^`7LBmp3h==9N7Fta%XzMEl+TF!Dx#;WzyGBGo-iLn+>fJ zn&Fi(utJEuOFn3BPYdZ=xEm%J8Qdt9%N4^RS{OtuR^As~(GT2*LG#(^p-vb@5{?PqB#)HO#_aKtY->|=joDB(D z$l++i^A#))IU5RL9t_b4s10f2zaG0>OL|%8E*B_8etR#XE1T5zp?8BZ(nQweg_+fwi-k(8$pVIhgx+0r!giOOcEnS-u= zWa}*_@4Q+Wy0Uk{pe&W|+dZ*w_kC(0QdqQQo^5c|Ew|mWYS1=s%c4Rgpic1LeGyN6 zo5vs!qdQN&W$PoW<-rBLR}Lvx^MmRXC~@@)a@LFvJ=wgs;<|G0-YfH4cAc|nL0d<@ z1OD0;Y&vJx7CFP?9kiP93@Q(;SbdeeYj1N>@0dZhvzOJlXZI*O*r`@@y_;Wxr<>E`>x;h#3OPtPS@xAy)uSMFZ(#+uVlKXuQQ zr~LGkY0sq82DL}TR!6AO-PWUOcDSF>7XJID(0yV0JGcoq-4{+nrl!`ZnJRC8xaPh! zYyW=Dl~e`9FJ3+J3ma{iGi9pQY+gIix}*<9*{p`UB%bfBEz?uDk9G zv60+u9w5GWp|OTM)tV%C8y6?JC?@7PdR15ZXcTWCptxTA2D3fy-T>(Qi zFji*)B(p4t0y|G1W4~k0k3HZoGh#pobI{Q-w7`FERSBY>g4oYOus~h-gi*Yq608~i zpj4U!RQB_#a9_k$Meg)S&L@Y%qTEt;dc3a6iVH2$|EcZTqoTOdeBFBVlP>y6Ljx`S zMj9IErW=rMX&VqhP+lrV)J}s+0NzOlI<8J2Uy=P}m4%wK; zOtS8}JDz#%WH*-wh zOpnLg-qY9YB0EpJ*W+sL>mfV9M=ktn6SNFrZ~wC>eFJLEDMZ!EvnD1QPkj9I$zFdYVG zCm5Ej-yxhbizqAQpnOzt!FqbJmqe(9L=gvkQecq-iw<=pI6@BfC#eI;RC2w4;szo% z250l4g$S#*J{T9S19t*%uYjO{(Qav~koh@DvMHEaP=I0u5SjAXJXnYD4~5r->-1&e zy6`;^M0i!O@;IOhqqASLadL$F8}`l^H^PnJhz5NU`HP@Ii(o1uJP#1rdgqP}3-WU# z7xs;^$q9mW-7#S zALNg_l^!W^JARLo>FIyP#lR^-TsOz{!2IXJGvI&InEQ}eGclIZSCkok=`B!O4^bmf z4d7pYCHX3(uBCLP-zu>gY<`OY_Cq>@1uv2%YusH)4hvf9^WRNwY4Q6iprL7#NL`ga z&3%RN$oBSuNOgI2zWX7QtlX|sFH;YI*3G^kElf&EBazbl9FJ{H_U0u`ef1p;;8E@i zA_px`1SPyW2xwVR;}Zki&Gakj(&}pKiFB9b=Y?fein_&GK>N>j@6BkY!!O#kzOD*) zu`wriNsX_%v(ek>smuuq?-H5uS{<{$w|DWy!VHb0>_m`zuKVD_)}~vX4tJ80Mcy^!|H! z#+e3ar@k%{x!%yf#Bme6AYE)MbF64B9SGQE} z$;-Y&x%@k~RF>O3WmM*AxuZcQxgwt!3>+Q35)& zCJ9B+;Wl|IrAC8<2qeoOGRl+Ik`{Z2$TEQot*@w@qfAHnvvgT=k|VUuP~o_o3wd+O z95P0g8>|?!uI>1axylUaU^u8#0l-U2Y@zP;{p+gSWg5H2AkCDpoX+a*B^P^ZRbJjk8oVHTGQ zUP){c&(LNufn#jLDZ5`yWg|S9R8$n=97IFA6m*hC&$CV&iE+bQXn2tUA2eZ>GKgG& z#02Bn2n?knd;;PZRPy)a9D!B=EixT%$#5}fFp5U7VaAnV;dL@NU*z+ zv2X-KuvlnlB*OBl#4Graot~vKjl7%z07bo_e*hRcZ_GrTS+YP@X|5GkVwxr(wR1L1 za|-JhDIzqaN3pV=6dPt19>^qPxJhhDr5F>2lsh9aB1~YkB42`{C$8-rtkKC!^aG)T z@AMz|&B=$}dUS)kt<@}}GiZs%ckR-%myQmGnt7SS81OD#o71aduL?O&7a`-|^A_VRzP3)%LqU*wJKS<_T5Y+63J z0gU|q8dZ}Y8+O+-`Y6aJTSJ+~Lw{c(jBS1{ zH~WDd{gnk8Nx7y(XV>H?*IO=*qNl$@Auv-aUhTB(-cYj4%G0bh!>Y07*ex#5EL{a& z-Oq(`>cHRk9jxf=?=Ou`bc`M`CkhT+YU+yYZffw>nC;=3<=;7T+9OeLydvDXdGwV_ z2cjru6W5%Kizod>9#sPS;GH=3TZYUK^tR133Zh~v#1JzCpAldzQX7JF!`C^~<65i) zS%#@3_#z_QNM!(8e@H}rBqC-=uE^2YbtRf|iN+G>-_;dp+&dbs8QfI)uq8AY*|^nM z7Vhyqxb89V=Jq5=pjpatVGm>Fc=gPP%PapsFB7L%cB()TGJ;FrJfD$XlqhpKT zrm;zl0chUB@i$LfJv2th2S7u#8-kQFSSs%7?HCHg<9nWNEmEQR)}q$Y$;wI(+oW_7PNxn@ul%|+4DT|vRBHthY z@Y#48x($x|O9I#s4k{{6BYbR?$jFm|5k|8eb2nnc>GkMDeGAKm*|cXSggr(;hw(F$ zdm(hFhGv4RjF$?cI zhlgoGOn-Bu_ADc7G}ASRTdgwS2q1b6O3Jft8UyhlJOi=gmQuulP+ScL#;Y6m`vCCm zZ>)Y9tf+R!nuI5M6wBP9fDxK5fslKdVuSFqb?J`IR&ILPW@gFk=Sb9ysoeQxZ&7J^ zd1=w`r!KH|^(mh)6PA|d+qGJIeyKG4U)e=Z)voH_B;qjiavLZI9CL+I{a6yN0!Pcv zn?Etrh5$D&Q^2PcCn=dPFaMK)pXCkyhVDi~=9j#|!2eOD=D^0p`zVc11SVp!i5T7Na!N#~T#6a_u@Jtma(u40tt$%FOqNRA74o!HwE!hy z5hsLY9(f!B zU^Gh*pd}}sTgqa%PtGX*#5@wzD{$g`8;@~QJe&)0&?Pz9{@@ryX#2u5PWK&ZlrQ9I z1FL3bOdgY~G-*w$!aSirPcF|=ni;cGq1Grg5+E0w{@4K%zByw}}X;Zxls>*yWI4cp=p z@!F(GEDZ~_7<+?O&S8h93}IcsgH~{&DR47FGIrV*Q{DfXzOvmt*1OeWs#eBz3=xn!-*mNfl+XNT_Ew@erg0fF5 z@lJRVjG9XLT$6B^YYnze6t=Yn_wXdg$9T7oHxds&c0Y~Bi!W3%{sGaN_Sq6gFozIqmsTx~^e&PJJCl9a7&Gwufc2_rqJ^{Vg zu7UP64h=3d`z{iVTi_h{9XQ9vkKH`F>*Ho`bVGaXkW(T%b`xlCemF<0VbI)zSK}4n zx_o(V{s!tysQdcTTaju*g%iDnZ$SwL-;NIqO=o7ka8>y7{6O?Un>DZ4ziQ=kKym(j z;sU}2{?UEVgSjPt7HaTGHs1f*){e7PRb6`BA_d?7+9$95?&!_?Knc%$eSZ|;;fJq5 z{Q&Mz%m~zB7UI7qPMb;{M;tmL5De53j01l1%s#C$@tG>0RcJKq`@#S#)2g)GkJ)TB zSfMj31p}9OYQ@8~vGqag$UYnzlDTMMEozBm_W+7T10`-{>{__pz zu*2InpWxaJ%~g@*M@orP*@aPoil!#E7ap}#(Bzm*en)AEQRXT(p~#=r0HvUK8*-vdFX+>KzagE=cZeR?(Lh zKoIe)78smXDK5*zFI>6ctZ=q(YB$$2`J6$)sTAu6T913=PKD>#^T#|2r`&VAbzr?h z#VHJ&;}(d0^kWeFW5QWfT!bJjE+#(RapuepWWFG50otkp*-BQ?6YJJ!x?{cT(6&dx zDzh(v%(G{O|DjzGnvNg?luh}SWK=e^mMURSZ6UrS%UzR3mNfj(c_ieb|AN6j9s%0q zI#mMC>e84R8MuY($ZL^wHW9CeArtBKIC6D>DNvB&UQ29;`PU@y`7e+u%{v#X| zKOxehZ|F?Ap$ha|-rki{4Lipt#&!Y;$th)nH6`2DpMLwDw@tgWD>V#Ubnl9JUUE4Hjw7Av1Sefl}LTfOCl z-Q_KNy?FsgZmy#u-vF>7X2MuX zc)EVhH-?FM$dVCt8V8hf4mg$2gs5&$=~NjR!n<-g2qPLN4w~5_qtopvObQkyj7i(uz$t9E7Z*zKQ?37v_%+Fgoo&dA0F202zeKKYJUmjXLim` z?mDGF;ZJ1gg;J)w@R0UE8;GwJn(MpTy6QLlgx*lMQHa+VW2ba7xk6}cJ0baE-i z-z;Bpcr;$!xNB;ch{-*BUha@@Klt#DoN%W`T!6vqWx|cVC)BO$=%G&*hfJo>;!lc& zfuchF(+o_{ zKzo3!XSy*v-805fWB(5_&~zVo+GAj3U|;}Zy`3q$^K zZo@zb=FaycMXH*mOZx(u8)f%PWbBl^id3~yGx2D7sO%{ixNweBOP{cTkK^F;fN%tQ z;vOKJ0rF97g=Gwc;%p=YB!B>j8@6QkVmapd;WF6|<`x&@cSdF(_A$aQ`9CeE7zZSu ze6Lx*iTiFjOJH7-+9T%;`rXdH)nVT%Tc0i`x%2CPFdhiUY(*CbR}bNoeeW(_A_VGl zNBDkpw*`z^XUC{F|5L^`yOWMem(wyI-sQB7e}FG}jX0+0BLVR&DNnkE$C+L>Qy?Za&jM zKD64K?!QCnp{Pxr)~?sKzaIg={{d&PJKO+x+GAi~5F-=HF$6G7Vz|QS#8|+%j){TE zhFOKViN%BE9Lq0O8`fp4f7l|}POxXOzu<7-sNgukX~0>>d5uetD~D?bHy3vWj}lK2 z&k6Alm&5XliaA*v)=Bc>)cL!3+8 zM!ZA(jQB4JHHkclCz2_W$E5V6;-r>HU6J}Ats?CtT_n9j`h|>?jEhW>%s!bMD8@?7D0$xF^_g14CWD(@RULOvgS!+f{-$@p3M)%m^fpAw)Ea3OF_5MNMT z(3{|h;1?kcA$LN4g-V2)g@%N-h3*Qy5&A96FKk)ZkMJoGLJ=jA9Fb0uo1$c*%A$Tm zdjR2s7@wF92m}CC!;!&w+GAj3U|{&p^?`w(0R)(Un2`Y_<^bk1001@<0!9FM+HH}| zN%x##_L%ihl*1VI^7&c#ct& z4S1f_=(m1><>)iuch!Ff{6T&u!#-W^d7{TPE!qrlY>;PN)={9Le2rN6LREd`WA5}i zPUuiqwx@n?tCnk!v%XvX+yraiyjX9ncNi*<)Y(zCz@z25;*KflYw;k4s%noo=ZrF^ zs@h{$URkk2t|$tZ%$vsI{_$MehdaX-rO)U9)Y= zOjFYL)P;U$HchEL@^|wCF$`_a zu~0|sPgLaBCgvt8RP6t7>hSye=#JSf>AlIeY!V4d{QyQkZeaj;+HF-=wB$w+)qNvr zf@a?Cnw+!A@VxdqkQcDY7)&-n^hhnKcUo#~ck8`t_n*Ds{NVrn{!M=b8^I_z4;#TH!G*yE!NtL4!Sxs+ zM1&Y)Ofba^3FcT}6Z?XTg3E(Tu^$I;5^jVW<0iN%ZibuV7PuvDgz zhPUG#cqiV4cjG;HFW!gu;{*60K7Xhqs(PxV5#mrwsPsU{4+FX@fm9*wY7l#$eAJ z>{)|7+}nfa^!AXqXVX4WDVZ@*-5HU^hBKX26W(ldsahUY%&5P7JwZEsW)Dx@6gEhv|G#FrsknP1YcEq(?0y0gxzEJ1&%V@8^E_ z+VLw5PQ;J!%+6__ZLRu~FV>Df!nBp0Nu4NWwP*&I^aApDtXAGGj&__Vp?S`mil$Kg zG?Qu08&fH}7^d~An9{@^&6ccLL#DOb@o^+Q^ifQD+_l4ZuLw_((-DPZ#2!zJPRjX! zP0gg-&yQu2)$Dj!VJQld9cKk8TJs6tC81F^rVeCM89pag8qt(~ctm_Qe3CKAo1E!b zvnE&dI8${^IgV>qHr&qEe0A+{9$kDSce}&6UC`0n)-9P)vCa!pA=mw8$>6vU_6>n= zb8Q9fcwq1=rNth}m&qw9KFun(h}{vEblDT{MCN4gy?L+rls4CDwBoxVRkE23A)BeK zx_W6S)?`3Em9BYIOcsgnD19FpyY;9oETm{wB+8z`aod@SjOT9nA)1&r zZL8g+6tw!X&wt+)T%ICH`6p6cohM$}{YIPXqV3(8AJA_$9CWfiW8AMCca7^E2}z5J z#Sxp2v@xS9r(z%#5NS=ge~K|BjZ4?#PkLwo^-++ zzrel|UUlt>liV`Yx7CuzJDO^}iYzlL6H^zZ!%UZ2@FHV|&zxfW`iM%cx;AuNMx>1{ zkC&WLXBcIjr4+Wr3TwS?L>n5m&1a6EbV&kTk;cGZbgDAN%uKjLrX-I87{r=B_?U2DocqfSV@ZYEt2Dam3vp?*MlF8N5Vj*Q(knbvtiV{F9@k<2Hi i6V_#B)7M$rioUDtyTSDm{VznXYXtxR0Z`HkVmq1GwlT47+jjEAp4isJwrx&q+nLz8dB1!A+^$-+Yp=6*@2)aLk9o=6#Scq{BKuRL3xRQ zg{h$l0FX)at@-8v?4L<@ZWiCdLL|HqTU=Ru)b*t&Rpb1vUGl)iI~cP|2FZ0wD{ zby=g|T>m%Duq#(yZ4EuX^X5eVzgQwrJn&vSLtE2tuJW5(`qt$T>Iuy_*gJpsl^gus zmks~`BNZpw&*k7``W;)a^R1)*54E>6Xzr#)-(xOB`t~9J18K1Q)VKZL?2kp*|2Jm9 zgz9|l|LpA|n8%v2fr){^4ww-PB$9!V0eJt6;3VkLw+^8Lgd70)@4A_?SypfFcyB*< z)M8pdfFgk~i@u43v5_Doyr2*WBqSnMPhNd#T3(wJIlAvQ}$Cw>f^9B6}GdQfKWQ8hP zsie93%Ll|A(`I2G|!UB%*SZgwg^Zck7}II zA;>jOQ78&dk(r~*%IpT3MXf57AP6;$V^D3KV+{A!8H8BR>A04s&!Cdmad|2zDhNW# zyxMU{%(ih^JLgnef`3Vv(fANCM)!&}F7nHbeiug#n!6v_96kM0C-*MO|oEm0r7hXHuEX`hb$Uu)D| zm_gfiU4Yp&?V|5nK?iUGSb{JDvH^YoZ-5&h4Uh})0Js1Y0rCJlfbM^DuB+G~r!9oE z36BUCFt|d*wT9M^9yjcr4*@f{_}j>YC*%;?lEW!J$`OQ6FhCT3tp+t@;Uns8~XN6c*ld)$U1+&zzuUs41Sd9C>?Z- zJ=H#e_!_vlYsAP{lvcb)FHo%X*}{5kHBs9XKie6^g8VYZDyVF23!d@0K)iV8h$bC3 zQC!EKmRA2sirN=4=Ax?HH2J*Nr(54}Vh}_<6#%s|pyv6500EI4ZLWoMoE9GW(Wqh& z8aWXUmg{h1?6XMlMFM5GQ&Ng&KeP#QIDWY|k6pgui#Jo&)*iqASrf0%y$4&G`*}2U z4GYiy76j7lsC1>6@f_&+RJZ!<8~sl zL#=H(O4!}L+^TerYU)jIx_bmHhX8Is$ha?a=Iv7|;FXuQn$-dUT*QmR>#LyYEWDx< zlfRx~zNb#>zn2LF0P^((K=fGa?1J~eT})==b!R0Q+yCdm`iebqt3fa^C#rZ5K{^q+ z_e{~e&lzDX!&t^-CnX|*CxIi(NR?S{sW(0sH?H=wzy=o@0T7xB9x7A{bbklF)TNj|M zuWkK;M%0)X(6+vGR{f>D-b)O=J%S?>2J+oU#XjnoyQ4iKb{z^nmTe@o=b0qJ#A2D=apVBjVjjz2uWp zJEi)pC^eh{Ue0b!x)zAMd9uDn(}%Jaw?!jiHY+ryAfz9(xUOXMQU2M?8HTp({w)hvqva(I20(t_w8XC@e^aV{gC}a&OSXB)$xle=TCBTBXfHx>~-@84XeG+Y(5vEUHIN z_Jmr6&IPyxVv;mi_KJl8JS&di3OQZA&W2#Z&>@)K;pwnL(4W7@fHF1KfXG%2h}>0;%-NX*E^SLTWpN)G_i22I2+*>bGQTi6JN)%2F+s@QNtbvYR(E^a=y07l_BPY& zV%nI?nhbU8Y#r#al64O^71`W;0hoxa7P-Z6Da@N7z^5O7LR4$(q9SiUtCPF80vZH`k|Zg6^m!SsF=A0icYU<^$d)Zh%Z; zk`k`s>wGU+Rd6!%K2SN3j)E@x?FuWf9$2 zsas!@ySpnHQ=xU9vNq2*EN@W!zHeI#?*rxIS2CA;9^h|6TOSZW#QVZ{!n54 zUpBfySs$UT@Wq>dov|KCXk1UIUuV7YqisoZR@*I$#^e`lZtnf}Hcej(uFNy`q~@qF zJT37v=Z^!;6zHnJJ6yJmpZ1CPoR_q^A|pF|l6iVRs!!8uQg^6_TNF(mU+`syTH2|~ zCSN3=%808qen$R2G!OKK_C!^~3NY@raO1YBC9w`GGX_ znMjf2kgbT0z)cx4fZ`IbtU^U2dQ9N?Ue##c0t- zYXid#@`*Q8Lkv}wVAex&MGrV;=Y9F220fdU3sm@k8PTk-5a^z^4h&qUVn3M<<`O^? zJF+U=zuE_Cj81c!j$UxuU)_lqa-?0nVBFQ)J-Eaj5&yYiY%I(i%Di}h=g|gEbh#!1 zhPbNiaih$_J75DlbB&qk20mfb_3NQ~Odt~GAebqg{|NTTc#{8!@ebmMW>TL?zr0dXzs+MYKn9YdT||>ctNChDgJyECX{270 zMw?y_D6mk)R3$K>6=ZteV_vD);4%LNW;y__t) zqHT+Q`+=x0>orHDe8DxQdmnySVHH1uEzR2^pha3g{tZ#Q*oYUBKob{8{-uEyW*6c! zPAdmQxV=2w8#HGIWHbD9iFB%H0LMu+r3{V>zmFAZSD=rP*{jj%L>RaGWG!+}jmmwu zAy@9aPKdiZ%IXxOM@;xyyj131jX-LUCqiP#Hj^*X8l%tPsjl(pVfB7@%3%{D&C+!x&KeV zjjb4+j!Z#3SLS>p{+b3$EvmhBCUMy+Ub^$RP3)9)W+OfYyY(P>PmPLqUcU0w+E111 z1=ib`%TVS}O=_S8QHtIe@300j>eB&@jJ594cyiU2%xNSZGoHE)=oX1P1i3Q=5{ps{ zZGDK+MoRtSPfU)&h19yG)T$gA%MUY~c0a(?S|>qbCX2(eS6k~OvRpMNsZI~JN2&s= zYEZ!#a}7E;$gg}*DOPY$Sd$t-&!KUUu=)Dvw%|C>oA}YUamu!7yPd!V+C3BYAdhrW zKP2*+FcpZD?OaE24AV>?`Y4U@%$3g1nhl^a@ay-JvgaZFhof&58t0$4BIVD}rq}%h zdquO=mkqNxO|_R6s=;{8=}y;+pXrCa0A7E}x&2rF0|By^d*#ol-R%(_?GRvWL~l)R zD-b4{=5J7TWozY7MHWn`6>~+3gqv#b!#f2C6kJPti~woc=r&mR#X=YqBIvOG?y$`2ZJAfWXls?q6wqYXB%f5A zq9}FHAEhzu2=&^XvG*u!rQq+hGr!i?_H8DkGQOYuU2foQFeS|uRUgR~r}q%w%=9Gh zQyY!lI$d2BBb8_os{C|L6VQDx_+#nGT+?9u6VDT~wU&WTI@BCI2K5?^q<=J1+$@KO zo8Rw#byIu`51F*>Q!f5#a%F}ejw2^K8^Y*;=F!u{|LAQOq?O$o!=h)f(ckCqgpG+C zSJIaY=PKV^_0Jau$A{KdPJKGP!uyOr>KdMdYobDs8%S{2;e&f+?L6DqsMs| z^M7OT*t#uuzJdo(yyev3l?uj~#)Wf=h%$yN&MA^&7a4VxnWLSJA&0Vo2XLLklg#4j zU^14lj>ihC?Gufxy?Nf0oOU$YEsE2%&z4v&@@*bJ5?Yvu-l6yrH0ICv8ZM20hh6on zK3M)?tz*-o+zF%}uA%LPnoHOOZ>b)5u#)T$C(9|6H%B zdV8RF`M{%!r$37SABWO!$^|jlshnxM#AENU+gX#q`Q&>&0el{M?R(=q;mlT4YC8ckf|*bkb{ zFmrD;+tr1gQ|##xB^Wsb=)K|DtaTRauS9Skh>tELHGovSb5DZP;l=sM8b`5&qrHs3*&t zb{1(PwdwssR$FVYE8=Nn5LUHWe>n0=GqIFRexpP7mAo=uBUG{J^v}#9nF{j@no)`p zP_VFs4m)K18bJRWqw>7-&&eV@#9)C1EOly0{_Po)1jI);uamhQe0j|6KiD!ma>_Pq z@B_C&*xZ&7m&EGF_mEra@l+N5`)4+jOjxEVQZ`K!j!Gj^lb zn;E7}_#G`FM)KXyzg1uCyPribrbX=Wt@wmjND_VT>bk9Sp+_O<*+mdK2kZ4abBzm) zXIG9+8n?CSC}s`Vs+`=1O#bM`J7l!Tl$^bs3=`MY&>i7mZ|JkV-yW2Hs4EscSm z#~r~8{ZF{yzvH!;n)1Vvy#tW>X-nv#H{ zqTs z{-k}wdc$HYRDLXcOv-U#`*pT*{UW);4w3XB5iO1)dw#zzN+$4d<)xvUanATD!t zY(NDCO=ajI9rhVF8*2kV7I+HCGd- zAb~*cixTi~)X_nnhgqVRv^CfZFHQMu2mBW2c=Sj7mRk84d!yXuFG8oVuqHxd+}1iA zr0V;;56m-iUpq{P1MgK9B1E6BcY#eWns@{}q9n4~69jTh(kTg9IIHog3IX>y(-_fY-T4K1aLL|MB7-5-bA^%EJ`{Hng6%T%;8+ox= zExyyKE=itR&6u_R(GmXq2`hu~*n3d`?J{ys>UD-@`8Hd^|3LCaD3@Ko?eh_{Ez1v$ z`}stek>zu8QPp5hm_<4w}MhB`EWy7);5uG$WW?V8btI3Dl?#*z1Z-R_Jdf=D~tDB-hbbJg9bwPGR z6Kt`#m;9G2<~tZR!+B)=1qT05;QF1(Wy>LSrKw)Rab~6s4{yyFeD%T1I}pFhQw^5) zUvSUvMlD)zB12C_$~%{`Zl>m137RvyGOSUq)xj0} zNb=BSQeU@7|EP%H-OJw-D!cJ8z>Do;d!a%l zclRljm4Zm)tv>>h{L=f+uKQCVa!=!gi^2Q&{{#y^iiE3}9Q8jSgISJfHq>fmvdGn! z*)*l6KmpJ>=x(h-oJhXtQ==gLDL|9jv8?D-##reOq9mK-)gL+uu35w7JbIMmGlo9H z&yVB%kd?Ys4)BROd&u0kgb`*Ed}-h4SUMJbF49AMz?Fo&SBe2 z>o`p#Io!kHRkZ;vS5- z`n$C$-P#32W(yM5Xr3>|@pU;Uv*l#RJD=1SsKx(_IyeJ37kG^Put)r>s2ck6?{uU9 zWM1xENQkvipXy!>s_mbIWr+?&tsgz<_SaQI$3MRC%=eD33;t0Ku#&m}WNaf_)~L)A zJ7h@yGU+OzE9gT^uf5azq;T*&xyd| zrns8om4heeC%H@SyO1~IPI3WKX`d_fx0c6kUY{o#-0`tNnl|-t;U!+DW$U!WQ{Bg5 zw9IF}N4P}ktDl~?jr5T@3=@{FBP*XNY4w)}{F(>#3Lm2k*9gaxC3f5SVyi8LpAW+1 zruH7W+6INfq@mfNRg4T>`#!fQ_=?5DY^WeIu{ zCkP8z=kVnz)>UFItmyw6Qh46zNrA5ZNXs_zegwa66Bqe3lB z^9iy3p~xU4oDugvfb*adxG1VfOAwWRGz5F-h6U7uukJYp%d8s3Ef;o_?1XI2tJZqh zGa=D(w%5{+*bQ{mez+nD(-}$-4CZ2}!I$^ZhcV~3Pln^-S5vZi?(8dn_$o(OC=euq z&61ActWEA)hjxTMUUybE*iYPWJX&AY9er$LZOx^AJWqd!ytr!4B^Z zK+uWs`Qpy{5_}ZKcPX|pJ=lY$Ze(6st8Y@H4<#z}S4gT$g1et4!S)~5$j8!xo7YVQ zCH6@NrJ{;S@U+4w#m?XPdx}n)i41cg3QwzWDu`}^5c{W(@GnPULr^165>Mc|{gtq- z2I85W4ErZ|{Mb@S&QC((TU6uSl73)Y&n!<206SGAQC|v+yY24KJzXSh%lBnkjpW}S z$x3+0I`$sxPNGlMd91hBMADD>j;q(QkAafz*XNAlbZ-a2 z=F2(`gejReadLRtTzTV6(Mllma^sQXap!>3rY_60$G^_PzI>TT&3nbQtE@F7^Va}l zi>L}_F3F`oVaui$#}}5Grck3L2A2rtnc_!-@kg}S2x=FMSWyk9&igX!{fY4Numw#h za)8<^_|i*@Unkv9vO2um$>*$l;l9*Ym#t0u?_P2$2N5uuvyJ@MlhIbMzNsgFoj=xm z5e0m5ml!7M9~Uw8xf79Sj>phqS=UAgjz}i?i(S}^l>am&CQlbwsyYSW;|DLGAMUaF zb5{wSeAOeYOeE@6;I1egy6Au1cpXSVbqzJClR&cRz!z!Xw=i7mMIB~6$<#Jk-@uM< z=p5w*DV!u$guwn)Sy-4iB3mA#S9{j93U|R)c#SC9kmj$E$XKeeX***GX+=@;qow9? zo7u<<*YMa`TGg&y0D9i|I0?Qn?ZSK++X{x3Y*~KI!@N~~H1DD2Vp(ttHRo`NH1ii# zsUEc7C_nBxt@6JY?FI2A%7M?QT+p1KOqVk&=3Ppz=r_pZyi^-IYg*~drcap#ywMdq z)e7|U!_CnmdDyR(i)c?8Ndy`FEF2GFsd}s=Q!2mas7ltPQD~mS&RRayY&4AyC~6yL z+MMhqp+l~AQVdOh77w$f!)ChV%EU52-d zcgFWF8M(Fj=chLB>#kH@vCqA`k&9E~k#e??ot_zEyOoftu;b;vcL6cE9N@*4x9)ii zJ`XU#_i=^kt#IVRRxZf+;DD<&EOWTscqC=*oHjd*5w&b`h;N$q9&UoS;KJU<&h~h1 zk+x1vfe17hz>DWUqT9UTGz(V7orc*)DO{d!!^YVQG5Shbv%eCiG^Attbn{s}a-%#~IOdspNvR9BYbMUb<3A(tN|9LDQ`3`5_MA=LpeyZAzf0i9x zmsZ1HE-Q3|9^@y(8h$z{>I>808&1g1%ya);pv^pWN(k(~B#}*mi`5E)5H84H4)UA(NmAKV<@xRGm!JLQ#T4(5=&41NW zsA&)HnT+2F0t5ZKoS49nq&a0|A;TB2>$=;fTr@_c1PrZ#xiKi>m-{2!iE;GhqXS!E zuoVr=Z{hP_x>YM*_BGOAB}T=|b*S>Dh)wmeqJ?)oVRaF-xMa3>>m(f9V5lOcp-DdEDKn z^{zpdmsHvf7V{D1-U|(d`Hrz)`oQSW;RH5X?ekm)y}oYa-+VJ!1bPB)5KX9h68XuD z%2|5wDp?Pp=skVfHV7bKj2%!?YaDys2LoW4oNRmGF{6^LTbT-*sw6hl-2uU1a|jvU z`OtRYnAF_o(INkkfg?G`p73zdF7DcUW7h1LaE{R#E@I{tS;U7 z;gn>h%wyrx55j%Z@R&xExMtV4ws;KJN}@4u3`pdfMC|MAMU@`o@8fjIV-p7+k&i%m zj*+6R=*ESqW2lAcAO(*kIhSa_lIU5JtH_TJ2DtWYOD-6lScYQAvD9Vzv<~UWf7bq3 zLzf1fCR-1x$b(rDvF)!&;)Fr0C`XNVXO%{-Uw}MGFx#CzB`47AV-%>Opt9Sx!^g(wGqT;*<7M{x$>Zr@and|S`;LHspEXIaQ-5@WKbDhofIo2b z!YsqoVK}1f9uu?mvVhPDV%JHq&h;c~+Mo=Dj~%fMcheTRI_wi!CpI--CpyBJlWb3k zsf%|p2Ox`^6aZCtO_M}?@b{BIW#EmxAK2q2je>aH^(q<00d5%`&eNydk?H=3Lv!KS zsm3zbRdomRU#1j<>5Xj9hS#fTGN@9F{KN>>T#GMhzvZ8kRmpX}k6J@{jU~^B$kd7x zPfdhuMjZoTy=D#g8Cd$~HCwC~Ntnds*56I}1Ll1OHk2Kn<}Q`AmRSACx2r{y#kb%} z9W`I;Yh0l{ouc}n*~X6B5aC&$w)P@EkO-xP%M>v@Jy^=5jD;M&VV2@rl41n4^66>> zhmGuyC6#B^or6?RZN}zU_g;(k@D(9;8`~e-F?g9GKG+#{Xr_<~D3l?`%HCIa{X~`H zf0DNWxwUJ#7w2%nruhNKyqiwh3hL*(s|)~B6Kx@$xvx+O|`WIv1T@ zj~C*S%>%}HN1mqw7hQTA)p%3Moo@06;J_D?FL4BDOD-92qYmjdGyboerDb%muv2IE zI2%YFVNCqb7>>gVtsXn4DF{4?r_=Vag-igHxI-LBA*|JMxycV||nm3M^ z>Ga2*F~e-qX!yFa_s@J=c}-i zUNy%qe8oAJz9&^*0sP`6WLk<99vGdm7-u)w@b`9}mLz8>!LEA8k|kTO5VpE;@+ELI z`L3aQJpZ(4EAKV9UR=zp!L9-@xM+1-k6kcrGfI|KJ?Ml=Qd@Zz(P@#hbEFg^UVK3Q zvFX+_Llkf8(=0^5*Q=jutS0NLmZr{Od(4o1lB8}g7)HO&Vg;;6o?O!{Rr+s}|5@qu z3CJUsJtyH8o#$6aP!r_MsDbGR6`Y(>s!4|bBG=%akj&_-Z@o3_?OG1k>bJF+QM{K>GE%}J zWSh`TSc<1R?}};9{b-G{;5sj;`T$kNC=}q1D;7$V!A$5Y1!T=NoNKzXS0i(3k4+!^ z#l?1YJY#9f!e4v*HU9g*vqm=MUDFD)AIuXLj60XHDqXz_msv1hs=~b1>H)ejBR_13 zg)l^|B74A7oZJgZNqk~R01T(u3({icS+yfBl+9DR54|ugl5&W1GU_3(#bYG5|61{n z$3ax7uSS$uvbwLyx~s%w{gz+;Z_Uqt9kE+?hhZ_s5&Be-+^Tk5^Xaao7?TFgv8CK( zLcS(!Xt&g7F^NzieJ-74j5&9EXpyZvSw*a=7^P^-|j5V}pQ^ zWb7mvGKPv?{f7@hMeDJl<7N{@)Ru3)7UVX@@AoAEd(v2H0LKDJa*) zXRlPTF|_=q8ak)H?|sNSoZx1kU44jFG*-re?MC3mZqERNlyxcgzOSzgp&oCQuyOpp z?W3`4fTAxE)T3Jc7gb@H3S)Ug1*+^WUa(DJsB^dy!YDm>p-HeufcBx`04NXV%j}Uz zH=p@fA(x_wH76K!*cJ+G*rpMfK)tWM(gOMh*)OKP(+o6W+WD3TcwXY)@WI-Al>!`1 zS%sXvw>H_VY)82(+>;by9}iah49TxGZ$meiEn&YrdgKGTq1XC?{AFe$s-4%W5)E~c zG*M5m7#f`ek8$^@kWb`gZSruDz;jA10{J{@Df;gS2#{1B9kWgX@UhQK=yw7}AbI;B zO`kRq@m9w@t>Vf+bBG#sQGHTx;v>|ji#e^(4@xKqE>(n2iqsm>1=0wd^1D8V9^ZhJ zxpOc37RUi3BUITFO6Tv)#hxRFX?=}R%|h!rbzt%6Whr0^5_+8w6?U2#GUQ`VW_72u zjqQ!sGYO7dBu-*aVZ({AyhcDCqgjfgT1xi|Nm&-917%poGqSXAQ$r%J{Qb z8N)Qv!%%v0Hz(=>ra9un&}w`iGLSmzNT3Cj<;HTsHOXXww9s6x%yE@k0zHL8y)rH$Ed;Q=v-(zlY`@cv6A6fFP<%K2nA8sW~R=rdpxio-#76=^k~C=y$oH; zh&*&Is_)9yFQV@C^x6H2GUV zytDXB$+nynpQ>$UR0Llt1-4kZ4BEjeoKWQR`pU1h)%d-i$;db(h@rpb7oTzlnY*63EAs}vo(Et%Jv+z(Ne6RU^=aNn;BH{e_r@8`hk>eu<;!Mb*PM+^9iLc`In z59~FJHL;%QVih97iMu8c=&W+g$=Ck%)qFJvMX;fjjwt`6s=Y+2&F59#uzC$z$DC zrPT&qF8(CwR$)>j{&d7?%i5JLU$URqk2TdW{76Op(V;@zEMSL zy-1d!sZMLS(%jBK>Jt4rQjgb>_Muu7WhpA(jKJ=b|* zb5C^F5^oSplf%Y!VX_kQrn88w15P@evj*9ZYS0V%%n-wWX)AreG%l*x1!X@dYmFv{a)zNy$~Hy<)JlHK_S13q*Z=Dl$? zpo6j@1KU&zIXGL`mhBm$LSuxPNFoj=&)0@&1#r;a%y){lvq%+Zts~}a(U@|k(LPgl z9i}uHc-**u03#@*jt`aHpMQKrP9Gq95Z7XznP)S zo4vWaJErb6khb2HTl7o#__^W2#|vh!(voN_^Wc*>*Uex2T>ucJM3b2qEjTKkg;9zJ zF5dplLn}v3DhQX_GJ3!i}aFyKKqdlhuHSffGW9THRiIGB#|a#GYY6JQ8|V8Z#$HnrXVdDVY0!;S92&p`I?#R;zS zW-m}Gx-DZjduWXOAsP>Vft{IOxTqGTECRhp$Htk{SoUx@{4<^z8jr!MoDY zuZ!rJ#=LCtvqjyb>xi}~P}5;0K0CQmpE*$UqQFO(q({^pRC^Jn+F088#!n{a4Not% zsG{zU`Xijq0=2wnFags`S*-dNWmDsIa2Jk158HSO55F*%Dk92Q2M-lO2i>kN>ee6c z;@H&l6N3x9bkB%>@@e5cB41+a&Q~fG6jM%4N9TqBPj4+M*^J3ovnyOT_=#|X2D2gj z3D_D|fx!ga#WOLq_0Hb%L+bq$T;|WC!R&0~R`=fR!V$Iv0mDeUeX^t4FHp5@?c949`Z;k*&thnhXPvCy5%mqIRv&197DH(X!#KGMwnQNNO)10!4AY9zV+~6K}-B{ zAYl1odPTq)GN!7@HiM+;bW>iH;_h@agQ?j(x>?h7;nO&1N|YVlfxu?7>#PBjn~Yte zd$Ae5p-=1b;MtsQ_E)!u(}{$m&~{P!D}NSTi2(*O`>A&>x#_3aLn_~`+CsQ2Nt1pr z87slh3}N|}z`>=G#$#jAQxy@lflrP-++Vc9^i-o z*wZ~Pr@lPgArSC+_ILXtaB@k>%}+!{B(PI~qG<*uDT-_3U71er&|0(w_@3xLrP2*uHaUy7$w(7yc&q zgX9hBG1kKAkw@0G1-9sFdmC-1d6?r<#FiHc_M z9YNyxW$LeMzuaf|*$Q8gdtIEL(Pr1Tks}VZBdl&!C(38?21iLp=&3hann(MbXW%j1 z#wl9dPz|hu+LD_dvXDWowj5Ol6=cLfHUj*?aWeaDECPI;*!^kJ&d6l<#zi8S`}SK^ z!di?}REV)$(u4`!-vJA|%mubyaEh36NM4fsYbhnG2u3RF0dbnHR_cd|<0-391#gbVRcuX%PFdqM41Wr$Yo*Y&;%=qt_e?e5~x zURIE}27K%aIHE%{6HbyJ-v1V;6gxHN<+A58p5_T{drFPV^niDVT&4W`te6!o)>HR} zKYj20j`$dHTEU|sx8Vx&pMn&dkLwN5iYnoIhYd6F&YgLS+GTEJ2Aa{)r82~-(F$B! zdeuy>QBb$E4-WU*CP1f`3va-8Whh0-!Cz^;ODHGyes#ZL@ifCGQvOc%XVi35e1;Bq zB|%H&VzjjR!w4fzC9`k<)k|8crsG{Un~UmsmN3APNbk1O2Xj^-gUSfa;&>V$$J@9x zL@tZ9|DF#1IVn7b;t69bb{{D=Z?EMV741}q@In&GNoP}hWOy)tAhkhyAJv|Q9wYLk zux;New!3;i^q0)U*Ro|arHw@_#}`8n{-dA)aYK`yJ4&NH<0%`T*w{vOQRpse(A z&=1YD(YtK76h&PO0_4&kEC7N+at$8?>cYhk%3<#@(Q`j4B8$ZeHsrh_2CTj30TGZQq3e*OC z^pKv$Q`gut+@q7VNk0VWw2#2)hF3)C8UTS21QhSP=0@mc9U8^=(5C6iW92ET@D1^X&d?f(p(vKr{vR-t0>-j=H-_Qjz-q$?Q*i={sOy80ZyZ_WCriRlo?@TH3r$#aTRG|? zZ6ae{!#<=I_+{C}efcZvbM+upJ>Pz){HByjie4pKrok=D4SYQwGlUHum=PH&DZu?; z=-jDUSP`cbjp4n1Qn#XCDO^jJI~pG+XsV2+r=kA+6b#29?p}^{JAg$9ZhRcfR4Z84 zYzN^KhV>{FP6s{I{@V9mH#58P{C5<=mYqS`%|m6cKQz+~ekOcN z`bz(z@GgUVxj_I~6tN6_<_nZ-uLO@N&&e!=sjJ}l?-TeiGcY7lwKP^65 zcfbqP;Zdo_C8F6;ON29w89R^?Wn<}D_uEv{;W6!2(q!y5>e|ii*GXbUpYAc-{`v&i z3M&V%x}G`+QZf)9+pLd#+P#}A zYcN-~^r7aLP5wTcxJV#g!)pYwnmQk}joi3<7i(ldmHIgPU0kk&L8#i_{-}FPWF)js zmu##!9c}{{`nBq4aYZv~xBb}hN=8MxrnY+C2n0XEY2f@NQ1$mxlndt(142Dt;a(rY z6T-h`$4q z7_x*c180Sit1sjuUc=(7g5hI7+bhFVdG_tHO~0#t|7s(=m|mHw(rECDGG5P{vkZo| z1WWPj79;npXTtB2iiZ_gIx(-oU~Mxf5osk8SsP$Bg-WumgR3IpahyuN&NaPINIp^G zmXlTG=Y5D)1KI>h;F2cgcW8Ao-R@Kt1Ka9q4btl>cXOl|?WzUUs(EgAgP_dL$`YOV zur{7hJiQB`wpxc*a6Rn!dpgK~%$qKjn-tmR)|(3jT@UE=A%iU!je~ZH8+Zes7r8tO z+6_-v8%Er$4}ph(;J`%AR2%V1$PdTbD^gW-z8qM;W7-_34gGjar1;)6 z^&oe9LEOJhdKalfxY_OP%}Sm_)VKXHbAx^Uek2mPGnGKj{W z!gp*nQ-C^3FC^8zaht302}pp0!+ozZ|sx~oXIP&`$mbGxklc^FTZ^sf?kx5`mfo_f6TWwBOX-1CmeXve0(Zmkj z^eBMC&B(PJi(?6?VI`$mCF8QFyE{1_w+jmYWsP5A8fw{e+*-Z(C^)NIh(taKQqf$3^7E@ehu&c z06##$ztZ(k&%P^GvZp4EJHB_%`t_gv-eF@hcKF4+*RMbN;vHvipZTA+4Gi4&fqiJqtlNLz#Kekn+J%- zamleg?B4@qUp%^A5+0E_-ZScnNav1A9Lr(qz|flyY`OEh-7|eJ%#Pi=rswPW1wfs5 zeI@j}Z$7dA=)mJMFe|qGuS6lX-%vN+^@*)j`=Q@a+nshMi(ipa7Gu_gsQ0Ox>VX{% zuoHfSZpgVx46jNEuZo3RHIk>#*@2y`k*n;-Vx5bTOqb^nqNXMi= zLqIwu`}lx#B1#nbgcO+e$K{%AIGGHeE6cG!I+^6m`Mae+Kw@u)>s-I=i{6iZsFkzq zpYYuVbsz`LRk4u5rYB<7blk9?WL_{P<08y9V~3tPU>9}Py-C};S~_HQ*- z<04I3h_J1FUl=DZh1$4CxS(?O8xIVR$COpk(XXz1Xzoo>(nEz17iKq(>@n=03pzZ3 z3lsT=AsCOm@V%8TW;N3bqZ(z#nF-j_b}~0IpI~lbZe#w4`D5m@#AHgHIAg##Y~FPM zb#1H7(iOXBQ5)A?E?s%kK`iSvOIPi^9n1R4rK|TH!m_ny=_C8^z_NAa;`9+H*=QE8 z{}ag9m5Yrr)Zrbaq&;6QcK2m6r)%;I@F1gQD=$;;{Wbk?&*pOR%B$gb1f3bZWoxsH z2f5bHvb9q#jzOy}TcLJWxp>n){B^?9Iw8VmpmxvAPIMq@9ErNC#3Ix}d~wAd_?MtU3G$X|n&N`ghAH{P#nm**~fN z{Yz^i5sfAit=mYm{nLfNK@zrqR{isij*?BIv)mzbU45i49f_p-Tk0>BT4$cW3*I|< zES%tz+3x)G3ClhH3xBOIV)|x8?b1y7uMEU-AK}NTk6~J+Q3?vzAxoJ&Nu6GmV zbX&6cS*r&6jR*SuhGHMg$Jgq@v99ic5hvD6#gLpbQ`C5Q!E&gFYNMPG(`Zhs(p`@F zdUa6s9B~*iJYTu^z7AHE-^hM^YATgKc=w|_&Za@W!LJ;YqUp1_ZPVAL^0Rk8w*3uR zHQpGyZTD2NXB8)K!^g&<#3g8XjT13Yl5|bl%#8Z8{q5R3C6RK{5v{mM;>e$m4Ri$9k^XX&0yaUHB*ABIeAT@w2P*Ih+5>+P)MtE}F|AL_WsY(ten zgb1a!99Ta*yCr3yJaOn1`zMc`w14`_A*V7#B?)e0(2KPwR~YPG(n@2f{*%_5k4E#o z8fi5!d-rdxUAwH`Kz*etUKi6;U-#!c!`(p7+ff}Ctf=GS7y=@Gkrr;O+2(8!6>y|? zlg2)#k>>er+Gz7GND$iwqSL&K>O>yk2{-MW;V=2j24z#?RgKzQ<+~YdRh#D8Pjzdy zi-5GcQ`@A$vq>}i7?p`wz^y~{`(|n8I;Iq>XwvG-rFtKAO~=XWFsb8uh6a|ZFI)9A zh!7eE;wgN6(6J|7;XPfegc6nDrZFI~9ra%2={mI$NGx5<%0lQ;>M{vTlFyMQop20} z4Op~l0~Q5-t09yiM?!HUM2;jv`EyV4V%^;Q2Hkvz{Wtb&ddInZC}AJQdi$_bU+;1K zt|vtvhw)CPdgdnupJ4wSB*BM3REf^r*psp+HH|!;>S0d_0bwy71;!liWcpz*y_+fZ z(lgL3hMXA6VARqujYnNion&1AiOrNf?=D;2GM?61>&v*Gp`Z5)``^05ap*Q>tK<2i zSo4n6_yez?F?yfx63(1p<|Kor98 zS-KOSrQ#K!Q6a4 zZ=I174ZPeSu&+Vs69zjxXkrK-bC5kYxRQn{8LGK=)Bs^B&=mIE5e~P`e>2qfxExS1 zjGmikgW<5p^|tIkUvI8kXQFv}<+rMh|58_Hi_mV#UNTh(}NF{ zep_=1g>kx}5gqpy7k-0J#}GKx{*dR)!SkK5;ht3eb^pPq)tc|vbMQkBaZ0s!Z-$cH z(Ye>zx7F5pL2W}_-n&0`Y4rOjI#X(@>dalQV*EzbnfqKoy6c)M0o>`i?u83wVO@Cq z=Gn8RKT7)4mWWE$>H+in-!}tM`vo-;3EJNxQz`bX6jrPD3(?fPl)@^N^f`Pm*~Is7 zGtiHwiWlzUF^0Pei3O9*3-`>5K_)yZimzxR{kZWxA6-#-2m5*?NCtGDSw3q9bo-mo zzo7k1=pXhMTVLRdvlyl8wnhI7zgcQ*ZbhauP%Z_i6M7(op8*MI^s3h;tKJ#y7sepH zthihiZ;jZcznX{67#Bt18aDY+ihXCyVaF5W?6H@=aQ5igi~TPiBRAO(xIA-jv*YuY z>%`p7C1(HuW*>~xiEtk(mqK0|n}XZf3-7?xp`p07})0=vY{Ai#NAQnhkmUS zJ=1|OqQ1%Kpl>OOE3>o@WD%EGO278d=HPJ*Gv2 zJ)hkw2|^7UXb#ngtLi0zOC@=h*JBe~$6GwAM}2|&V`C&6**|{%za@sV5qK|oaNn)D zZFi3GS;?ok)SzFKL=NK) z)fJapJQLm#twLLy%f)%GMg^ zRGHe*Qs)8F3S?1TT5OT=AP_%9oADN#!|*$-6xBxfy~=w!m0ugB3Yo1NyvpfinKdo% z^O@QltjnD4)-m;m;xy$K)G@iL68b&PR6H{`D9xX}nXIwDL!yQ2?;0Kb3CCdal8c=;yAWUgQs1^ICnws@9zle~dCCOpe=4sJ~1R%tkD zgGi{{RA@{ACmcl(qXhN)v#wrgop| zcb6cB)Knvv$eBEg-yBMsyr*6$c^W)Cn@U9bG!JKXCc}D!Q)Qv6kV+L+c_dX$hS@|H zy~W^xSPKmvdP^!9>Cptv%qE(2t#SuBsig;Fv4M1Rb9x{)dL#SQaI}@@>I6>lNwIW_ z_i&-65Eo6bl27KjHG^GsoE#EDY1QLz5W=lGUn{XbWl7T*H1*0nzj`nyU{f^}^whJg z*dUCB+H_tBuwuQC%&!FTQ&l)gYmivQCv#k9x9RcJvVLE-Lu9!SJh@)MyHfd;Ea$H@ zqI&eg#@m?1Wi zTM0mgdy-ieCgQp(*kXfe?Z$bFmw>HSTLWB^7Uno38RI!`Fu;kh7q^5YwXsfJsfwD+ zvbmw2T3!rGvC>ohRRuaUJGG568khhnrOn_TFYC6vU`z z0P%pTHS?URHF2RR$452{gJi_9?O`sYHL`p(ruiCGr)k(9)HI$AHHSI1o#i7N=Uz;Y ztm{m#TjvUzeF(jN$3~XwAYwqbK7nzAtYo>Wix^+fML6HI%aw~);$bapq@{RrBOXbt z^p;i)4Pz>&obKuCUrVWfahAgH@dr6F2E%S>@FTl5QM`+m&KnK|doIsZRQ?_y6nnET#ke?~-eXta^gFCrOf24rDHBh1Fx zi+Y=h)aKn3tUVohm#n{Vfpot6;DhfLe|*8SPJZGWR-b6J(6p&Wkm^OlV=qvTGG<0q zzeP@5f1H`w_rhZayUQ)GW}31YMW1!%#X)(U=ds`FethVibCZ+j-Z?b?*XJe~dVeb@ zOgsy%Q}6`)g6W?xy@=ErX8*TH_N>pJeq-OMpQq7&kHF%y0LI5U8l{<3#TwqO$)2F8iKBwuggYH;CLF!k$qyn&@b&IfB90+zJL2bvwF=K-E4unntk{(+F0bw z071sX^3pFZy>Yb+Hr5r3qCFpc>B|4Ydxp8ik>Rw(pBqja(As)*&3f3r)T{f=U*R(r zxW!`&52O8`fn^?De*79;wM(PMxe)-|&J;m<7G3@m0Y9f}Q) ztWV!^v;-%X8%k>4jr;kF23yCf4LE&N$hq!CZF!u}HSR>eK_NdmbvF+D-r3I!uX=)O z$3K4x&TQlt>FRwaVfC=ESX+PKkqSkpjK&x3sVWaTL?9$7@Da3r_;-+5IN;+v~ZFjWkk+YW0Jbn?rkYWcE~9?x?@ab zS;5CP`RK7DPoxGPPo+++D?S=Z{bHpIbL#R+l1M#r^2tnK*PXo-C3|eE9VX5pt3CCB zEdh6TL!;uhdAmHci8i4A-R5#l`dlskPA_$ZIv!eMl0>V=A`kdnYX_4Nx0=}(i|_8F zs%)W5!qw&S2h)A=LxJ&q15TS@ZCi6fUKwaYkG)^=NJiga97zs0Da_&H($=R8m?wrE?@fKude(J?5@i0Xv6zE`m2|IQGDYcaMKsKMT=ksVKDu>5$|c`7JaQP7C*Y-;>4!SAW88n znr!Xh7Uy{@PqDFu@jwGAv|+PWLRO7rN!4ev3YKLrMT3h-B!GR z+uZgY9~YIqEb8#@|MU^)=0kig+K+xmgj`1w{m$|i%{FP}PLPC$F{NoPdI!?|y`iBg z*w@c5x|-JB1*@~dMS|VBccIkzcSgODj;Ob@G&8IDzcdS>qFI-P7c<@Oi2y0TOhR8!`TnrWe*x4v>l10kc z9Y#m*NcXliid-kJk)u1u)I+k`?F>#JQE*Ah3ab+J&}K~(8bB0$e$__}9zXd+Ca`;| z4+&7SHC|`t9CRGXRv>_6jEuNqAPBwj2Lj`Jll4}MHIND|9Sx;SlHKYRcfHvPW)Yi9n={4puX#UYYEDXxD_>J-O>}V&auknKk1> z)Y92{w`5=XLwfCa>bYpr)j)-)kjpg?jnB+SBYS2>1c%2{C#;{@qsHcE;&kZIZ_KOy zzL6E~;Xc1Q|BXkdUpSVgm!1(tYK}@Ddto~H@I5PBOW&n}t`+wj8`$yLbxw6~#O`*B z!-J}G-NJIdA#)CMWQB-MEhZGq>L6x+sn#;8v@Ew;>{TanoCTAHe_{U?#GSVh8;OTXJ}$YC3-^b^ zP}TZE)(=y*8!)kuUh^r8moX`A2Y^A-ZpPHif8Ikgj_)=JR`ZZ+kjA1=Ac zK0CVqozZA)bTk$nWrUh<8+q5aSqr&OVBa$Gk&(EMt9_fbTsRrs>0|6~vcfHXoBed@ z+R^JgYY}RwH(b1NsRvfcW63SCNO2Ue|M0PsD}0=XH$v8C()7MY!eJeu4#Xf4Vpk{WAs!@y?fLfiPfr*9pO?4zK+qcC1?RS$R&PyS4euXwN>cKOE7(f&3SG1vV<}msy5+E)*aTEk`%LzJIGTcya@0l~FIwC#;8QAyN zBTPHlvL-EL|J=QI9i7A8@Z3TI*&Rqe-esKVUR9u}FmP zHJGi)&@vVOgp!6wIzv0WqT^oHt>7BU2AJrcG;6XXrnyAqW^8Ya?3TE&}y zB36*%4Im9K&M4?6y`^|!;9-%MBm4m}f=W>|vvjEp8R6U7Sph-vD#`1p;;$Wzlw3#k zK~PY}Azi=Dh4>9+)CiN4n-Cq#$Pwf2W~%saCG3c$FsGv>M+RS5v^$z8sg5*WFLK=I zO?{n1>+9-E^D>%mu{ns7D8o2vdu6Gwa{`n*AIo`~G5L9UKIV448X1vF(kewtQ1+-) zpjShq8s+0i9(pwc=Yd{LcaD5Jm>g&?c93tQmk&c3P=lY;tu1{Y^?tf@(EFhhygmn? zTaJT*@4186LTn>W5cw#4(UxF#D-LE5!+ClOjz>2`Lzu%2VXTlH<6v|{!(G042o5*f ztNr<*W>_84L&F(LBE1m}g?ED^x{%wBn#Rx=662~^e|i%{>)s8tds4>~wk)zJP&P|>RP8>};6jSj!ZA~AY2o^swDzxx5$#1N$p(81Ur5vNLPZytX zq}C;^d!}E%3149=@g$L-Da`?FDuDjcU&tr>q12OW@mzM!w^CJ0$TyKfRz`}+Jvf&c zjXlWV?!qIGmWd67WPqO(1l>N@vjL4bBjd4Hu94)0*LbVwiuX@zO3Nm6$O?zrW>7UX z2D>2KIve40Euq_uP^k9sBu?3A^C~h>3Tp7fZOBN23e*(S66myy^;N8-LiA?T3affl zsg*-j@z3ZQZ`;@34g?t5VmJB+`?_VRUqXL!ci-BTMp2-dfdBPNiqGf_G(;1T)gf9^ zjEd|Z%g6zWri*Wm?!RUDawzv7oVHjmek<`%hqzMo&B~Om$!7sfV4=0iM#-~2F<@68 z?!R);&Lw>Yb1WI7Sy5o!qw6|qSl;03cJ2QdkM8FGoJZGxJ04v>XhV)zwwcd0z~lmp zLqs$-U8UuBvgwwyqO^n$EskCK7@O{l(N6wW>=((8M6u2=yODW*z#@38Wr*J1fkNioZ@sc_uZ32J{bY4Se|}iUl0n1hx(8 z*Fh!0@YG(-?+?JaG#Y}X25Z>G+H1v?PA979HJ((43XCeqD)3E&DA$1G@EJv>iZ(E` z*?<;8m2WWM8J|5oH1a1S?j5hr(ek*D^2AKmDwZW{fW&6NCl9$24@G^Wipj=`0jpKw zIj6~Gr;Ig1jlskkE$%yHd9YcOtinp`j<1|Q)f>7yv&P{x(GqG54tdz^UOPHgi6Jxu zGoU!8!c)k5dXOj*o>u58hl3CXPH0Mg)ZU5peDK?0*EnwKP#Bs8Z?-0TX)!xB6G-6w^pD8{>co$SV$Nse31QVeTigpG5%mC+{# zkNn{47kVAhpqqX?dT7st0}zSzG*jntv%+1o8P?Mi3EHiz_{ZNFXXU>2eSv6~fpuFM zp7RBKW~D#iR9%5Tc*5BboZRCPA7`tIW8wi$h;xx`02iRvN z)*6`kgE{s33RnYCn=5xBfwK`f%ONZBS#vB~Eo6;I+(3iLnQgJyClK63t4Ut^ILpm> z@_Xd>u4g_@cJn3jy`qnPsbb#TLd*bC4z?*aYXx|BnYaq0n{EbH$mZKC|I0)rC0Xh$ z4Sa1SU$6$qttAkE0$iED0e=)Dx63Botwz8Vs-EX$Zm4j?y-x9sE4}yloZTjxHB?p6 zKF%LgxE4VSnv5aQ!8&twa5{+u-$jYK+zzN28r}Mmf_eimI!LpPS|Uyx=x*t#)pu)t~TlA%WUivTGg`a7K2P z#151ADqg46#2I%SOB4!XszD(BKHzt(}R{kbx7bIhA*r+^Tct zn3LgyW1QerOrkfE8n*c_eo*|yqdzDXJi9_2*c^mjPN z963k2S?Mo0WR4gNk~(2xEd|bU{R4<8)B#8UgZ(SO*Bl`>AWd{H@gVUz;?IeE2)-^} z$li+-(gFy}!)kV8A^S);djQPu2MWOQuyzRPJa+WWC$X4ooRFhP%rk{-hRf|kYx9Nd zJeNCy))orc1rBf%K|%jL)Cpupf&Y0uf9cbTz zkaMg>zX={<*mCzm#uUFnXIFrgh5ceWEs(OW$yJqor68^j76XrUP#Goj8j~zS({5saPKxL6TEL z8!aY7_dS#2q0IlBoc!uUFf(yaHyZ7X$Wo<7)}8oG@#VjIr})yZPJFcR)-U%Aefg=A zv#UF2PK>6%oKBxlU-7`>t2wH z7$ka#Jw!f$bKeR85n2UQH4unhF+yb`(+}^`lt}v*HUlRwjZf zI2Z0g)mqn#gYAi2RTpT&XlS?@_x48oe3?+TB>B=vt} zrX6C_c~^io?$7`1gxiOX(PV()$lw1ro_30j=iLFybh-FOar&2T|1T=<;_1y$htJD) zkuqHFh$m26+e}&YGO|mqW~(k=dNZKyuFCq+{*{+=wP?TbGVv;1WvpGPmL^!f0$Z*A z@^*>Os6^v!(U|Lig>6~Uxm8PyO1d_U$MKV5fsM?+SobA#FD3R`|AjHS)wRk;>Cye? z?0i)o1{y&5j#oYUb=u8c&v5Q4>Wfhy^lH8+sg~ESkPnLik$SIpbhLK~nSNqX(_lt1 z<=?}wyh0@a@aB52c18KhDDH-c?xZtPMjk0#>gLh%MQ=SnNj1d^04} zA_>xF_Cb(P3p7!75!@Tti%E4v;Zu?Ez$3G1vXA`rL6ZLHhamyhPrR}ZqX@o-+k+~p^=MkeRq!f)sK6(4D3HWGTB%BqVbMM zWYkzZ-8-55%`Lm`n5c?<1K6 zrqd*F!(nWSRXA%&RDtEUi33N&0FJu@;N3MroZ*QYPw&@1YSHEibsTCnxeoSfHhdXv zEYi9vi$B}JEvg-1i$9MxE9UReKJ-JpS{2sOYDcLp-L$3gVm0+3k+%|27=;JisJrfu zWdoqq1CNrf9QlMw5aP`7h^gT23Y%G_TpOJ780k=udeb2{?fAVhZ#6S}=9ST*{Mnt1 zfBfVuy(3xl3k#XdaZAyk-0{y|dSEyC#jPnph>TdQWOw=- z-~0KI@u%)fB=$Zze)yN)e|;pid2ILYvB@==H^2LX{n4#MK7VRP-S__YzV$|GtJO*l zMXVLJL*# zB(Z&obrIB=iKkDCQr(-3MKJkS2&;PHLWpUtlZD?uC9ZJ#n2@l#dzIh{m@ESG2GY|X ze_SLR9d9s##pHJjtGeTs5aV-5_EWzv$c`3$NQn2uEbdm5U}4^LG*aD?c6+a?|+C}Jo31qtb5AbAI##+l)>TVmN=!eY~BPkat`IQcwXeGIhl`-MDPx2J;Hv|@6*973X2 zl?HM@GF0q1HWGUg|4X4H;pMF6X8CtUlB}>Gn^+zf9o3HBG{lj(#m|usgf_!?JrVvk z>tbakHhnaee(d?e4%1|IQcd)Cyj;w_BzfF6 zPqZSAWI~H0sk%9iq&yWK*&d|izKj~m^vdz}_8218PDzAJ4r4il#Al+q z)kq)piQyxa@`J1`^8Y0AevqG5Y+;Ru7rh((NPZMGJ5k7OdKjr!ok0+#Ll{|ocQ9+d zMS>taE?t0tD)4FESIFPTf&|?+k0j_m4gfo{M+(^^9MI@gNKmc*$|fv9<84``Ej!NP z7!rlcZ8BWF#Qpgj-Ei>Il{GJe*%WoZF`jeMl%ff7?&e=;=)vmp1en7<}F!Cy2xz5b2Z z;1sehBrTm2NLt!cX^5)I_VC$cEPF`E6PqXD77TyU;aV|$5RUB@7TLPH@4FFE;8EL_ zGktG(if*XsB}{}iG79i9rQmYAS{W%~E5#G5yxexfw^U+ugM+pvS_4P9VRj;kARqXg z=vGp*J?Y-MnmTbD2@fZ@o#a#~l?oLf?LK<^v2^O_bWD+v=zJUG=x~1rk_(d~ZuQ6% zR4CnF`Kz z#`a~@b=Q>%R_pKlT`~&GJUUt-8t5YU zK_^s*(r7G?ZVzh`k{VNAqtqlvyJG!`^oG$pZskB_`=lm(aKq>=Qe$`!qG!Tua67+` z&#erhwm&B<4w^@XL3|c$=y?66yN=+As`ZZ`VG6{u^ZZ3O(cC_!McZZ#v0VKobl#nJ z-8~DtcJX=J_B|D>D|RtrSvKMAzz$LxTWrhju4M^m({(Zx4p^ONlRB2e?(rO#-mBnP zi?XSYM5PpsRVgjY-Fh$T);FPUJsAHqbn8uxigZ&zlr{<+zD>}RN8*)!)aBRS2zsKr zJ0iW*a-pJE%W)(xL`hz@7g*4dWb$>r*hU^tQRA;EZ~`(Ib#A?6LSBq4R&qNC1k6wn2+NtGR(2>!$c~Kei<7_7tv;5!4Y2S^{s-foNyGuJlL=i zErVmCYb2XCfv5ddHtcd2?6HZBrc?;&GpGx0Y)b7L4$Q9(#!-6@t4NKZg4-j|V;`cV zNWT;s8$lgyZ$#~(Og<5H&R)+DXLOiD{R)rT`O?uFo%3pgfv#xRgXvxe`(GMqD#xc$ zG@e8~XgrZ#DrR2>t?V{~P^#+YL5SL^sdjC*V!BuGCj~1p-L-CAzJcj3+m<2Tg1?(T z3Ba>4f_O)eTn0do!WO`2-xizHO8&DoW*f3vKcr>>D}U*k53SZAYnQ!fzb(Mqo2#rv zyLQHhiff0<_n~%q(SGaql~JDEI5_K8%=*gj(~wua8X%G4{!b{P?5c!Xj~jg`AnGU> z8638yPk^xdz}G-+`_M|Fw~UJ9&(KOyw5~#5K-xZBdfL@;+s{0>{9&kkR>7kD$;7SS z*>~eRZ&Q!{8{g^I;LzK!RTFgoCpGEDHMty%hmqm6&;6vD)LyV*r_1;6)>XE3LJ4sq#G!Dpat+o;W415N1{Oz)B`=B=%F4LnWsuG zkd#G5duK$6ict|>m%$1AVbCj-cIcQPX)v-12iSNO$efHa_FmG3=)lo^L62d)5wVxT1rgCEQ}MfcWxbWLwaa=h z<0tiDwAtkCfndsriasbvFqM8f+ZdY&elWe&E-Rq4>BS~SL?uQ7`JTWxcFNuZgZ? z^rD%vHn}K$1duyXdl9{iixh1lqmP&=vE8Pi``Gm&6tf#xB&?`|JoW=pdj100^n+u^ zeo*|o3(ptd|G}|KG|e+Wc}}wwT|?89kw#XMXksAkt(IaaqmE+rXx+u2feW$>1B{`L zr&yY!Yth;0JgW^|&j<|dHXbvo?liYgvY77>I~6@pT5u zLYu6##2DyW9Y+hiF<`2u>p2rVk)lj(3`esDg|gUbLzR_gYzCI%^hlFr&`ZEg;GY@2 zEQ=n^T3877F`D!OBg1#l+8KgL2v(Z}orM-G##*D;Dl$e&q&Yi9Gftq~Hi)#Dra8)J zL6z(BKPtr4jZw8elv7`-k9 z2qK)GCTrnp^btS^Z)Pb!g-Xa`^)p6PVn*~tJNihbma!OW}0li{9MYXf2?O6P@fi^%D*l00;+5t`L={lO>DFZ9H9Te4|LpvNREa-Jv zu8X5goP}XUgNfp70>zr?6=p`L5g1c7dJ|Lxv@b@pRY0w71&men$~?!gMouw{Eh1`y zsE`@H7JUzmO4!8GHlz(Q{(9Q#wKA-kGH^8Qj zP?(^-+Q?fC=o@qfmW7Y3W}t*vriMZd3JM1j9HH&A4s;Ohs7LPwl|uuU&yrIZQ9eM)v zF{t$53#!q_!Ukb`evQ53*dO27omjdM>`w;8Xh?b!*$r*MMmg{+DUME0bZyNoj12Z)_{G_0r_SG> z;Fta=7!*U%9?!D2|8cHmm535?Km)@}U>!K$t_ssFw__Y7q!}YSx2pi8iVzXL8Zeb| zp%`Wp&(*br!}&-xSiKPd@a7uB;avCsFP?R>gtiC&0&WH~bzQ|I)VE)!KG6N-x`R}y zi%TP12W-r!DjV_c#LkvEm_j2WL(PzXeM(i@Pfj!OY?={o^Qvj0LP zm%bxb<>93z`_gx={|p`axhSD7IU-i@9E*e>)kPfgb8Ju#hC+5#Fsl}Fq!|@71UM9O z-j!$-H84r51sBBS=Upo?B@IAL*M+kyHP>|%13U&uXp?zw0M798=!{leH@WteNFPRG z12c?)C{l-w=9m@&Au$!CK1we9_-XZI=S%3&DYF3y|7$!gf|5EoZF#R{y%-;9zEyvZfn zYV=jTXuFJ&ACfPS_u7hfUM7tlQ&+BN7N#q4wV8rh2O`2sl# z_Xs(x%lKv!xKH^M@c>}KY{c?J!-jXH>|2Ms`+j%mqEwx3TF=#vOB}M2T?OXks?H2OE_CDB? z;d6-r^m{;9OpZ<6i_PFh)Npce82D1v?h=^>>dbC9>0v?(J0DFr7utfEip$=cn@_8V z{j@%9h0L0k58aY7NPi6&h`hB5!NjTZT9ZZCnonK?|)`u z;+gxC_ijl%+9R&C2ySCy*vQ%H#gAT;75YQk;%g2>(TxKBbXXYZCvrIf<-re zMu>MRt~*!3A$V47+NE^Hg);`5?fNgt}}kafF1h|RQoj=nYH z*TK&18PusgfSSVgMqXG9b#^CkHFwUUYF@V;RkM%JfhRA!Psn-q;DEtgvj_b;g=OYg zZ79=_zV#YKa5-al1?9#pG@UmhmAt?PURAn?ETdXOq!L6a;qYD+&vSNyZw~dSN)x^z zs?f>Ib8&;yfs_VIa4bL@jZQfv$-Mz5&e$3A4^B@zGGFc~ez!Y8CDy{m zb8#}*ofw!uKaqKMwZU0usbvIo3uBeh+0@=NxV5P>?#xG0{y1-p#QZd>()nZ}Zg4p2 zjY2KbvK#V;RB4vLxwjBG4<=uxyU=7jHTDbYQ7WMS4xE=u|tpI)-B3Fya z6&&T#UluB{5);Q(j!+Md?dzACL*oY$`!@=k4m~kG^YXEwdU5{r(85bwuQQ{kcXyK~ zQ%C1goNsFvMBxpN9G~eNI`;BRY-ce3caLs;XLW>=Dx3)yh3Z!UFW#$)0cCJ+N;^#%a?xhLV5RbF8kTbxi%9-6fFkZ!WRExJ6?uh zd8sCU#fts<32w13(Tn!?!!nPS6^{JASRP$kv7rdP= zbM-q8Vu%01oxJcW$Bfp^Z2^ycHLwUC{T%8G9^)?_d*q~sqw$2Wxb`#B0`5f~*b7ki z!@xYAt>Rx@J9zZi!dbZVi%;>wMMKSru4mv9j?bGOISD6i5ngSSJfG9D5&rrir=vuHpL~pT* zVS6d4BBCL~+r_9zDx|20=y}Rb!O9{TB_~e3G+ryD>x`0Tg<(8*dh+Pjv6oM6)=`5aXW60%q%>`u%&lOytK6-h{cQNz) zLfWxbG$JESavPcSi5JJW?oTf~pJ7FI1XcV{dZgFK7|3eYNYMe8Uo1L{PSNiQARCB9 zW*+&<2s#t)vY);#MnXQ5OQji64f$c^+6*$@LPJx2u)5GM`KV*%jFWoZT{IngQ+Cyv zJb`R!cI>(05jXjv7Qcz-$QqGd6e3m;-AJ~yjOcIyf|n(%*TxG#Bf}LIgIvVm2Lel< z7RA|vr3;-TX^L!XA=|1^$u@*bA)N}&$pLKJ)gV(iKwiZY&$(XEZ6&0h2V*&975a^X zPaAkG6{M@=IKXVJg+UETgOyn+M#F0kw z9e03JZ0HA>8`s~E0!u%Y0_VuLZSu3le-5~duQ$F+9;BWx{w%Pf_)Y0ua)EkN8Wz!| zjRE&ZhMIu;S^>JU9|!i3p1^qH1u|58-5ogh?zM5WGz1B= z?hX|4{s9=u{at|GthvFpkrs!d#ic-@Kyhc$0*e)AaSAN%4hxH0 zaV_q}inF-87I!c1?heO4m&;vpzZa9w%#+NE$w;2D@6&Q0008SS$DF<)jB|#AzRsdj6V< zl-FCH?_bhezbN^V?W{0C^XOUBOmh(N6KzDYFd8%CUmL9}{XTj87`g1{=A;u&$I`8j zRz*|7Sw6o&%)+9RguFs zrLc9R#{hckKqL3W?_Z2D1%XHXca`>>gD`S~Q}ubt#O<$NjcI;)%M4_7 zwy?lW8Z-+97u^~ysMZ?`u5|opTjw;_HSIwX@gwLT;2~t>>v?Ui^AQD)cExzP0HnK* z=cZ0OQ%xsdMW}2m|5TpHwPA`?s6V3@(|^FBnZ-#9&FFEZZsz&(N!_@FO0rAW*F2Hy zz{EiAt8qPY^;G^9s>nlx9v_DOnWf^4rJa=3znkd( zE$F?D_?6uP9nEVihkuyLtin{Yl2+Xws5|mwbXAZEEr1PbE7}JucKD z+4lo*m`3O~9P2M+_CHA3+LICct4>&qF|m!_O$(4x-EgT@`8n;cSY?>NkqiIK%+3Hwb6~q4E)2jLAMvC$S{)d0&20rT5!-v?%m@?PNtIR zf#AS}-0Pyu+$54w^$;`kq_=Hhylp_t6hzCxGM!v}GeR(Sbrti=&nda0_O+0?Y}i6H z+d)~X<~Qsdhq}FdtCv>kXT$=iq!vCFNe2Qei{&w(B{fFvSE`o&SmheyAx4S;D<6*w zhL7^8)!yGb={y!4ud)El<{XemnxJ}5P#(dnVNX}nG^g%NuT?riy(D@Cm@2T@%w2eJAN0+!o=8YzXgX6FM_ZapqwcwZ|Frpjtq320Y}p zlqS7?%plOMZ80kg)_s5hVcEBzEzjQ@5S5D8k9Mb-I~>oMSzm5VJ$Al7volJK&9m1U z+t!`5=LSITCry^FnY1N-Ehnl9BJpvVx24Me7B8E-F|r!$X6At!qojG=cMn0LyO=!) zqTkoT**eHOViT({wCKKt%UM)46v_uL)WQS>$iavcUNw6Qzm|{A83(zokeSN<98CA$ zfDZ?S5yks6{+P%-NvhgZdf|mfg)jbuMq}3$jI3GjOj zaMR-?9uQ4$c2mxwjMPUI<>IhA3etN!Q`_-u@iS@2yvps>_j(BpKfgZ`JKXA|0R&^< zHuVzOfEjYT&9{hC2{H;iIH!De|E1(;j}WHqBt1hQYKXJ{PP_h9NE?Mw^MK zBg?7s#$rXz!9lNO<5kVo9OF$@*5%qWCo9ru3G^&hdhf~<8lymh3Uf23S{W38rO6}O zPdFQ>mBlwur8}?D}m8J$>Lzn;i-=9fsOg;}&9E$<&g0GuWcT2wgPC}D!uIb+_ zn|B^xQKTraOnD9Ku#Npm(A{Z*p&S=$%o#lo(3(o3s5tXL={3|}Vg~a2UDp_(BP|6q zqJ9h{_g%haxaG1&W>MpW4)*58^BQ1CJn4^sE4ZH;%76nHtdiOt^M zSCxJwz(Bs;Ix#gG2>BpTDXApytuSGf1X->h!4)4yRQEdI<`$ku4F-27U76^LTprUO zO96Ur^8=ti5q9AJ1|Z9=VSd^jpeK)&4tWHO+EhF{3C8TMFkRa-FN^yaF^m3FJlQSw zF+Z#B^*9zb*@^WF^Q_?C&>jSS+w3ATmA|s=+jsqH=xy8zMyon1L|agF=txBg${Yv6 z=eeAIF?1AuE~&80@CG1K6w(Tuz2rlI|E zHwP<>5XKt1jR_R0IzvNiW>H<2!($zp+*#S3nE8>K->FJ8(yzg?IvAJaL`BYsuf;P{ zdb}--YBmbGHVOvem8(S{om$Pg`Nd#Ho8pKYXuQqSAgDn8?Uwsejk1EXS=}T;uch~I z+e<-pmKm|~o3k@4=$37_*TajI{?bk7$ zAayiGCNCZmlBcVW6DPMqH@L+m)0=+JpG7GA`sY}{$qnK2@=wumwkv-u+Xpgd8>;IK ze*GZWRXZNAxm3sL|#U!1lyW2oSqN^35KT)dOUK21Xq&iS6oF@|dW@0=Pi@iC!|BabKGXXnP*u<=X%82PD#Zvu@O8 z6?9;!Tw6w+YhuiTdC*>ED`pdB9-Q(Um`?|s%S8;95!~^U+es|G{$l`>+zPRd&+VrV zG{qw3h$3H2E-qcne`T0`#Op@&arC4TvVW3r@LYein3``BXWZQpG?Ho0pJ#6{Q^CLr zj;n69?aV^^Y^q9e5O90j68$oOaj(q*4F54vKPnG(h6SZrx(Ozy%DK4#^ORoqa>(~D zUt&A0&|%IUK>pl8cJ4pcGtap`EgHmtD|4=xsG)sCddt_B)6?gPXq4Yv!W#mh&`;p7 zd3es@;TEJR{j4y#c-%Gs z*>#r=IPu5AqUA7i;dp4)DRd~oLYq!sw7c-ftmh+-)#t_m%!?3}f!y9E!7P+C5W#iB zYtWFzgsRn=vGD!4ng-;ltt}Mw;w=Uql4|J0OQ;@RwOKn)>|J-zxrPcL3OKWp64K6l z%-$#ule)ng9UN?ingMlJ+^&&T-=6K=wyvD!h{UCM83#x-stCgt6p%SD0|t>#w2VFm zKPg5loXXuIA&SRKou)uH%6$Q~x0;RxOANriW^uPGAUXbai2UIWHTvT$`JhD9ScTmQ zF}craYsTv93x{H3!6l=#73urH?nT@k6E2jKs0pgAYaR=VK>%Yzk~WtcN^w07E_9=t zjPLWC3c2{q3<4QjT>;UZNL2|u#sjzp5Yt1j^N!9DU`kCHtb{}VQ-O4wFd@;t+h)+< zD-~yqbYM;z4Xzr7d-zu^2}~V%$yr!rl8uVQ&bF*RWnbNNMsMn{AE0ZlKHx-*rN_${+HxJe+-SFpz}gL~vvP+h^u&4}TAnP`m7hQH`#ZT)??Hc?Ux3R(FeTU0a=0 zN4OJZ{$hf{!t#2hi$E0YOU!CKKE5tA!(q`w$r&f6W3X52m%2Bnn)Uz%RVdL&3vn`e z)s?II>yWYn&gw3|a~3h=X9&_*k#ZozkE^CV{K>W}qpO~*aq>?kwZyGHxuiGqrM&kZ zopsuv&ZnSt&{1l>n#M#MM6ey57@wyM#4kL7Ky6p+NaZP4pQ){@?Zc@**HvqD^^ITH zpM@$Tj)oSKp#6BQW`!JWxxMdeN)e=N&KQwEm)q;&bHFKoPJ2ryM#hDFM zJd$dE`To*L=u!2SU_p_&k4kJx;QbWG>L&0+uM~Zw_Knm6Zi@Hf^U48Q9)xwI@i z3D0b2EY|S12RtkR>!_{I;z#FKystRN9$9#~o3Ub)h2-U_%3LA>ZMZA@xgVTQouUL@ zn%=qjx_}~TT3>eMsw?H?BP0Hv!`5({rj@Jm;iSF-J;Mg1YSiIWJ=r8-XmVK;XHBrH zT0%z$wJ#oLs=R|EY-blwl0Vpp;HqDUk52zFexJYFi zksHZPI+F^E(%SrX_z?nAv-ItamupLAbabQmSl?e47R^kcl|&oq+*lm6`t#xk-jrHj zQa_*5D-!rzx3VfJGDIYRF%uh~y2g7_+S9XMhdA+8N-`4yfU_`vPkQrs*6%A`-52xj zMVg&O&E*lXyCBiL--fWja5tI|X;`@Ln~uP_tn&^Pj6^fUpBU*Z>JuojG|%sQn#Aau zCOdANF8=4)C6c8>T4M6~`ws<3sy$LK9h<9-EKOB=GN9*8mU#2x&^R7`C3-+o*rx+E z^JQCHOtSl&gwl^)C*#TacesR({Qe`qQRuT?#Zz4g+P8IAd1|`l`vNx2Ms+Y{>uJ_t z=*B>5Su%UP&9PN>^Zf=yOAPEphKk>WUNG%(X2t>(z`}qtJ`e z>qBJP>0$wUtxI+*FwxxH!b&zu!DagAyeu&T3H{(Js$FW}fJKEd7V5 zNb;kziQhWq^#i|WM$#n^Hc8}zeW$s8(Y7Z|&Z?|_3x{ujcR7>4P^CTJihmWu*Y}|D zT2GmBNMiDSNI|#o+~|P2M_48+(|z5U_d_(waY(YT9?NO`1hg)$#wY&;h?{IJU17RE zoaB~kXD<8Nzq!ssDB%Jt>WS0+DI?8eu8c;k`{{Tfs#BQSp3oNIRS^IeMrG$o$wR)w=L|+zfJC|cCh5yR(z%~)RW@dD1>hlv+8)mCM#=L%dH46g%#wD^ z?6t~id9Z(muwvf}DWzVDb!=k?73QN|$MF zZb`fX5e+B(`}WG4KIrKv^D*1`bi--M%`dgdfdbV12l{dJZ|_Yu7VLcsBJ7Cjm4uK^ zfWGkLA&}AFZ#rn3gldS}-fBImQpP2D1npF<##S2Ll38)V!dN|*{>N~HC%=$~H|^!d zIVNdTdourRx>?z7k=!g#^90ybtsT|ZAnPzwn5b5ErF`xC+19t)Zl}6Q-*NTeYo5@^ZqugE_ zz0kTgh-V*x@m>J4b7XJNZz*}Kzf;J7Vh>cCXhtVx$!ncuBo5b=^Noqgl~$oxC=D2fpA-O=q2^I z3JU5JuGq}I_5r1|rQ@wOWa+7Cdq$-Sj0V}xV@^DU3G91G-r_n3x~|nzmeW30iYztJ zv(NB0B~JX`%eOV<#*28m$=2z{g|r_lhhD*|4OVO`U%{vLg=jEnx&18BumC8%Q6zL} zyRQp81I#9nC9ERlMq+g$5>y96U?l*HagK)ot&hz~q+Qr{E5X%|gvugTaQW{Y8B)>K zzR>+$o0~@^>kNeBZ45XsJsuH271oKhrd(y>UU9Y+6<{aHPmVW0iAApzlwqGxZqXB@ zt9>B#8LPWew!owO@i5?l`_$L_o*{-VTE?$>;)=;zrkO}@!^gyHPV3lSw5$L9#rEIh zB0~sy=(-8kOV5mzKai8J1-X^ zv6y3Gmcve4VLl#fN)*9Ewt!KLf}C6l5zaE3IbuW@B*N1Ly2D?E;Q0PLMux z!xD0VgNZCtw;3Q61`BvO<9R=q15k-Fr^vI&K>vdRd_J?ViptAC03R03G0 z<8J&CBsaK4T~)p1arem8Lws>S)%7=iS=4tH+S~mKAJupiSPaLz$jXpjkYv~B1NiKFS(v{ z%64P-qw5#d+GJ*~+>D#8Uq$Lr3Fmv4F(Hmt9$5;nW-Sxz6flNxQ0F;q-sr)v{GL*} zv6amo_c!|VQBhx(=f~{%0Ip}vZJ#Y1VfX9!_&}QT{Ey<0!0XSaXM@JM`pM*1S4bJ7 z1{G3gXTb8{6U&F^BAZY|GmaEaWZb2KQS>OUKt;1raex;mK2xNx&%-pG#mLk1Tf29yNaBjTsxDdn_tJ{mEx z3atn|Kk!l*px^OJ>V}lQi1Bv=lC+vQeK$~X-r0*bO1Lw{fd}l)Gac7hJvUa-3^=5| zpFbhIM*x@AQBV(fA@o*Z-gm#xB;69C6Yg&V?d)>ia4(3`uJ|yWB0WNY&l;n@0*;1# z0v-V0r}Q@5B`9b24t1wA%ZzFtp+(&ySDwaJE9h3o1RU)e`tI18c8DDzqkI_=B_kvE zKRVCTNm3LcRx>xbf-aea8F;HeQ=2bV+kf5Ddx=Zy95LUYdKG#x5*{`$Lt94EYtXBc zcE1p6-@XN+*ho5QOLD@O`?GjHylU>*{V>eeCFRDNQIFc)igg1Cl(vVG4GS;e@|`fY zf|f#CRF{S_>@{L;nO7+>U!|%4cRv}7Q{$1atFfoD{{zb!Xm>dWEJV0t4Y8{e^6=JC z9?>0{keQMp^Xc)OI_Pb-b#8V$1@i{G5oZyta(HvTSRi~uVD`86rw{ZDR6r#}8N>0W zuM(?~h>#hUx6ZmlI+w!r#=WJTld*|gk9CO;j{#8IQHdz}$*m`X!{bs^qB-KL!Y`<| z?HGv}U)6U1F#KUwX)Y-LO_BTWxA(W_wBVq=cafZ_WT{B0IH~DwLVWm-8PFhec%1Vandn0Jy=$Kgdda!C*_^TcfcQuHI z`^lx_#p3qJHu>iBSYhXG0_D$D{C33`a(H2QC<3~_rhii4Vvt_Aeb_vH(MNuoFs2)Y zbkK4eB>0X2)jITh=xbb8oNK;uURd4_8C7X?8J*b71Q-=3wUt7h{Fr`euDkxLr=j@7?#+Q#?{iVmBz^s3X7n`l*=PAuW*|am=X*$k*B2~j z{rim!Gin6w19`Eq_n@BAgF78mI9M;_2tg0K{+&q#ZKG)nFj%rq=F}n50DKJrKzW2l_Ktk}m zdJhOA>N_)saK$bBW|-(P|Hj3iN-|>Lx?}LpiG$FI^TQ}82BcOev<_%h{^N@ zTle%?cNJLo?Mz>po9`1Dqt_WT)tQpknE>j{kX?=GfmNK%l}ybr0JM@G3gdmOWPOB* zAlp+RJFxw<|B_2IVi>V*AGIbO1^z1KgwgLv*6)O{$rl^Xm!is-FvXX_$rpc~-n)?A z-I(5guiFu%+td5qfI2>T7@x(EF^MB`s3D!HA+Dq$)v6)!upyJQAvUccMW-QQsUZW< z5Z~O825m@sY{)`}#QcOLOF@41L(=IXafOgnGf3htB$E&lyWi3?)Y4Vb(s$U>nby*~ z)Y9ENye9N-7g2bNMtBELc$-sr7rkwZscna}Z5zr`{8A)0%x-? zia6QbddW`cio7LjVIC=Me%h3$K8V@IU(W z0|jaOrcEif|A9u^^0dR9rvJdlrXbrKoxT6UL1I(BZIRA@AYW%+y(z)=KTvC1rgJ#k z^dGo!hBgVU^gZ@Hn$EUDNp87LES9Gl3LO+TGy8-h|BvCIuBptnWa&RpxU}!ulwte- zz>D|B3$;zE^Y+Uf#rxGzl6>1~mLR~(@YfP?#AjzE}8 diff --git a/docs/assets/less/font-awesome.less b/docs/assets/less/font-awesome.less index c9aa54f98..6ee21c8b1 100644 --- a/docs/assets/less/font-awesome.less +++ b/docs/assets/less/font-awesome.less @@ -52,8 +52,8 @@ a [class*=" icon-"] { /* makes the font 33% larger relative to the icon container */ .icon-large:before { - vertical-align: middle; - font-size: 4/3em; +// vertical-align: middle; + font-size: 1.25em; } .btn, .nav-tabs { diff --git a/docs/assets/less/mixins.less b/docs/assets/less/mixins.less index 0ce1f6d0b..c05f858d1 100644 --- a/docs/assets/less/mixins.less +++ b/docs/assets/less/mixins.less @@ -35,7 +35,7 @@ } } -.icon-size (@size: 12px, @width-multiplier: .9, @height-multiplier: .95) { +.icon-size (@size: 12px, @width-multiplier: .9, @height-multiplier: 1) { i { font-size: @size; } line-height: @size; height: @size * @height-multiplier; diff --git a/docs/assets/less/site.less b/docs/assets/less/site.less index 60c2e3ab3..64c9a4be5 100644 --- a/docs/assets/less/site.less +++ b/docs/assets/less/site.less @@ -1,4 +1,4 @@ -@import "twbs-203/bootstrap.less"; +@import "twbs-222/bootstrap.less"; @import "mixins.less"; @import "variables.less"; @@ -6,16 +6,18 @@ @import "font-awesome.less"; // These accomodate navbar-fixed-top -#overview { padding-top: 60px; } -#new-icons, #all-icons, #examples, #integration, #code, #roadmap { - padding-top: 40px; -} +//#overview { padding-top: 60px; } +//#new-icons, #all-icons, #examples, #integration, #code, #roadmap { +// padding-top: 40px; +//} .navbar .brand { - padding: 11px 20px 9px; +// padding: 11px 20px 9px; color: @white; + font-family: @serifFontFamily; } -.navbar-inner { .border-radius(0); } + +//.navbar-inner { .border-radius(0); } .navbar .nav > li > a { padding: 12px 10px 9px; } @@ -25,23 +27,24 @@ h1, h2, h3, h4, h5, h6 { font-family: @serifFontFamily; } a { color: @white; } @size: 275px; float: right; - width: @size * .9 + 20; - height: @size * .75; + width: @size * 1.08; + height: @size; +// border: solid 1px white; margin-right: 10px; - margin-top: -20px; +// margin-top: -20px; font-size: @size; text-align: center; text-shadow: 2px 2px 3px @grayDarker; .carousel-control { - top: @size + 5; + top: @size + 33; .square(23px); border-width: 3px; font-size: 17px; - line-height: 28px; - left: @size / 3 + 9; + line-height: 22px; + left: @size / 2 - 23; &.right { left: auto; - right: @size / 3 + 9; + right: @size / 2 - 23; } } } @@ -58,13 +61,14 @@ h1, h2, h3, h4, h5, h6 { font-family: @serifFontFamily; } .hero-unit { margin-bottom: 20px; - .border-radius(20px); + padding-top: 80px; + .border-radius(0); // #gradient > .radial( lighten(@red, 10%), @red); background-color: @red; &, h1 { color: @white; } h1 { font-size: 70px; - letter-spacing: -1px; + letter-spacing: -2px; line-height: 1.2; } p { @@ -86,40 +90,38 @@ h1, h2, h3, h4, h5, h6 { font-family: @serifFontFamily; } text-shadow: 1px 1px 1px @grayDark; } } - a { color: #fffeb8; } +// a { color: #fffeb8; } .btn-large { - .buttonBackground(@white, #bbb); +// .buttonBackground(@white, #bbb); font-family: @serifFontFamily; - color: @grayDark; +// color: @grayDark; margin-top: 15px; font-weight: bold; font-size: 18px; padding: 13px 22px; - padding-left: 24px + 44; + padding-left: 24px + 40; margin-right: 10px; .border-radius(6px); position: relative; text-align: left; i { position: absolute; -// top: 13px; - left: 22px; + top: 8px; + left: 15px; font-size: 46px; } &.btn-github { - padding-left: 30px + 44; + padding-left: 24px + 42; } } .hero-content { - width: 500px; + width: 650px; text-align: center; } } -.btn-primary, .hero-unit .btn-primary { - .buttonBackground(#fffeb8, #c49c38); - *background-color: #e7d785; +.btn-primary { color: @grayDark; text-shadow: 0 -1px 0 rgba(255,255,255,.25); &:hover { @@ -154,24 +156,25 @@ h1, h2, h3, h4, h5, h6 { font-family: @serifFontFamily; } margin-left: 0; li { cursor: pointer; - line-height: 42px; - height: 42px; + line-height: 32px; + height: 32px; padding-left: 12px; - .border-radius(12px); + .border-radius(6px); +// vertical-align: middle; [class^="icon-"], [class*=" icon-"] { width: 32px; - font-size: 16px; + font-size: 14px; } &:hover { background-color: lighten(@errorBackground, 6%); - [class^="icon-"], [class*=" icon-"] { *font-size: 24px; *vertical-align: middle; } + [class^="icon-"], [class*=" icon-"] { *font-size: 28px; *vertical-align: middle; } [class^="icon-"]:before, [class*=" icon-"]:before { - font-size: 24px; - vertical-align: middle; + font-size: 28px; + vertical-align: -5px; } } } @@ -254,28 +257,28 @@ h1, h2, h3, h4, h5, h6 { font-family: @serifFontFamily; } div { margin-bottom: 5px; } } .icon6 { - width: 325px; - > div.thumbnail > div { .icon-size(340px); } + width: 330px; + > div.thumbnail > div { .icon-size(280px); } } .icon5 { - width: 185px; - > div.thumbnail > div { .icon-size(180px); } + width: 180px; + > div.thumbnail > div { .icon-size(140px); } } .icon4 { width: 215px; - > div.thumbnail > div { .icon-size(100px); } + > div.thumbnail > div { .icon-size(112px); } } .icon3 { width: 120px; - > div.thumbnail > div { .icon-size(50px); } + > div.thumbnail > div { .icon-size(56px); } } .icon2 { width: 75px; - > div.thumbnail > div { .icon-size(20px); } + > div.thumbnail > div { .icon-size(28px); } } .icon1 { width: 60px; - > div.thumbnail > div { .icon-size(12px); } + > div.thumbnail > div { .icon-size(14px); } } } } diff --git a/docs/assets/less/twbs-222/accordion.less b/docs/assets/less/twbs-222/accordion.less new file mode 100755 index 000000000..d63523bc8 --- /dev/null +++ b/docs/assets/less/twbs-222/accordion.less @@ -0,0 +1,34 @@ +// +// Accordion +// -------------------------------------------------- + + +// Parent container +.accordion { + margin-bottom: @baseLineHeight; +} + +// Group == heading + body +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + .border-radius(@baseBorderRadius); +} +.accordion-heading { + border-bottom: 0; +} +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} + +// General toggle styles +.accordion-toggle { + cursor: pointer; +} + +// Inner needs the styles because you can't animate properly with any styles on the element +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} diff --git a/docs/assets/less/twbs-222/alerts.less b/docs/assets/less/twbs-222/alerts.less new file mode 100755 index 000000000..0116b191b --- /dev/null +++ b/docs/assets/less/twbs-222/alerts.less @@ -0,0 +1,79 @@ +// +// Alerts +// -------------------------------------------------- + + +// Base styles +// ------------------------- + +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: @baseLineHeight; + text-shadow: 0 1px 0 rgba(255,255,255,.5); + background-color: @warningBackground; + border: 1px solid @warningBorder; + .border-radius(@baseBorderRadius); +} +.alert, +.alert h4 { + // Specified for the h4 to prevent conflicts of changing @headingsColor + color: @warningText; +} +.alert h4 { + margin: 0; +} + +// Adjust close link position +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: @baseLineHeight; +} + + +// Alternate styles +// ------------------------- + +.alert-success { + background-color: @successBackground; + border-color: @successBorder; + color: @successText; +} +.alert-success h4 { + color: @successText; +} +.alert-danger, +.alert-error { + background-color: @errorBackground; + border-color: @errorBorder; + color: @errorText; +} +.alert-danger h4, +.alert-error h4 { + color: @errorText; +} +.alert-info { + background-color: @infoBackground; + border-color: @infoBorder; + color: @infoText; +} +.alert-info h4 { + color: @infoText; +} + + +// Block alerts +// ------------------------- + +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} +.alert-block p + p { + margin-top: 5px; +} diff --git a/docs/assets/less/twbs-222/bootstrap.less b/docs/assets/less/twbs-222/bootstrap.less new file mode 100755 index 000000000..782b94ca0 --- /dev/null +++ b/docs/assets/less/twbs-222/bootstrap.less @@ -0,0 +1,63 @@ +/*! + * Bootstrap v2.2.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +// CSS Reset +@import "reset.less"; + +// Core variables and mixins +@import "variables.less"; // Modify this for custom colors, font-sizes, etc +@import "mixins.less"; + +// Grid system and page structure +@import "scaffolding.less"; +@import "grid.less"; +@import "layouts.less"; + +// Base CSS +@import "type.less"; +@import "code.less"; +@import "forms.less"; +@import "tables.less"; + +// Components: common +//@import "sprites.less"; +@import "dropdowns.less"; +@import "wells.less"; +@import "component-animations.less"; +@import "close.less"; + +// Components: Buttons & Alerts +@import "buttons.less"; +@import "button-groups.less"; +@import "alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less + +// Components: Nav +@import "navs.less"; +@import "navbar.less"; +@import "breadcrumbs.less"; +@import "pagination.less"; +@import "pager.less"; + +// Components: Popovers +@import "modals.less"; +@import "tooltip.less"; +@import "popovers.less"; + +// Components: Misc +@import "thumbnails.less"; +@import "media.less"; +@import "labels-badges.less"; +@import "progress-bars.less"; +@import "accordion.less"; +@import "carousel.less"; +@import "hero-unit.less"; + +// Utility classes +@import "utilities.less"; // Has to be last to override when necessary diff --git a/docs/assets/less/twbs-222/breadcrumbs.less b/docs/assets/less/twbs-222/breadcrumbs.less new file mode 100755 index 000000000..f753df6be --- /dev/null +++ b/docs/assets/less/twbs-222/breadcrumbs.less @@ -0,0 +1,24 @@ +// +// Breadcrumbs +// -------------------------------------------------- + + +.breadcrumb { + padding: 8px 15px; + margin: 0 0 @baseLineHeight; + list-style: none; + background-color: #f5f5f5; + .border-radius(@baseBorderRadius); + > li { + display: inline-block; + .ie7-inline-block(); + text-shadow: 0 1px 0 @white; + > .divider { + padding: 0 5px; + color: #ccc; + } + } + > .active { + color: @grayLight; + } +} diff --git a/docs/assets/less/twbs-222/button-groups.less b/docs/assets/less/twbs-222/button-groups.less new file mode 100755 index 000000000..d6054c808 --- /dev/null +++ b/docs/assets/less/twbs-222/button-groups.less @@ -0,0 +1,227 @@ +// +// Button groups +// -------------------------------------------------- + + +// Make the div behave like a button +.btn-group { + position: relative; + display: inline-block; + .ie7-inline-block(); + font-size: 0; // remove as part 1 of font-size inline-block hack + vertical-align: middle; // match .btn alignment given font-size hack above + white-space: nowrap; // prevent buttons from wrapping when in tight spaces (e.g., the table on the tests page) + .ie7-restore-left-whitespace(); +} + +// Space out series of button groups +.btn-group + .btn-group { + margin-left: 5px; +} + +// Optional: Group multiple button groups together for a toolbar +.btn-toolbar { + font-size: 0; // Hack to remove whitespace that results from using inline-block + margin-top: @baseLineHeight / 2; + margin-bottom: @baseLineHeight / 2; + > .btn + .btn, + > .btn-group + .btn, + > .btn + .btn-group { + margin-left: 5px; + } +} + +// Float them, remove border radius, then re-add to first and last elements +.btn-group > .btn { + position: relative; + .border-radius(0); +} +.btn-group > .btn + .btn { + margin-left: -1px; +} +.btn-group > .btn, +.btn-group > .dropdown-menu, +.btn-group > .popover { + font-size: @baseFontSize; // redeclare as part 2 of font-size inline-block hack +} + +// Reset fonts for other sizes +.btn-group > .btn-mini { + font-size: @fontSizeMini; +} +.btn-group > .btn-small { + font-size: @fontSizeSmall; +} +.btn-group > .btn-large { + font-size: @fontSizeLarge; +} + +// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match +.btn-group > .btn:first-child { + margin-left: 0; + .border-top-left-radius(@baseBorderRadius); + .border-bottom-left-radius(@baseBorderRadius); +} +// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + .border-top-right-radius(@baseBorderRadius); + .border-bottom-right-radius(@baseBorderRadius); +} +// Reset corners for large buttons +.btn-group > .btn.large:first-child { + margin-left: 0; + .border-top-left-radius(@borderRadiusLarge); + .border-bottom-left-radius(@borderRadiusLarge); +} +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + .border-top-right-radius(@borderRadiusLarge); + .border-bottom-right-radius(@borderRadiusLarge); +} + +// On hover/focus/active, bring the proper btn to front +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index: 2; +} + +// On active and open, don't show outline +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + + + +// Split button dropdowns +// ---------------------- + +// Give the line between buttons some depth +.btn-group > .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; + .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: 5px; + *padding-bottom: 5px; +} +.btn-group > .btn-mini + .dropdown-toggle { + padding-left: 5px; + padding-right: 5px; + *padding-top: 2px; + *padding-bottom: 2px; +} +.btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; + *padding-bottom: 4px; +} +.btn-group > .btn-large + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px; + *padding-top: 7px; + *padding-bottom: 7px; +} + +.btn-group.open { + + // The clickable button for toggling the menu + // Remove the gradient and set the same inset shadow as the :active state + .dropdown-toggle { + background-image: none; + .box-shadow(~"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)"); + } + + // Keep the hover's background when dropdown is open + .btn.dropdown-toggle { + background-color: @btnBackgroundHighlight; + } + .btn-primary.dropdown-toggle { + background-color: @btnPrimaryBackgroundHighlight; + } + .btn-warning.dropdown-toggle { + background-color: @btnWarningBackgroundHighlight; + } + .btn-danger.dropdown-toggle { + background-color: @btnDangerBackgroundHighlight; + } + .btn-success.dropdown-toggle { + background-color: @btnSuccessBackgroundHighlight; + } + .btn-info.dropdown-toggle { + background-color: @btnInfoBackgroundHighlight; + } + .btn-inverse.dropdown-toggle { + background-color: @btnInverseBackgroundHighlight; + } +} + + +// Reposition the caret +.btn .caret { + margin-top: 8px; + margin-left: 0; +} +// Carets in other button sizes +.btn-mini .caret, +.btn-small .caret, +.btn-large .caret { + margin-top: 6px; +} +.btn-large .caret { + border-left-width: 5px; + border-right-width: 5px; + border-top-width: 5px; +} +// Upside down carets for .dropup +.dropup .btn-large .caret { + border-bottom-width: 5px; +} + + + +// Account for other colors +.btn-primary, +.btn-warning, +.btn-danger, +.btn-info, +.btn-success, +.btn-inverse { + .caret { + border-top-color: @white; + border-bottom-color: @white; + } +} + + + +// Vertical button groups +// ---------------------- + +.btn-group-vertical { + display: inline-block; // makes buttons only take up the width they need + .ie7-inline-block(); +} +.btn-group-vertical > .btn { + display: block; + float: none; + max-width: 100%; + .border-radius(0); +} +.btn-group-vertical > .btn + .btn { + margin-left: 0; + margin-top: -1px; +} +.btn-group-vertical > .btn:first-child { + .border-radius(@baseBorderRadius @baseBorderRadius 0 0); +} +.btn-group-vertical > .btn:last-child { + .border-radius(0 0 @baseBorderRadius @baseBorderRadius); +} +.btn-group-vertical > .btn-large:first-child { + .border-radius(@borderRadiusLarge @borderRadiusLarge 0 0); +} +.btn-group-vertical > .btn-large:last-child { + .border-radius(0 0 @borderRadiusLarge @borderRadiusLarge); +} diff --git a/docs/assets/less/twbs-222/buttons.less b/docs/assets/less/twbs-222/buttons.less new file mode 100755 index 000000000..6f565b73c --- /dev/null +++ b/docs/assets/less/twbs-222/buttons.less @@ -0,0 +1,230 @@ +// +// Buttons +// -------------------------------------------------- + + +// Base styles +// -------------------------------------------------- + +// Core +.btn { + display: inline-block; + .ie7-inline-block(); + padding: 4px 12px; + margin-bottom: 0; // For input.btn + font-size: @baseFontSize; + line-height: @baseLineHeight; + text-align: center; + vertical-align: middle; + cursor: pointer; + .buttonBackground(@btnBackground, @btnBackgroundHighlight, @grayDark, 0 1px 1px rgba(255,255,255,.75)); + border: 1px solid @btnBorder; + *border: 0; // Remove the border to prevent IE7's black border on input:focus + border-bottom-color: darken(@btnBorder, 10%); + .border-radius(@baseBorderRadius); + .ie7-restore-left-whitespace(); // Give IE7 some love + .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)"); + + // Hover state + &:hover { + color: @grayDark; + text-decoration: none; + background-position: 0 -15px; + + // transition is only when going to hover, otherwise the background + // behind the gradient (there for IE<=9 fallback) gets mismatched + .transition(background-position .1s linear); + } + + // Focus state for keyboard and accessibility + &:focus { + .tab-focus(); + } + + // Active state + &.active, + &:active { + background-image: none; + outline: 0; + .box-shadow(~"inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05)"); + } + + // Disabled state + &.disabled, + &[disabled] { + cursor: default; + background-image: none; + .opacity(65); + .box-shadow(none); + } + +} + + + +// Button Sizes +// -------------------------------------------------- + +// Large +.btn-large { + padding: @paddingLarge; + font-size: @fontSizeLarge; + .border-radius(@borderRadiusLarge); +} +.btn-large [class^="icon-"], +.btn-large [class*=" icon-"] { + margin-top: 4px; +} + +// Small +.btn-small { + padding: @paddingSmall; + font-size: @fontSizeSmall; + .border-radius(@borderRadiusSmall); +} +.btn-small [class^="icon-"], +.btn-small [class*=" icon-"] { + margin-top: 0; +} +.btn-mini [class^="icon-"], +.btn-mini [class*=" icon-"] { + margin-top: -1px; +} + +// Mini +.btn-mini { + padding: @paddingMini; + font-size: @fontSizeMini; + .border-radius(@borderRadiusSmall); +} + + +// Block button +// ------------------------- + +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; + .box-sizing(border-box); +} + +// Vertically space out multiple block buttons +.btn-block + .btn-block { + margin-top: 5px; +} + +// Specificity overrides +input[type="submit"], +input[type="reset"], +input[type="button"] { + &.btn-block { + width: 100%; + } +} + + + +// Alternate buttons +// -------------------------------------------------- + +// Provide *some* extra contrast for those who can get it +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255,255,255,.75); +} + +// Set the backgrounds +// ------------------------- +.btn { + // reset here as of 2.0.3 due to Recess property order + border-color: #c5c5c5; + border-color: rgba(0,0,0,.15) rgba(0,0,0,.15) rgba(0,0,0,.25); +} +.btn-primary { + .buttonBackground(@btnPrimaryBackground, @btnPrimaryBackgroundHighlight); +} +// Warning appears are orange +.btn-warning { + .buttonBackground(@btnWarningBackground, @btnWarningBackgroundHighlight); +} +// Danger and error appear as red +.btn-danger { + .buttonBackground(@btnDangerBackground, @btnDangerBackgroundHighlight); +} +// Success appears as green +.btn-success { + .buttonBackground(@btnSuccessBackground, @btnSuccessBackgroundHighlight); +} +// Info appears as a neutral blue +.btn-info { + .buttonBackground(@btnInfoBackground, @btnInfoBackgroundHighlight); +} +// Inverse appears as dark gray +.btn-inverse { + .buttonBackground(@btnInverseBackground, @btnInverseBackgroundHighlight); +} + + +// Cross-browser Jank +// -------------------------------------------------- + +button.btn, +input[type="submit"].btn { + + // Firefox 3.6 only I believe + &::-moz-focus-inner { + padding: 0; + border: 0; + } + + // IE7 has some default padding on button controls + *padding-top: 3px; + *padding-bottom: 3px; + + &.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; + } + &.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; + } + &.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; + } +} + + +// Link buttons +// -------------------------------------------------- + +// Make a button look and behave like a link +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; + .box-shadow(none); +} +.btn-link { + border-color: transparent; + cursor: pointer; + color: @linkColor; + .border-radius(0); +} +.btn-link:hover { + color: @linkColorHover; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:hover { + color: @grayDark; + text-decoration: none; +} diff --git a/docs/assets/less/twbs-222/carousel.less b/docs/assets/less/twbs-222/carousel.less new file mode 100755 index 000000000..2dc050603 --- /dev/null +++ b/docs/assets/less/twbs-222/carousel.less @@ -0,0 +1,131 @@ +// +// Carousel +// -------------------------------------------------- + + +.carousel { + position: relative; + margin-bottom: @baseLineHeight; + line-height: 1; +} + +.carousel-inner { + overflow: hidden; + width: 100%; + position: relative; +} + +.carousel-inner { + + > .item { + display: none; + position: relative; + .transition(.6s ease-in-out left); + } + + // Account for jankitude on images + > .item > img { + display: block; + line-height: 1; + } + + > .active, + > .next, + > .prev { display: block; } + + > .active { + left: 0; + } + + > .next, + > .prev { + position: absolute; + top: 0; + width: 100%; + } + + > .next { + left: 100%; + } + > .prev { + left: -100%; + } + > .next.left, + > .prev.right { + left: 0; + } + + > .active.left { + left: -100%; + } + > .active.right { + left: 100%; + } + +} + +// Left/right controls for nav +// --------------------------- + +.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: @white; + text-align: center; + background: @grayDarker; + border: 3px solid @white; + .border-radius(23px); + .opacity(50); + + // we can't have this transition here + // because webkit cancels the carousel + // animation if you trip this while + // in the middle of another animation + // ;_; + // .transition(opacity .2s linear); + + // Reposition the right one + &.right { + left: auto; + right: 15px; + } + + // Hover state + &:hover { + color: @white; + text-decoration: none; + .opacity(90); + } +} + + +// Caption for text below images +// ----------------------------- + +.carousel-caption { + position: absolute; + left: 0; + right: 0; + bottom: 0; + padding: 15px; + background: @grayDark; + background: rgba(0,0,0,.75); +} +.carousel-caption h4, +.carousel-caption p { + color: @white; + line-height: @baseLineHeight; +} +.carousel-caption h4 { + margin: 0 0 5px; +} +.carousel-caption p { + margin-bottom: 0; +} diff --git a/docs/assets/less/twbs-222/close.less b/docs/assets/less/twbs-222/close.less new file mode 100755 index 000000000..c71a508f3 --- /dev/null +++ b/docs/assets/less/twbs-222/close.less @@ -0,0 +1,31 @@ +// +// Close icons +// -------------------------------------------------- + + +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: @baseLineHeight; + color: @black; + text-shadow: 0 1px 0 rgba(255,255,255,1); + .opacity(20); + &:hover { + color: @black; + text-decoration: none; + cursor: pointer; + .opacity(40); + } +} + +// Additional properties for button version +// iOS requires the button element instead of an anchor tag. +// If you want the anchor version, it requires `href="#"`. +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} \ No newline at end of file diff --git a/docs/assets/less/twbs-222/code.less b/docs/assets/less/twbs-222/code.less new file mode 100755 index 000000000..266a926e7 --- /dev/null +++ b/docs/assets/less/twbs-222/code.less @@ -0,0 +1,61 @@ +// +// Code (inline and blocK) +// -------------------------------------------------- + + +// Inline and block code styles +code, +pre { + padding: 0 3px 2px; + #font > #family > .monospace; + font-size: @baseFontSize - 2; + color: @grayDark; + .border-radius(3px); +} + +// Inline code +code { + padding: 2px 4px; + color: #d14; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; + white-space: nowrap; +} + +// Blocks of code +pre { + display: block; + padding: (@baseLineHeight - 1) / 2; + margin: 0 0 @baseLineHeight / 2; + font-size: @baseFontSize - 1; // 14px to 13px + line-height: @baseLineHeight; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; // fallback for IE7-8 + border: 1px solid rgba(0,0,0,.15); + .border-radius(@baseBorderRadius); + + // Make prettyprint styles more spaced out for readability + &.prettyprint { + margin-bottom: @baseLineHeight; + } + + // Account for some code outputs that place code tags in pre tags + code { + padding: 0; + color: inherit; + white-space: pre; + white-space: pre-wrap; + background-color: transparent; + border: 0; + } +} + +// Enable scrollable blocks of code +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} \ No newline at end of file diff --git a/docs/assets/less/twbs-222/component-animations.less b/docs/assets/less/twbs-222/component-animations.less new file mode 100755 index 000000000..d614263a7 --- /dev/null +++ b/docs/assets/less/twbs-222/component-animations.less @@ -0,0 +1,22 @@ +// +// Component animations +// -------------------------------------------------- + + +.fade { + opacity: 0; + .transition(opacity .15s linear); + &.in { + opacity: 1; + } +} + +.collapse { + position: relative; + height: 0; + overflow: hidden; + .transition(height .35s ease); + &.in { + height: auto; + } +} diff --git a/docs/assets/less/twbs-222/dropdowns.less b/docs/assets/less/twbs-222/dropdowns.less new file mode 100755 index 000000000..484bd3dda --- /dev/null +++ b/docs/assets/less/twbs-222/dropdowns.less @@ -0,0 +1,233 @@ +// +// Dropdown menus +// -------------------------------------------------- + + +// Use the .menu class on any

  • element within the topbar or ul.tabs and you'll get some superfancy dropdowns +.dropup, +.dropdown { + position: relative; +} +.dropdown-toggle { + // The caret makes the toggle a bit too tall in IE7 + *margin-bottom: -3px; +} +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} + +// Dropdown arrow/caret +// -------------------- +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid @black; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} + +// Place the caret +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} + +// The dropdown menu (ul) +// ---------------------- +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: @zindexDropdown; + display: none; // none by default, but block on "open" of the menu + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; // override default ul + list-style: none; + background-color: @dropdownBackground; + border: 1px solid #ccc; // Fallback for IE7-8 + border: 1px solid @dropdownBorder; + *border-right-width: 2px; + *border-bottom-width: 2px; + .border-radius(6px); + .box-shadow(0 5px 10px rgba(0,0,0,.2)); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; + + // Aligns the dropdown menu to right + &.pull-right { + right: 0; + left: auto; + } + + // Dividers (basically an hr) within the dropdown + .divider { + .nav-divider(@dropdownDividerTop, @dropdownDividerBottom); + } + + // Links within the dropdown menu + li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: @baseLineHeight; + color: @dropdownLinkColor; + white-space: nowrap; + } +} + +// Hover state +// ----------- +.dropdown-menu li > a:hover, +.dropdown-menu li > a:focus, +.dropdown-submenu:hover > a { + text-decoration: none; + color: @dropdownLinkColorHover; + #gradient > .vertical(@dropdownLinkBackgroundHover, darken(@dropdownLinkBackgroundHover, 5%)); +} + +// Active state +// ------------ +.dropdown-menu .active > a, +.dropdown-menu .active > a:hover { + color: @dropdownLinkColorActive; + text-decoration: none; + outline: 0; + #gradient > .vertical(@dropdownLinkBackgroundActive, darken(@dropdownLinkBackgroundActive, 5%)); +} + +// Disabled state +// -------------- +// Gray out text and ensure the hover state remains gray +.dropdown-menu .disabled > a, +.dropdown-menu .disabled > a:hover { + color: @grayLight; +} +// Nuke hover effects +.dropdown-menu .disabled > a:hover { + text-decoration: none; + background-color: transparent; + background-image: none; // Remove CSS gradient + .reset-filter(); + cursor: default; +} + +// Open state for the dropdown +// --------------------------- +.open { + // IE7's z-index only goes to the nearest positioned ancestor, which would + // make the menu appear below buttons that appeared later on the page + *z-index: @zindexDropdown; + + & > .dropdown-menu { + display: block; + } +} + +// Right aligned dropdowns +// --------------------------- +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +// Allow for dropdowns to go bottom up (aka, dropup-menu) +// ------------------------------------------------------ +// Just add .dropup after the standard .dropdown class and you're set, bro. +// TODO: abstract this so that the navbar fixed styles are not placed here? +.dropup, +.navbar-fixed-bottom .dropdown { + // Reverse the caret + .caret { + border-top: 0; + border-bottom: 4px solid @black; + content: ""; + } + // Different positioning for bottom up menu + .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; + } +} + +// Sub menus +// --------------------------- +.dropdown-submenu { + position: relative; +} +// Default dropdowns +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + .border-radius(0 6px 6px 6px); +} +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} + +// Dropups +.dropup .dropdown-submenu > .dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; + .border-radius(5px 5px 5px 0); +} + +// Caret to indicate there is a submenu +.dropdown-submenu > a:after { + display: block; + content: " "; + float: right; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + border-width: 5px 0 5px 5px; + border-left-color: darken(@dropdownBackground, 20%); + margin-top: 5px; + margin-right: -10px; +} +.dropdown-submenu:hover > a:after { + border-left-color: @dropdownLinkColorHover; +} + +// Left aligned submenus +.dropdown-submenu.pull-left { + // Undo the float + // Yes, this is awkward since .pull-left adds a float, but it sticks to our conventions elsewhere. + float: none; + + // Positioning the submenu + > .dropdown-menu { + left: -100%; + margin-left: 10px; + .border-radius(6px 0 6px 6px); + } +} + +// Tweak nav headers +// ----------------- +// Increase padding from 15px to 20px on sides +.dropdown .dropdown-menu .nav-header { + padding-left: 20px; + padding-right: 20px; +} + +// Typeahead +// --------- +.typeahead { + z-index: 1051; + margin-top: 2px; // give it some space to breathe + .border-radius(@baseBorderRadius); +} diff --git a/docs/assets/less/twbs-222/forms.less b/docs/assets/less/twbs-222/forms.less new file mode 100755 index 000000000..2dff22919 --- /dev/null +++ b/docs/assets/less/twbs-222/forms.less @@ -0,0 +1,687 @@ +// +// Forms +// -------------------------------------------------- + + +// GENERAL STYLES +// -------------- + +// Make all forms have space below them +form { + margin: 0 0 @baseLineHeight; +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +// Groups of fields with labels on top (legends) +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: @baseLineHeight; + font-size: @baseFontSize * 1.5; + line-height: @baseLineHeight * 2; + color: @grayDark; + border: 0; + border-bottom: 1px solid #e5e5e5; + + // Small + small { + font-size: @baseLineHeight * .75; + color: @grayLight; + } +} + +// Set font for forms +label, +input, +button, +select, +textarea { + #font > .shorthand(@baseFontSize,normal,@baseLineHeight); // Set size, weight, line-height here +} +input, +button, +select, +textarea { + font-family: @baseFontFamily; // And only set font-family here for those that need it (note the missing label element) +} + +// Identify controls by their labels +label { + display: block; + margin-bottom: 5px; +} + +// Form controls +// ------------------------- + +// Shared size and type resets +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: @baseLineHeight; + padding: 4px 6px; + margin-bottom: @baseLineHeight / 2; + font-size: @baseFontSize; + line-height: @baseLineHeight; + color: @gray; + .border-radius(@inputBorderRadius); + vertical-align: middle; +} + +// Reset appearance properties for textual inputs and textarea +// Declare width for legacy (can't be on input[type=*] selectors or it's too specific) +input, +textarea, +.uneditable-input { + width: 206px; // plus 12px padding and 2px border +} +// Reset height since textareas have rows +textarea { + height: auto; +} +// Everything else +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: @inputBackground; + border: 1px solid @inputBorder; + .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); + .transition(~"border linear .2s, box-shadow linear .2s"); + + // Focus state + &:focus { + border-color: rgba(82,168,236,.8); + outline: 0; + outline: thin dotted \9; /* IE6-9 */ + .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)"); + } +} + +// Position radios and checkboxes better +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + *margin-top: 0; /* IE7 */ + margin-top: 1px \9; /* IE8-9 */ + line-height: normal; +} + +// Reset width of input images, buttons, radios, checkboxes +input[type="file"], +input[type="image"], +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; // Override of generic input selector +} + +// Set the height of select and file controls to match text inputs +select, +input[type="file"] { + height: @inputHeight; /* 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: @inputHeight; +} + +// Make select elements obey height by applying a border +select { + width: 220px; // default input width + 10px of padding that doesn't get applied + border: 1px solid @inputBorder; + background-color: @inputBackground; // Chrome on Linux and Mobile Safari need background-color +} + +// Make multiple select elements height not fixed +select[multiple], +select[size] { + height: auto; +} + +// Focus for select, file, radio, and checkbox +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + .tab-focus(); +} + + +// Uneditable inputs +// ------------------------- + +// Make uneditable inputs look inactive +.uneditable-input, +.uneditable-textarea { + color: @grayLight; + background-color: darken(@inputBackground, 1%); + border-color: @inputBorder; + .box-shadow(inset 0 1px 2px rgba(0,0,0,.025)); + cursor: not-allowed; +} + +// For text that needs to appear as an input but should not be an input +.uneditable-input { + overflow: hidden; // prevent text from wrapping, but still cut it off like an input does + white-space: nowrap; +} + +// Make uneditable textareas behave like a textarea +.uneditable-textarea { + width: auto; + height: auto; +} + + +// Placeholder +// ------------------------- + +// Placeholder text gets special styles because when browsers invalidate entire lines if it doesn't understand a selector +input, +textarea { + .placeholder(); +} + + +// CHECKBOXES & RADIOS +// ------------------- + +// Indent the labels to position radios/checkboxes as hanging +.radio, +.checkbox { + min-height: @baseLineHeight; // clear the floating input if there is no label text + padding-left: 20px; +} +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -20px; +} + +// Move the options list down to align with labels +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; // has to be padding because margin collaspes +} + +// Radios and checkboxes on same line +// TODO v3: Convert .inline to .control-inline +.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; // space out consecutive inline controls +} + + + +// INPUT SIZES +// ----------- + +// General classes for quick sizes +.input-mini { width: 60px; } +.input-small { width: 90px; } +.input-medium { width: 150px; } +.input-large { width: 210px; } +.input-xlarge { width: 270px; } +.input-xxlarge { width: 530px; } + +// Grid style input sizes +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +// Redeclare since the fluid row class is more specific +.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; +} +// Ensure input-prepend/append never wraps +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} + + + +// GRID SIZING FOR INPUTS +// ---------------------- + +// Grid sizes +#grid > .input(@gridColumnWidth, @gridGutterWidth); + +// Control row for multiple inputs per line +.controls-row { + .clearfix(); // Clear the float from controls +} + +// Float to collapse white-space for proper grid alignment +.controls-row [class*="span"], +// Redeclare the fluid grid collapse since we undo the float for inputs +.row-fluid .controls-row [class*="span"] { + float: left; +} +// Explicity set top padding on all checkboxes/radios, not just first-child +.controls-row .checkbox[class*="span"], +.controls-row .radio[class*="span"] { + padding-top: 5px; +} + + + + +// DISABLED STATE +// -------------- + +// Disabled and read-only inputs +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: @inputDisabledBackground; +} +// Explicitly reset the colors here +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} + + + + +// FORM FIELD FEEDBACK STATES +// -------------------------- + +// Warning +.control-group.warning { + .formFieldState(@warningText, @warningText, @warningBackground); +} +// Error +.control-group.error { + .formFieldState(@errorText, @errorText, @errorBackground); +} +// Success +.control-group.success { + .formFieldState(@successText, @successText, @successBackground); +} +// Success +.control-group.info { + .formFieldState(@infoText, @infoText, @infoBackground); +} + +// HTML5 invalid states +// Shares styles with the .control-group.error above +input:focus:invalid, +textarea:focus:invalid, +select:focus:invalid { + color: #b94a48; + border-color: #ee5f5b; + &:focus { + border-color: darken(#ee5f5b, 10%); + @shadow: 0 0 6px lighten(#ee5f5b, 20%); + .box-shadow(@shadow); + } +} + + + +// FORM ACTIONS +// ------------ + +.form-actions { + padding: (@baseLineHeight - 1) 20px @baseLineHeight; + margin-top: @baseLineHeight; + margin-bottom: @baseLineHeight; + background-color: @formActionsBackground; + border-top: 1px solid #e5e5e5; + .clearfix(); // Adding clearfix to allow for .pull-right button containers +} + + + +// HELP TEXT +// --------- + +.help-block, +.help-inline { + color: lighten(@textColor, 15%); // lighten the text some for contrast +} + +.help-block { + display: block; // account for any element using help-block + margin-bottom: @baseLineHeight / 2; +} + +.help-inline { + display: inline-block; + .ie7-inline-block(); + vertical-align: middle; + padding-left: 5px; +} + + + +// INPUT GROUPS +// ------------ + +// Allow us to put symbols and text within the input field for a cleaner look +.input-append, +.input-prepend { + margin-bottom: 5px; + font-size: 0; // white space collapse hack + white-space: nowrap; // Prevent span and input from separating + + // Reset the white space collapse hack + input, + select, + .uneditable-input, + .dropdown-menu { + font-size: @baseFontSize; + } + + input, + select, + .uneditable-input { + position: relative; // placed here by default so that on :focus we can place the input above the .add-on for full border and box-shadow goodness + margin-bottom: 0; // prevent bottom margin from screwing up alignment in stacked forms + *margin-left: 0; + vertical-align: top; + .border-radius(0 @inputBorderRadius @inputBorderRadius 0); + // Make input on top when focused so blue border and shadow always show + &:focus { + z-index: 2; + } + } + .add-on { + display: inline-block; + width: auto; + height: @baseLineHeight; + min-width: 16px; + padding: 4px 5px; + font-size: @baseFontSize; + font-weight: normal; + line-height: @baseLineHeight; + text-align: center; + text-shadow: 0 1px 0 @white; + background-color: @grayLighter; + border: 1px solid #ccc; + } + .add-on, + .btn, + .btn-group > .dropdown-toggle { + vertical-align: top; + .border-radius(0); + } + .active { + background-color: lighten(@green, 30); + border-color: @green; + } +} + +.input-prepend { + .add-on, + .btn { + margin-right: -1px; + } + .add-on:first-child, + .btn:first-child { + // FYI, `.btn:first-child` accounts for a button group that's prepended + .border-radius(@inputBorderRadius 0 0 @inputBorderRadius); + } +} + +.input-append { + input, + select, + .uneditable-input { + .border-radius(@inputBorderRadius 0 0 @inputBorderRadius); + + .btn-group .btn:last-child { + .border-radius(0 @inputBorderRadius @inputBorderRadius 0); + } + } + .add-on, + .btn, + .btn-group { + margin-left: -1px; + } + .add-on:last-child, + .btn:last-child, + .btn-group:last-child > .dropdown-toggle { + .border-radius(0 @inputBorderRadius @inputBorderRadius 0); + } +} + +// Remove all border-radius for inputs with both prepend and append +.input-prepend.input-append { + input, + select, + .uneditable-input { + .border-radius(0); + + .btn-group .btn { + .border-radius(0 @inputBorderRadius @inputBorderRadius 0); + } + } + .add-on:first-child, + .btn:first-child { + margin-right: -1px; + .border-radius(@inputBorderRadius 0 0 @inputBorderRadius); + } + .add-on:last-child, + .btn:last-child { + margin-left: -1px; + .border-radius(0 @inputBorderRadius @inputBorderRadius 0); + } + .btn-group:first-child { + margin-left: 0; + } +} + + + + +// SEARCH FORM +// ----------- + +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; /* IE7-8 doesn't have border-radius, so don't indent the padding */ + margin-bottom: 0; // Remove the default margin on all inputs + .border-radius(15px); +} + +/* Allow for input prepend/append in search forms */ +.form-search .input-append .search-query, +.form-search .input-prepend .search-query { + .border-radius(0); // Override due to specificity +} +.form-search .input-append .search-query { + .border-radius(14px 0 0 14px); +} +.form-search .input-append .btn { + .border-radius(0 14px 14px 0); +} +.form-search .input-prepend .search-query { + .border-radius(0 14px 14px 0); +} +.form-search .input-prepend .btn { + .border-radius(14px 0 0 14px); +} + + + + +// HORIZONTAL & VERTICAL FORMS +// --------------------------- + +// Common properties +// ----------------- + +.form-search, +.form-inline, +.form-horizontal { + input, + textarea, + select, + .help-inline, + .uneditable-input, + .input-prepend, + .input-append { + display: inline-block; + .ie7-inline-block(); + margin-bottom: 0; + vertical-align: middle; + } + // Re-hide hidden elements due to specifity + .hide { + display: none; + } +} +.form-search label, +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { + display: inline-block; +} +// Remove margin for input-prepend/-append +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} +// Inline checkbox/radio labels (remove padding on left) +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} +// Remove float and margin, set to inline-block +.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; +} + + +// Margin to space out fieldsets +.control-group { + margin-bottom: @baseLineHeight / 2; +} + +// Legend collapses margin, so next element is responsible for spacing +legend + .control-group { + margin-top: @baseLineHeight; + -webkit-margin-top-collapse: separate; +} + +// Horizontal-specific styles +// -------------------------- + +.form-horizontal { + // Increase spacing between groups + .control-group { + margin-bottom: @baseLineHeight; + .clearfix(); + } + // Float the labels left + .control-label { + float: left; + width: @horizontalComponentOffset - 20; + padding-top: 5px; + text-align: right; + } + // Move over all input controls and content + .controls { + // Super jank IE7 fix to ensure the inputs in .input-append and input-prepend + // don't inherit the margin of the parent, in this case .controls + *display: inline-block; + *padding-left: 20px; + margin-left: @horizontalComponentOffset; + *margin-left: 0; + &:first-child { + *padding-left: @horizontalComponentOffset; + } + } + // Remove bottom margin on block level help text since that's accounted for on .control-group + .help-block { + margin-bottom: 0; + } + // And apply it only to .help-block instances that follow a form control + input, + select, + textarea, + .uneditable-input, + .input-prepend, + .input-append { + + .help-block { + margin-top: @baseLineHeight / 2; + } + } + // Move over buttons in .form-actions to align with .controls + .form-actions { + padding-left: @horizontalComponentOffset; + } +} diff --git a/docs/assets/less/twbs-222/grid.less b/docs/assets/less/twbs-222/grid.less new file mode 100755 index 000000000..750d20351 --- /dev/null +++ b/docs/assets/less/twbs-222/grid.less @@ -0,0 +1,21 @@ +// +// Grid system +// -------------------------------------------------- + + +// Fixed (940px) +#grid > .core(@gridColumnWidth, @gridGutterWidth); + +// Fluid (940px) +#grid > .fluid(@fluidGridColumnWidth, @fluidGridGutterWidth); + +// Reset utility classes due to specificity +[class*="span"].hide, +.row-fluid [class*="span"].hide { + display: none; +} + +[class*="span"].pull-right, +.row-fluid [class*="span"].pull-right { + float: right; +} diff --git a/docs/assets/less/twbs-222/hero-unit.less b/docs/assets/less/twbs-222/hero-unit.less new file mode 100755 index 000000000..763d86aee --- /dev/null +++ b/docs/assets/less/twbs-222/hero-unit.less @@ -0,0 +1,25 @@ +// +// Hero unit +// -------------------------------------------------- + + +.hero-unit { + padding: 60px; + margin-bottom: 30px; + font-size: 18px; + font-weight: 200; + line-height: @baseLineHeight * 1.5; + color: @heroUnitLeadColor; + background-color: @heroUnitBackground; + .border-radius(6px); + h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + color: @heroUnitHeadingColor; + letter-spacing: -1px; + } + li { + line-height: @baseLineHeight * 1.5; // Reset since we specify in type.less + } +} diff --git a/docs/assets/less/twbs-222/labels-badges.less b/docs/assets/less/twbs-222/labels-badges.less new file mode 100755 index 000000000..9c3a40bfb --- /dev/null +++ b/docs/assets/less/twbs-222/labels-badges.less @@ -0,0 +1,82 @@ +// +// Labels and badges +// -------------------------------------------------- + + +// Base classes +.label, +.badge { + display: inline-block; + padding: 2px 4px; + font-size: @baseFontSize * .846; + font-weight: bold; + line-height: 14px; // ensure proper line-height if floated + color: @white; + vertical-align: baseline; + white-space: nowrap; + text-shadow: 0 -1px 0 rgba(0,0,0,.25); + background-color: @grayLight; +} +// Set unique padding and border-radii +.label { + .border-radius(3px); +} +.badge { + padding-left: 9px; + padding-right: 9px; + .border-radius(9px); +} + +// Empty labels/badges collapse +.label, +.badge { + &:empty { + display: none; + } +} + +// Hover state, but only for links +a { + &.label:hover, + &.badge:hover { + color: @white; + text-decoration: none; + cursor: pointer; + } +} + +// Colors +// Only give background-color difference to links (and to simplify, we don't qualifty with `a` but [href] attribute) +.label, +.badge { + // Important (red) + &-important { background-color: @errorText; } + &-important[href] { background-color: darken(@errorText, 10%); } + // Warnings (orange) + &-warning { background-color: @orange; } + &-warning[href] { background-color: darken(@orange, 10%); } + // Success (green) + &-success { background-color: @successText; } + &-success[href] { background-color: darken(@successText, 10%); } + // Info (turquoise) + &-info { background-color: @infoText; } + &-info[href] { background-color: darken(@infoText, 10%); } + // Inverse (black) + &-inverse { background-color: @grayDark; } + &-inverse[href] { background-color: darken(@grayDark, 10%); } +} + +// Quick fix for labels/badges in buttons +.btn { + .label, + .badge { + position: relative; + top: -1px; + } +} +.btn-mini { + .label, + .badge { + top: 0; + } +} diff --git a/docs/assets/less/twbs-222/layouts.less b/docs/assets/less/twbs-222/layouts.less new file mode 100755 index 000000000..24a206211 --- /dev/null +++ b/docs/assets/less/twbs-222/layouts.less @@ -0,0 +1,16 @@ +// +// Layouts +// -------------------------------------------------- + + +// Container (centered, fixed-width layouts) +.container { + .container-fixed(); +} + +// Fluid layouts (left aligned, with sidebar, min- & max-width content) +.container-fluid { + padding-right: @gridGutterWidth; + padding-left: @gridGutterWidth; + .clearfix(); +} \ No newline at end of file diff --git a/docs/assets/less/twbs-222/media.less b/docs/assets/less/twbs-222/media.less new file mode 100755 index 000000000..1decab71d --- /dev/null +++ b/docs/assets/less/twbs-222/media.less @@ -0,0 +1,55 @@ +// Media objects +// Source: http://stubbornella.org/content/?p=497 +// -------------------------------------------------- + + +// Common styles +// ------------------------- + +// Clear the floats +.media, +.media-body { + overflow: hidden; + *overflow: visible; + zoom: 1; +} + +// Proper spacing between instances of .media +.media, +.media .media { + margin-top: 15px; +} +.media:first-child { + margin-top: 0; +} + +// For images and videos, set to block +.media-object { + display: block; +} + +// Reset margins on headings for tighter default spacing +.media-heading { + margin: 0 0 5px; +} + + +// Media image alignment +// ------------------------- + +.media .pull-left { + margin-right: 10px; +} +.media .pull-right { + margin-left: 10px; +} + + +// Media list variation +// ------------------------- + +// Undo default ul/ol styles +.media-list { + margin-left: 0; + list-style: none; +} diff --git a/docs/assets/less/twbs-222/mixins.less b/docs/assets/less/twbs-222/mixins.less new file mode 100755 index 000000000..b734bab2d --- /dev/null +++ b/docs/assets/less/twbs-222/mixins.less @@ -0,0 +1,686 @@ +// +// Mixins +// -------------------------------------------------- + + +// UTILITY MIXINS +// -------------------------------------------------- + +// Clearfix +// -------- +// For clearing floats like a boss h5bp.com/q +.clearfix { + *zoom: 1; + &:before, + &:after { + display: table; + content: ""; + // Fixes Opera/contenteditable bug: + // http://nicolasgallagher.com/micro-clearfix-hack/#comment-36952 + line-height: 0; + } + &:after { + clear: both; + } +} + +// Webkit-style focus +// ------------------ +.tab-focus() { + // Default + outline: thin dotted #333; + // Webkit + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +// Center-align a block level element +// ---------------------------------- +.center-block() { + display: block; + margin-left: auto; + margin-right: auto; +} + +// IE7 inline-block +// ---------------- +.ie7-inline-block() { + *display: inline; /* IE7 inline-block hack */ + *zoom: 1; +} + +// IE7 likes to collapse whitespace on either side of the inline-block elements. +// Ems because we're attempting to match the width of a space character. Left +// version is for form buttons, which typically come after other elements, and +// right version is for icons, which come before. Applying both is ok, but it will +// mean that space between those elements will be .6em (~2 space characters) in IE7, +// instead of the 1 space in other browsers. +.ie7-restore-left-whitespace() { + *margin-left: .3em; + + &:first-child { + *margin-left: 0; + } +} + +.ie7-restore-right-whitespace() { + *margin-right: .3em; +} + +// Sizing shortcuts +// ------------------------- +.size(@height, @width) { + width: @width; + height: @height; +} +.square(@size) { + .size(@size, @size); +} + +// Placeholder text +// ------------------------- +.placeholder(@color: @placeholderText) { + &:-moz-placeholder { + color: @color; + } + &:-ms-input-placeholder { + color: @color; + } + &::-webkit-input-placeholder { + color: @color; + } +} + +// Text overflow +// ------------------------- +// Requires inline-block or block for proper styling +.text-overflow() { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +// CSS image replacement +// ------------------------- +// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + + +// FONTS +// -------------------------------------------------- + +#font { + #family { + .serif() { + font-family: @serifFontFamily; + } + .sans-serif() { + font-family: @sansFontFamily; + } + .monospace() { + font-family: @monoFontFamily; + } + } + .shorthand(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) { + font-size: @size; + font-weight: @weight; + line-height: @lineHeight; + } + .serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) { + #font > #family > .serif; + #font > .shorthand(@size, @weight, @lineHeight); + } + .sans-serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) { + #font > #family > .sans-serif; + #font > .shorthand(@size, @weight, @lineHeight); + } + .monospace(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) { + #font > #family > .monospace; + #font > .shorthand(@size, @weight, @lineHeight); + } +} + + +// FORMS +// -------------------------------------------------- + +// Block level inputs +.input-block-level { + display: block; + width: 100%; + min-height: @inputHeight; // Make inputs at least the height of their button counterpart (base line-height + padding + border) + .box-sizing(border-box); // Makes inputs behave like true block-level elements +} + + + +// Mixin for form field states +.formFieldState(@textColor: #555, @borderColor: #ccc, @backgroundColor: #f5f5f5) { + // Set the text color + .control-label, + .help-block, + .help-inline { + color: @textColor; + } + // Style inputs accordingly + .checkbox, + .radio, + input, + select, + textarea { + color: @textColor; + } + input, + select, + textarea { + border-color: @borderColor; + .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work + &:focus { + border-color: darken(@borderColor, 10%); + @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@borderColor, 20%); + .box-shadow(@shadow); + } + } + // Give a small background color for input-prepend/-append + .input-prepend .add-on, + .input-append .add-on { + color: @textColor; + background-color: @backgroundColor; + border-color: @textColor; + } +} + + + +// CSS3 PROPERTIES +// -------------------------------------------------- + +// Border Radius +.border-radius(@radius) { + -webkit-border-radius: @radius; + -moz-border-radius: @radius; + border-radius: @radius; +} + +// Single Corner Border Radius +.border-top-left-radius(@radius) { + -webkit-border-top-left-radius: @radius; + -moz-border-radius-topleft: @radius; + border-top-left-radius: @radius; +} +.border-top-right-radius(@radius) { + -webkit-border-top-right-radius: @radius; + -moz-border-radius-topright: @radius; + border-top-right-radius: @radius; +} +.border-bottom-right-radius(@radius) { + -webkit-border-bottom-right-radius: @radius; + -moz-border-radius-bottomright: @radius; + border-bottom-right-radius: @radius; +} +.border-bottom-left-radius(@radius) { + -webkit-border-bottom-left-radius: @radius; + -moz-border-radius-bottomleft: @radius; + border-bottom-left-radius: @radius; +} + +// Single Side Border Radius +.border-top-radius(@radius) { + .border-top-right-radius(@radius); + .border-top-left-radius(@radius); +} +.border-right-radius(@radius) { + .border-top-right-radius(@radius); + .border-bottom-right-radius(@radius); +} +.border-bottom-radius(@radius) { + .border-bottom-right-radius(@radius); + .border-bottom-left-radius(@radius); +} +.border-left-radius(@radius) { + .border-top-left-radius(@radius); + .border-bottom-left-radius(@radius); +} + +// Drop shadows +.box-shadow(@shadow) { + -webkit-box-shadow: @shadow; + -moz-box-shadow: @shadow; + box-shadow: @shadow; +} + +// Transitions +.transition(@transition) { + -webkit-transition: @transition; + -moz-transition: @transition; + -o-transition: @transition; + transition: @transition; +} +.transition-delay(@transition-delay) { + -webkit-transition-delay: @transition-delay; + -moz-transition-delay: @transition-delay; + -o-transition-delay: @transition-delay; + transition-delay: @transition-delay; +} + +// Transformations +.rotate(@degrees) { + -webkit-transform: rotate(@degrees); + -moz-transform: rotate(@degrees); + -ms-transform: rotate(@degrees); + -o-transform: rotate(@degrees); + transform: rotate(@degrees); +} +.scale(@ratio) { + -webkit-transform: scale(@ratio); + -moz-transform: scale(@ratio); + -ms-transform: scale(@ratio); + -o-transform: scale(@ratio); + transform: scale(@ratio); +} +.translate(@x, @y) { + -webkit-transform: translate(@x, @y); + -moz-transform: translate(@x, @y); + -ms-transform: translate(@x, @y); + -o-transform: translate(@x, @y); + transform: translate(@x, @y); +} +.skew(@x, @y) { + -webkit-transform: skew(@x, @y); + -moz-transform: skew(@x, @y); + -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twitter/bootstrap/issues/4885 + -o-transform: skew(@x, @y); + transform: skew(@x, @y); + -webkit-backface-visibility: hidden; // See https://github.com/twitter/bootstrap/issues/5319 +} +.translate3d(@x, @y, @z) { + -webkit-transform: translate3d(@x, @y, @z); + -moz-transform: translate3d(@x, @y, @z); + -o-transform: translate3d(@x, @y, @z); + transform: translate3d(@x, @y, @z); +} + +// Backface visibility +// Prevent browsers from flickering when using CSS 3D transforms. +// Default value is `visible`, but can be changed to `hidden +// See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples +.backface-visibility(@visibility){ + -webkit-backface-visibility: @visibility; + -moz-backface-visibility: @visibility; + backface-visibility: @visibility; +} + +// Background clipping +// Heads up: FF 3.6 and under need "padding" instead of "padding-box" +.background-clip(@clip) { + -webkit-background-clip: @clip; + -moz-background-clip: @clip; + background-clip: @clip; +} + +// Background sizing +.background-size(@size) { + -webkit-background-size: @size; + -moz-background-size: @size; + -o-background-size: @size; + background-size: @size; +} + + +// Box sizing +.box-sizing(@boxmodel) { + -webkit-box-sizing: @boxmodel; + -moz-box-sizing: @boxmodel; + box-sizing: @boxmodel; +} + +// User select +// For selecting text on the page +.user-select(@select) { + -webkit-user-select: @select; + -moz-user-select: @select; + -ms-user-select: @select; + -o-user-select: @select; + user-select: @select; +} + +// Resize anything +.resizable(@direction) { + resize: @direction; // Options: horizontal, vertical, both + overflow: auto; // Safari fix +} + +// CSS3 Content Columns +.content-columns(@columnCount, @columnGap: @gridGutterWidth) { + -webkit-column-count: @columnCount; + -moz-column-count: @columnCount; + column-count: @columnCount; + -webkit-column-gap: @columnGap; + -moz-column-gap: @columnGap; + column-gap: @columnGap; +} + +// Optional hyphenation +.hyphens(@mode: auto) { + word-wrap: break-word; + -webkit-hyphens: @mode; + -moz-hyphens: @mode; + -ms-hyphens: @mode; + -o-hyphens: @mode; + hyphens: @mode; +} + +// Opacity +.opacity(@opacity) { + opacity: @opacity / 100; + filter: ~"alpha(opacity=@{opacity})"; +} + + + +// BACKGROUNDS +// -------------------------------------------------- + +// Add an alphatransparency value to any background or border color (via Elyse Holladay) +#translucent { + .background(@color: @white, @alpha: 1) { + background-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha); + } + .border(@color: @white, @alpha: 1) { + border-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha); + .background-clip(padding-box); + } +} + +// Gradient Bar Colors for buttons and alerts +.gradientBar(@primaryColor, @secondaryColor, @textColor: #fff, @textShadow: 0 -1px 0 rgba(0,0,0,.25)) { + color: @textColor; + text-shadow: @textShadow; + #gradient > .vertical(@primaryColor, @secondaryColor); + border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%); + border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%); +} + +// Gradients +#gradient { + .horizontal(@startColor: #555, @endColor: #333) { + background-color: @endColor; + background-image: -moz-linear-gradient(left, @startColor, @endColor); // FF 3.6+ + background-image: -webkit-gradient(linear, 0 0, 100% 0, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+ + background-image: -webkit-linear-gradient(left, @startColor, @endColor); // Safari 5.1+, Chrome 10+ + background-image: -o-linear-gradient(left, @startColor, @endColor); // Opera 11.10 + background-image: linear-gradient(to right, @startColor, @endColor); // Standard, IE10 + background-repeat: repeat-x; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@startColor),argb(@endColor))); // IE9 and down + } + .vertical(@startColor: #555, @endColor: #333) { + background-color: mix(@startColor, @endColor, 60%); + background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+ + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+ + background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+ + background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10 + background-image: linear-gradient(to bottom, @startColor, @endColor); // Standard, IE10 + background-repeat: repeat-x; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down + } + .directional(@startColor: #555, @endColor: #333, @deg: 45deg) { + background-color: @endColor; + background-repeat: repeat-x; + background-image: -moz-linear-gradient(@deg, @startColor, @endColor); // FF 3.6+ + background-image: -webkit-linear-gradient(@deg, @startColor, @endColor); // Safari 5.1+, Chrome 10+ + background-image: -o-linear-gradient(@deg, @startColor, @endColor); // Opera 11.10 + background-image: linear-gradient(@deg, @startColor, @endColor); // Standard, IE10 + } + .vertical-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) { + background-color: mix(@midColor, @endColor, 80%); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor)); + background-image: -webkit-linear-gradient(@startColor, @midColor @colorStop, @endColor); + background-image: -moz-linear-gradient(top, @startColor, @midColor @colorStop, @endColor); + background-image: -o-linear-gradient(@startColor, @midColor @colorStop, @endColor); + background-image: linear-gradient(@startColor, @midColor @colorStop, @endColor); + background-repeat: no-repeat; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback + } + .radial(@innerColor: #555, @outerColor: #333) { + background-color: @outerColor; + background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@innerColor), to(@outerColor)); + background-image: -webkit-radial-gradient(circle, @innerColor, @outerColor); + background-image: -moz-radial-gradient(circle, @innerColor, @outerColor); + background-image: -o-radial-gradient(circle, @innerColor, @outerColor); + background-repeat: no-repeat; + } + .striped(@color: #555, @angle: 45deg) { + background-color: @color; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,.15)), color-stop(.75, rgba(255,255,255,.15)), color-stop(.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); + } +} +// Reset filters for IE +.reset-filter() { + filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)")); +} + + + +// COMPONENT MIXINS +// -------------------------------------------------- + +// Horizontal dividers +// ------------------------- +// Dividers (basically an hr) within dropdowns and nav lists +.nav-divider(@top: #e5e5e5, @bottom: @white) { + // IE7 needs a set width since we gave a height. Restricting just + // to IE7 to keep the 1px left/right space in other browsers. + // It is unclear where IE is getting the extra space that we need + // to negative-margin away, but so it goes. + *width: 100%; + height: 1px; + margin: ((@baseLineHeight / 2) - 1) 1px; // 8px 1px + *margin: -5px 0 5px; + overflow: hidden; + background-color: @top; + border-bottom: 1px solid @bottom; +} + +// Button backgrounds +// ------------------ +.buttonBackground(@startColor, @endColor, @textColor: #fff, @textShadow: 0 -1px 0 rgba(0,0,0,.25)) { + // gradientBar will set the background to a pleasing blend of these, to support IE<=9 + .gradientBar(@startColor, @endColor, @textColor, @textShadow); + *background-color: @endColor; /* Darken IE7 buttons by default so they stand out more given they won't have borders */ + .reset-filter(); + + // in these cases the gradient won't cover the background, so we override + &:hover, &:active, &.active, &.disabled, &[disabled] { + color: @textColor; + background-color: @endColor; + *background-color: darken(@endColor, 5%); + } + + // IE 7 + 8 can't handle box-shadow to show active, so we darken a bit ourselves + &:active, + &.active { + background-color: darken(@endColor, 10%) e("\9"); + } +} + +// Navbar vertical align +// ------------------------- +// Vertically center elements in the navbar. +// Example: an element has a height of 30px, so write out `.navbarVerticalAlign(30px);` to calculate the appropriate top margin. +.navbarVerticalAlign(@elementHeight) { + margin-top: (@navbarHeight - @elementHeight) / 2; +} + + + +// Grid System +// ----------- + +// Centered container element +.container-fixed() { + margin-right: auto; + margin-left: auto; + .clearfix(); +} + +// Table columns +.tableColumns(@columnSpan: 1) { + float: none; // undo default grid column styles + width: ((@gridColumnWidth) * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)) - 16; // 16 is total padding on left and right of table cells + margin-left: 0; // undo default grid column styles +} + +// Make a Grid +// Use .makeRow and .makeColumn to assign semantic layouts grid system behavior +.makeRow() { + margin-left: @gridGutterWidth * -1; + .clearfix(); +} +.makeColumn(@columns: 1, @offset: 0) { + float: left; + margin-left: (@gridColumnWidth * @offset) + (@gridGutterWidth * (@offset - 1)) + (@gridGutterWidth * 2); + width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)); +} + +// The Grid +#grid { + + .core (@gridColumnWidth, @gridGutterWidth) { + + .spanX (@index) when (@index > 0) { + (~".span@{index}") { .span(@index); } + .spanX(@index - 1); + } + .spanX (0) {} + + .offsetX (@index) when (@index > 0) { + (~".offset@{index}") { .offset(@index); } + .offsetX(@index - 1); + } + .offsetX (0) {} + + .offset (@columns) { + margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns + 1)); + } + + .span (@columns) { + width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1)); + } + + .row { + margin-left: @gridGutterWidth * -1; + .clearfix(); + } + + [class*="span"] { + float: left; + min-height: 1px; // prevent collapsing columns + margin-left: @gridGutterWidth; + } + + // Set the container width, and override it for fixed navbars in media queries + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { .span(@gridColumns); } + + // generate .spanX and .offsetX + .spanX (@gridColumns); + .offsetX (@gridColumns); + + } + + .fluid (@fluidGridColumnWidth, @fluidGridGutterWidth) { + + .spanX (@index) when (@index > 0) { + (~".span@{index}") { .span(@index); } + .spanX(@index - 1); + } + .spanX (0) {} + + .offsetX (@index) when (@index > 0) { + (~'.offset@{index}') { .offset(@index); } + (~'.offset@{index}:first-child') { .offsetFirstChild(@index); } + .offsetX(@index - 1); + } + .offsetX (0) {} + + .offset (@columns) { + margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) + (@fluidGridGutterWidth*2); + *margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%) + (@fluidGridGutterWidth*2) - (.5 / @gridRowWidth * 100 * 1%); + } + + .offsetFirstChild (@columns) { + margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) + (@fluidGridGutterWidth); + *margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%) + @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%); + } + + .span (@columns) { + width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)); + *width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%); + } + + .row-fluid { + width: 100%; + .clearfix(); + [class*="span"] { + .input-block-level(); + float: left; + margin-left: @fluidGridGutterWidth; + *margin-left: @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%); + } + [class*="span"]:first-child { + margin-left: 0; + } + + // Space grid-sized controls properly if multiple per line + .controls-row [class*="span"] + [class*="span"] { + margin-left: @fluidGridGutterWidth; + } + + // generate .spanX and .offsetX + .spanX (@gridColumns); + .offsetX (@gridColumns); + } + + } + + .input(@gridColumnWidth, @gridGutterWidth) { + + .spanX (@index) when (@index > 0) { + (~"input.span@{index}, textarea.span@{index}, .uneditable-input.span@{index}") { .span(@index); } + .spanX(@index - 1); + } + .spanX (0) {} + + .span(@columns) { + width: ((@gridColumnWidth) * @columns) + (@gridGutterWidth * (@columns - 1)) - 14; + } + + input, + textarea, + .uneditable-input { + margin-left: 0; // override margin-left from core grid system + } + + // Space grid-sized controls properly if multiple per line + .controls-row [class*="span"] + [class*="span"] { + margin-left: @gridGutterWidth; + } + + // generate .spanX + .spanX (@gridColumns); + + } + +} diff --git a/docs/assets/less/twbs-222/modals.less b/docs/assets/less/twbs-222/modals.less new file mode 100755 index 000000000..8e272d409 --- /dev/null +++ b/docs/assets/less/twbs-222/modals.less @@ -0,0 +1,95 @@ +// +// Modals +// -------------------------------------------------- + +// Background +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: @zindexModalBackdrop; + background-color: @black; + // Fade for backdrop + &.fade { opacity: 0; } +} + +.modal-backdrop, +.modal-backdrop.fade.in { + .opacity(80); +} + +// Base modal +.modal { + position: fixed; + top: 10%; + left: 50%; + z-index: @zindexModal; + width: 560px; + margin-left: -280px; + background-color: @white; + border: 1px solid #999; + border: 1px solid rgba(0,0,0,.3); + *border: 1px solid #999; /* IE6-7 */ + .border-radius(6px); + .box-shadow(0 3px 7px rgba(0,0,0,0.3)); + .background-clip(padding-box); + // Remove focus outline from opened modal + outline: none; + + &.fade { + .transition(e('opacity .3s linear, top .3s ease-out')); + top: -25%; + } + &.fade.in { top: 10%; } +} +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; + // Close icon + .close { margin-top: 2px; } + // Heading + h3 { + margin: 0; + line-height: 30px; + } +} + +// Body (where all modal content resides) +.modal-body { + position: relative; + overflow-y: auto; + max-height: 400px; + padding: 15px; +} +// Remove bottom margin if need be +.modal-form { + margin-bottom: 0; +} + +// Footer (for actions) +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; // right align buttons + background-color: #f5f5f5; + border-top: 1px solid #ddd; + .border-radius(0 0 6px 6px); + .box-shadow(inset 0 1px 0 @white); + .clearfix(); // clear it in case folks use .pull-* classes on buttons + + // Properly space out buttons + .btn + .btn { + margin-left: 5px; + margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs + } + // but override that for button groups + .btn-group .btn + .btn { + margin-left: -1px; + } + // and override it for block buttons as well + .btn-block + .btn-block { + margin-left: 0; + } +} diff --git a/docs/assets/less/twbs-222/navbar.less b/docs/assets/less/twbs-222/navbar.less new file mode 100755 index 000000000..b292b72bb --- /dev/null +++ b/docs/assets/less/twbs-222/navbar.less @@ -0,0 +1,490 @@ +// +// Navbars (Redux) +// -------------------------------------------------- + + +// COMMON STYLES +// ------------- + +// Base class and wrapper +.navbar { + overflow: visible; + margin-bottom: @baseLineHeight; + + // Fix for IE7's bad z-indexing so dropdowns don't appear below content that follows the navbar + *position: relative; + *z-index: 2; +} + +// Inner for background effects +// Gradient is applied to its own element because overflow visible is not honored by IE when filter is present +.navbar-inner { + min-height: @navbarHeight; + padding-left: 20px; + padding-right: 20px; + #gradient > .vertical(@navbarBackgroundHighlight, @navbarBackground); + border: 1px solid @navbarBorder; + .border-radius(@baseBorderRadius); + .box-shadow(0 1px 4px rgba(0,0,0,.065)); + + // Prevent floats from breaking the navbar + .clearfix(); +} + +// Set width to auto for default container +// We then reset it for fixed navbars in the #gridSystem mixin +.navbar .container { + width: auto; +} + +// Override the default collapsed state +.nav-collapse.collapse { + height: auto; + overflow: visible; +} + + +// Brand: website or project name +// ------------------------- +.navbar .brand { + float: left; + display: block; + // Vertically center the text given @navbarHeight + padding: ((@navbarHeight - @baseLineHeight) / 2) 20px ((@navbarHeight - @baseLineHeight) / 2); + margin-left: -20px; // negative indent to left-align the text down the page + font-size: 20px; + font-weight: 200; + color: @navbarBrandColor; + text-shadow: 0 1px 0 @navbarBackgroundHighlight; + &:hover { + text-decoration: none; + } +} + +// Plain text in topbar +// ------------------------- +.navbar-text { + margin-bottom: 0; + line-height: @navbarHeight; + color: @navbarText; +} + +// Janky solution for now to account for links outside the .nav +// ------------------------- +.navbar-link { + color: @navbarLinkColor; + &:hover { + color: @navbarLinkColorHover; + } +} + +// Dividers in navbar +// ------------------------- +.navbar .divider-vertical { + height: @navbarHeight; + margin: 0 9px; + border-left: 1px solid @navbarBackground; + border-right: 1px solid @navbarBackgroundHighlight; +} + +// Buttons in navbar +// ------------------------- +.navbar .btn, +.navbar .btn-group { + .navbarVerticalAlign(30px); // Vertically center in navbar +} +.navbar .btn-group .btn, +.navbar .input-prepend .btn, +.navbar .input-append .btn { + margin-top: 0; // then undo the margin here so we don't accidentally double it +} + +// Navbar forms +// ------------------------- +.navbar-form { + margin-bottom: 0; // remove default bottom margin + .clearfix(); + input, + select, + .radio, + .checkbox { + .navbarVerticalAlign(30px); // Vertically center in navbar + } + input, + select, + .btn { + display: inline-block; + margin-bottom: 0; + } + input[type="image"], + input[type="checkbox"], + input[type="radio"] { + margin-top: 3px; + } + .input-append, + .input-prepend { + margin-top: 5px; + white-space: nowrap; // preven two items from separating within a .navbar-form that has .pull-left + input { + margin-top: 0; // remove the margin on top since it's on the parent + } + } +} + +// Navbar search +// ------------------------- +.navbar-search { + position: relative; + float: left; + .navbarVerticalAlign(30px); // Vertically center in navbar + margin-bottom: 0; + .search-query { + margin-bottom: 0; + padding: 4px 14px; + #font > .sans-serif(13px, normal, 1); + .border-radius(15px); // redeclare because of specificity of the type attribute + } +} + + + +// Static navbar +// ------------------------- + +.navbar-static-top { + position: static; + margin-bottom: 0; // remove 18px margin for default navbar + .navbar-inner { + .border-radius(0); + } +} + + + +// Fixed navbar +// ------------------------- + +// Shared (top/bottom) styles +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: @zindexFixedNavbar; + margin-bottom: 0; // remove 18px margin for default navbar +} +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + border-width: 0 0 1px; +} +.navbar-fixed-bottom .navbar-inner { + border-width: 1px 0 0; +} +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-left: 0; + padding-right: 0; + .border-radius(0); +} + +// Reset container width +// Required here as we reset the width earlier on and the grid mixins don't override early enough +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + #grid > .core > .span(@gridColumns); +} + +// Fixed to top +.navbar-fixed-top { + top: 0; +} +.navbar-fixed-top, +.navbar-static-top { + .navbar-inner { + .box-shadow(~"0 1px 10px rgba(0,0,0,.1)"); + } +} + +// Fixed to bottom +.navbar-fixed-bottom { + bottom: 0; + .navbar-inner { + .box-shadow(~"0 -1px 10px rgba(0,0,0,.1)"); + } +} + + + +// NAVIGATION +// ---------- + +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} +.navbar .nav.pull-right { + float: right; // redeclare due to specificity + margin-right: 0; // remove margin on float right nav +} +.navbar .nav > li { + float: left; +} + +// Links +.navbar .nav > li > a { + float: none; + // Vertically center the text given @navbarHeight + padding: ((@navbarHeight - @baseLineHeight) / 2) 15px ((@navbarHeight - @baseLineHeight) / 2); + color: @navbarLinkColor; + text-decoration: none; + text-shadow: 0 1px 0 @navbarBackgroundHighlight; +} +.navbar .nav .dropdown-toggle .caret { + margin-top: 8px; + +} + +// Hover +.navbar .nav > li > a:focus, +.navbar .nav > li > a:hover { + background-color: @navbarLinkBackgroundHover; // "transparent" is default to differentiate :hover from .active + color: @navbarLinkColorHover; + text-decoration: none; +} + +// Active nav items +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover, +.navbar .nav > .active > a:focus { + color: @navbarLinkColorActive; + text-decoration: none; + background-color: @navbarLinkBackgroundActive; + .box-shadow(inset 0 3px 8px rgba(0,0,0,.125)); +} + +// Navbar button for toggling navbar items in responsive layouts +// These definitions need to come after '.navbar .btn' +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-left: 5px; + margin-right: 5px; + .buttonBackground(darken(@navbarBackgroundHighlight, 5%), darken(@navbarBackground, 5%)); + .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075)"); +} +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + .border-radius(1px); + .box-shadow(0 1px 0 rgba(0,0,0,.25)); +} +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} + + + +// Dropdown menus +// -------------- + +// Menu position and menu carets +.navbar .nav > li > .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: @dropdownBorder; + position: absolute; + top: -7px; + left: 9px; + } + &:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid @dropdownBackground; + position: absolute; + top: -6px; + left: 10px; + } +} +// Menu position and menu caret support for dropups via extra dropup class +.navbar-fixed-bottom .nav > li > .dropdown-menu { + &:before { + border-top: 7px solid #ccc; + border-top-color: @dropdownBorder; + border-bottom: 0; + bottom: -7px; + top: auto; + } + &:after { + border-top: 6px solid @dropdownBackground; + border-bottom: 0; + bottom: -6px; + top: auto; + } +} + +// Caret should match text color on hover +.navbar .nav li.dropdown > a:hover .caret { + border-top-color: @navbarLinkColorActive; + border-bottom-color: @navbarLinkColorActive; +} + +// Remove background color from open dropdown +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + background-color: @navbarLinkBackgroundActive; + color: @navbarLinkColorActive; +} +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: @navbarLinkColor; + border-bottom-color: @navbarLinkColor; +} +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: @navbarLinkColorActive; + border-bottom-color: @navbarLinkColorActive; +} + +// Right aligned menus need alt position +.navbar .pull-right > li > .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right { + left: auto; + right: 0; + &:before { + left: auto; + right: 12px; + } + &:after { + left: auto; + right: 13px; + } + .dropdown-menu { + left: auto; + right: 100%; + margin-left: 0; + margin-right: -1px; + .border-radius(6px 0 6px 6px); + } +} + + +// Inverted navbar +// ------------------------- + +.navbar-inverse { + + .navbar-inner { + #gradient > .vertical(@navbarInverseBackgroundHighlight, @navbarInverseBackground); + border-color: @navbarInverseBorder; + } + + .brand, + .nav > li > a { + color: @navbarInverseLinkColor; + text-shadow: 0 -1px 0 rgba(0,0,0,.25); + &:hover { + color: @navbarInverseLinkColorHover; + } + } + + .brand { + color: @navbarInverseBrandColor; + } + + .navbar-text { + color: @navbarInverseText; + } + + .nav > li > a:focus, + .nav > li > a:hover { + background-color: @navbarInverseLinkBackgroundHover; + color: @navbarInverseLinkColorHover; + } + + .nav .active > a, + .nav .active > a:hover, + .nav .active > a:focus { + color: @navbarInverseLinkColorActive; + background-color: @navbarInverseLinkBackgroundActive; + } + + // Inline text links + .navbar-link { + color: @navbarInverseLinkColor; + &:hover { + color: @navbarInverseLinkColorHover; + } + } + + // Dividers in navbar + .divider-vertical { + border-left-color: @navbarInverseBackground; + border-right-color: @navbarInverseBackgroundHighlight; + } + + // Dropdowns + .nav li.dropdown.open > .dropdown-toggle, + .nav li.dropdown.active > .dropdown-toggle, + .nav li.dropdown.open.active > .dropdown-toggle { + background-color: @navbarInverseLinkBackgroundActive; + color: @navbarInverseLinkColorActive; + } + .nav li.dropdown > a:hover .caret { + border-top-color: @navbarInverseLinkColorActive; + border-bottom-color: @navbarInverseLinkColorActive; + } + .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: @navbarInverseLinkColor; + border-bottom-color: @navbarInverseLinkColor; + } + .nav li.dropdown.open > .dropdown-toggle .caret, + .nav li.dropdown.active > .dropdown-toggle .caret, + .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: @navbarInverseLinkColorActive; + border-bottom-color: @navbarInverseLinkColorActive; + } + + // Navbar search + .navbar-search { + .search-query { + color: @white; + background-color: @navbarInverseSearchBackground; + border-color: @navbarInverseSearchBorder; + .box-shadow(~"inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15)"); + .transition(none); + .placeholder(@navbarInverseSearchPlaceholderColor); + + // Focus states (we use .focused since IE7-8 and down doesn't support :focus) + &:focus, + &.focused { + padding: 5px 15px; + color: @grayDark; + text-shadow: 0 1px 0 @white; + background-color: @navbarInverseSearchBackgroundFocus; + border: 0; + .box-shadow(0 0 3px rgba(0,0,0,.15)); + outline: 0; + } + } + } + + // Navbar collapse button + .btn-navbar { + .buttonBackground(darken(@navbarInverseBackgroundHighlight, 5%), darken(@navbarInverseBackground, 5%)); + } + +} diff --git a/docs/assets/less/twbs-222/navs.less b/docs/assets/less/twbs-222/navs.less new file mode 100755 index 000000000..2d08e79da --- /dev/null +++ b/docs/assets/less/twbs-222/navs.less @@ -0,0 +1,391 @@ +// +// Navs +// -------------------------------------------------- + + +// BASE CLASS +// ---------- + +.nav { + margin-left: 0; + margin-bottom: @baseLineHeight; + list-style: none; +} + +// Make links block level +.nav > li > a { + display: block; +} +.nav > li > a:hover { + text-decoration: none; + background-color: @grayLighter; +} + +// Prevent IE8 from misplacing imgs +// See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989 +.nav > li > a > img { + max-width: none; +} + +// Redeclare pull classes because of specifity +.nav > .pull-right { + float: right; +} + +// Nav headers (for dropdowns and lists) +.nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: @baseLineHeight; + color: @grayLight; + text-shadow: 0 1px 0 rgba(255,255,255,.5); + text-transform: uppercase; +} +// Space them out when they follow another list item (link) +.nav li + .nav-header { + margin-top: 9px; +} + + + +// NAV LIST +// -------- + +.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,.5); +} +.nav-list > li > a { + padding: 3px 15px; +} +.nav-list > .active > a, +.nav-list > .active > a:hover { + color: @white; + text-shadow: 0 -1px 0 rgba(0,0,0,.2); + background-color: @linkColor; +} +.nav-list [class^="icon-"], +.nav-list [class*=" icon-"] { + margin-right: 2px; +} +// Dividers (basically an hr) within the dropdown +.nav-list .divider { + .nav-divider(); +} + + + +// TABS AND PILLS +// ------------- + +// Common styles +.nav-tabs, +.nav-pills { + .clearfix(); +} +.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; // keeps the overall height an even number +} + +// TABS +// ---- + +// Give the tabs something to sit on +.nav-tabs { + border-bottom: 1px solid #ddd; +} +// Make the list-items overlay the bottom border +.nav-tabs > li { + margin-bottom: -1px; +} +// Actual tabs (as links) +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: @baseLineHeight; + border: 1px solid transparent; + .border-radius(4px 4px 0 0); + &:hover { + border-color: @grayLighter @grayLighter #ddd; + } +} +// Active state, and it's :hover to override normal :hover +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover { + color: @gray; + background-color: @bodyBackground; + border: 1px solid #ddd; + border-bottom-color: transparent; + cursor: default; +} + + +// PILLS +// ----- + +// Links rendered as pills +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + .border-radius(5px); +} + +// Active state +.nav-pills > .active > a, +.nav-pills > .active > a:hover { + color: @white; + background-color: @linkColor; +} + + + +// STACKED NAV +// ----------- + +// Stacked tabs and pills +.nav-stacked > li { + float: none; +} +.nav-stacked > li > a { + margin-right: 0; // no need for the gap between nav items +} + +// Tabs +.nav-tabs.nav-stacked { + border-bottom: 0; +} +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + .border-radius(0); +} +.nav-tabs.nav-stacked > li:first-child > a { + .border-top-radius(4px); +} +.nav-tabs.nav-stacked > li:last-child > a { + .border-bottom-radius(4px); +} +.nav-tabs.nav-stacked > li > a:hover { + border-color: #ddd; + z-index: 2; +} + +// Pills +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; // decrease margin to match sizing of stacked tabs +} + + + +// DROPDOWNS +// --------- + +.nav-tabs .dropdown-menu { + .border-radius(0 0 6px 6px); // remove the top rounded corners here since there is a hard edge above the menu +} +.nav-pills .dropdown-menu { + .border-radius(6px); // make rounded corners match the pills +} + +// Default dropdown links +// ------------------------- +// Make carets use linkColor to start +.nav .dropdown-toggle .caret { + border-top-color: @linkColor; + border-bottom-color: @linkColor; + margin-top: 6px; +} +.nav .dropdown-toggle:hover .caret { + border-top-color: @linkColorHover; + border-bottom-color: @linkColorHover; +} +/* move down carets for tabs */ +.nav-tabs .dropdown-toggle .caret { + margin-top: 8px; +} + +// Active dropdown links +// ------------------------- +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: @gray; + border-bottom-color: @gray; +} + +// Active:hover dropdown links +// ------------------------- +.nav > .dropdown.active > a:hover { + cursor: pointer; +} + +// Open dropdowns +// ------------------------- +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover { + color: @white; + background-color: @grayLight; + border-color: @grayLight; +} +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret { + border-top-color: @white; + border-bottom-color: @white; + .opacity(100); +} + +// Dropdowns in stacked tabs +.tabs-stacked .open > a:hover { + border-color: @grayLight; +} + + + +// TABBABLE +// -------- + + +// COMMON STYLES +// ------------- + +// Clear any floats +.tabbable { + .clearfix(); +} +.tab-content { + overflow: auto; // prevent content from running below tabs +} + +// Remove border on bottom, left, right +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} + +// Show/hide tabbable areas +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} +.tab-content > .active, +.pill-content > .active { + display: block; +} + + +// BOTTOM +// ------ + +.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 { + .border-radius(0 0 4px 4px); + &: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; +} + +// LEFT & RIGHT +// ------------ + +// Common styles +.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 on the left +.tabs-left > .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; + .border-radius(4px 0 0 4px); +} +.tabs-left > .nav-tabs > li > a:hover { + border-color: @grayLighter #ddd @grayLighter @grayLighter; +} +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: @white; +} + +// Tabs on the right +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; + .border-radius(0 4px 4px 0); +} +.tabs-right > .nav-tabs > li > a:hover { + border-color: @grayLighter @grayLighter @grayLighter #ddd; +} +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: @white; +} + + + +// DISABLED STATES +// --------------- + +// Gray out text +.nav > .disabled > a { + color: @grayLight; +} +// Nuke hover effects +.nav > .disabled > a:hover { + text-decoration: none; + background-color: transparent; + cursor: default; +} diff --git a/docs/assets/less/twbs-222/pager.less b/docs/assets/less/twbs-222/pager.less new file mode 100755 index 000000000..da2425367 --- /dev/null +++ b/docs/assets/less/twbs-222/pager.less @@ -0,0 +1,41 @@ +// +// Pager pagination +// -------------------------------------------------- + + +.pager { + margin: @baseLineHeight 0; + list-style: none; + text-align: center; + .clearfix(); +} +.pager li { + display: inline; +} +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + .border-radius(15px); +} +.pager li > a:hover { + text-decoration: none; + background-color: #f5f5f5; +} +.pager .next > a, +.pager .next > span { + float: right; +} +.pager .previous > a, +.pager .previous > span { + float: left; +} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > span { + color: @grayLight; + background-color: #fff; + cursor: default; +} \ No newline at end of file diff --git a/docs/assets/less/twbs-222/pagination.less b/docs/assets/less/twbs-222/pagination.less new file mode 100755 index 000000000..e35d3f4a8 --- /dev/null +++ b/docs/assets/less/twbs-222/pagination.less @@ -0,0 +1,121 @@ +// +// Pagination (multiple pages) +// -------------------------------------------------- + +// Space out pagination from surrounding content +.pagination { + margin: @baseLineHeight 0; +} + +.pagination ul { + // Allow for text-based alignment + display: inline-block; + .ie7-inline-block(); + // Reset default ul styles + margin-left: 0; + margin-bottom: 0; + // Visuals + .border-radius(@baseBorderRadius); + .box-shadow(0 1px 2px rgba(0,0,0,.05)); +} +.pagination ul > li { + display: inline; // Remove list-style and block-level defaults +} +.pagination ul > li > a, +.pagination ul > li > span { + float: left; // Collapse white-space + padding: 4px 12px; + line-height: @baseLineHeight; + text-decoration: none; + background-color: @paginationBackground; + border: 1px solid @paginationBorder; + border-left-width: 0; +} +.pagination ul > li > a:hover, +.pagination ul > .active > a, +.pagination ul > .active > span { + background-color: @paginationActiveBackground; +} +.pagination ul > .active > a, +.pagination ul > .active > span { + color: @grayLight; + cursor: default; +} +.pagination ul > .disabled > span, +.pagination ul > .disabled > a, +.pagination ul > .disabled > a:hover { + color: @grayLight; + background-color: transparent; + cursor: default; +} +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { + border-left-width: 1px; + .border-left-radius(@baseBorderRadius); +} +.pagination ul > li:last-child > a, +.pagination ul > li:last-child > span { + .border-right-radius(@baseBorderRadius); +} + + +// Alignment +// -------------------------------------------------- + +.pagination-centered { + text-align: center; +} +.pagination-right { + text-align: right; +} + + +// Sizing +// -------------------------------------------------- + +// Large +.pagination-large { + ul > li > a, + ul > li > span { + padding: @paddingLarge; + font-size: @fontSizeLarge; + } + ul > li:first-child > a, + ul > li:first-child > span { + .border-left-radius(@borderRadiusLarge); + } + ul > li:last-child > a, + ul > li:last-child > span { + .border-right-radius(@borderRadiusLarge); + } +} + +// Small and mini +.pagination-mini, +.pagination-small { + ul > li:first-child > a, + ul > li:first-child > span { + .border-left-radius(@borderRadiusSmall); + } + ul > li:last-child > a, + ul > li:last-child > span { + .border-right-radius(@borderRadiusSmall); + } +} + +// Small +.pagination-small { + ul > li > a, + ul > li > span { + padding: @paddingSmall; + font-size: @fontSizeSmall; + } +} +// Mini +.pagination-mini { + ul > li > a, + ul > li > span { + padding: @paddingMini; + font-size: @fontSizeMini; + } +} diff --git a/docs/assets/less/twbs-222/popovers.less b/docs/assets/less/twbs-222/popovers.less new file mode 100755 index 000000000..b5b2a7eb5 --- /dev/null +++ b/docs/assets/less/twbs-222/popovers.less @@ -0,0 +1,129 @@ +// +// Popovers +// -------------------------------------------------- + + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: @zindexPopover; + display: none; + width: 236px; + padding: 1px; + text-align: left; // Reset given new insertion method + background-color: @popoverBackground; + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0,0,0,.2); + .border-radius(6px); + .box-shadow(0 5px 10px rgba(0,0,0,.2)); + + // Overrides for proper insertion + white-space: normal; + + // Offset the popover to account for the popover arrow + &.top { margin-top: -10px; } + &.right { margin-left: 10px; } + &.bottom { margin-top: 10px; } + &.left { margin-left: -10px; } +} + +.popover-title { + margin: 0; // reset heading margin + padding: 8px 14px; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: @popoverTitleBackground; + border-bottom: 1px solid darken(@popoverTitleBackground, 5%); + .border-radius(5px 5px 0 0); +} + +.popover-content { + padding: 9px 14px; +} + +// Arrows +// +// .arrow is outer, .arrow:after is inner + +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover .arrow { + border-width: @popoverArrowOuterWidth; +} +.popover .arrow:after { + border-width: @popoverArrowWidth; + content: ""; +} + +.popover { + &.top .arrow { + left: 50%; + margin-left: -@popoverArrowOuterWidth; + border-bottom-width: 0; + border-top-color: #999; // IE8 fallback + border-top-color: @popoverArrowOuterColor; + bottom: -@popoverArrowOuterWidth; + &:after { + bottom: 1px; + margin-left: -@popoverArrowWidth; + border-bottom-width: 0; + border-top-color: @popoverArrowColor; + } + } + &.right .arrow { + top: 50%; + left: -@popoverArrowOuterWidth; + margin-top: -@popoverArrowOuterWidth; + border-left-width: 0; + border-right-color: #999; // IE8 fallback + border-right-color: @popoverArrowOuterColor; + &:after { + left: 1px; + bottom: -@popoverArrowWidth; + border-left-width: 0; + border-right-color: @popoverArrowColor; + } + } + &.bottom .arrow { + left: 50%; + margin-left: -@popoverArrowOuterWidth; + border-top-width: 0; + border-bottom-color: #999; // IE8 fallback + border-bottom-color: @popoverArrowOuterColor; + top: -@popoverArrowOuterWidth; + &:after { + top: 1px; + margin-left: -@popoverArrowWidth; + border-top-width: 0; + border-bottom-color: @popoverArrowColor; + } + } + + &.left .arrow { + top: 50%; + right: -@popoverArrowOuterWidth; + margin-top: -@popoverArrowOuterWidth; + border-right-width: 0; + border-left-color: #999; // IE8 fallback + border-left-color: @popoverArrowOuterColor; + &:after { + right: 1px; + border-right-width: 0; + border-left-color: @popoverArrowColor; + bottom: -@popoverArrowWidth; + } + } + +} diff --git a/docs/assets/less/twbs-222/progress-bars.less b/docs/assets/less/twbs-222/progress-bars.less new file mode 100755 index 000000000..5e0c3dda0 --- /dev/null +++ b/docs/assets/less/twbs-222/progress-bars.less @@ -0,0 +1,122 @@ +// +// Progress bars +// -------------------------------------------------- + + +// ANIMATIONS +// ---------- + +// Webkit +@-webkit-keyframes progress-bar-stripes { + from { background-position: 40px 0; } + to { background-position: 0 0; } +} + +// Firefox +@-moz-keyframes progress-bar-stripes { + from { background-position: 40px 0; } + to { background-position: 0 0; } +} + +// IE9 +@-ms-keyframes progress-bar-stripes { + from { background-position: 40px 0; } + to { background-position: 0 0; } +} + +// Opera +@-o-keyframes progress-bar-stripes { + from { background-position: 0 0; } + to { background-position: 40px 0; } +} + +// Spec +@keyframes progress-bar-stripes { + from { background-position: 40px 0; } + to { background-position: 0 0; } +} + + + +// THE BARS +// -------- + +// Outer container +.progress { + overflow: hidden; + height: @baseLineHeight; + margin-bottom: @baseLineHeight; + #gradient > .vertical(#f5f5f5, #f9f9f9); + .box-shadow(inset 0 1px 2px rgba(0,0,0,.1)); + .border-radius(@baseBorderRadius); +} + +// Bar of progress +.progress .bar { + width: 0%; + height: 100%; + color: @white; + float: left; + font-size: 12px; + text-align: center; + text-shadow: 0 -1px 0 rgba(0,0,0,.25); + #gradient > .vertical(#149bdf, #0480be); + .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)); + .box-sizing(border-box); + .transition(width .6s ease); +} +.progress .bar + .bar { + .box-shadow(~"inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15)"); +} + +// Striped bars +.progress-striped .bar { + #gradient > .striped(#149bdf); + .background-size(40px 40px); +} + +// Call animation for the active one +.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; +} + + + +// COLORS +// ------ + +// Danger (red) +.progress-danger .bar, .progress .bar-danger { + #gradient > .vertical(#ee5f5b, #c43c35); +} +.progress-danger.progress-striped .bar, .progress-striped .bar-danger { + #gradient > .striped(#ee5f5b); +} + +// Success (green) +.progress-success .bar, .progress .bar-success { + #gradient > .vertical(#62c462, #57a957); +} +.progress-success.progress-striped .bar, .progress-striped .bar-success { + #gradient > .striped(#62c462); +} + +// Info (teal) +.progress-info .bar, .progress .bar-info { + #gradient > .vertical(#5bc0de, #339bb9); +} +.progress-info.progress-striped .bar, .progress-striped .bar-info { + #gradient > .striped(#5bc0de); +} + +// Warning (orange) +.progress-warning .bar, .progress .bar-warning { + #gradient > .vertical(lighten(@orange, 15%), @orange); +} +.progress-warning.progress-striped .bar, .progress-striped .bar-warning { + #gradient > .striped(lighten(@orange, 15%)); +} diff --git a/docs/assets/less/twbs-222/reset.less b/docs/assets/less/twbs-222/reset.less new file mode 100755 index 000000000..4806bd5e5 --- /dev/null +++ b/docs/assets/less/twbs-222/reset.less @@ -0,0 +1,216 @@ +// +// Reset CSS +// Adapted from http://github.com/necolas/normalize.css +// -------------------------------------------------- + + +// Display in IE6-9 and FF3 +// ------------------------- + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +// Display block in IE6-9 and FF3 +// ------------------------- + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +// Prevents modern browsers from displaying 'audio' without controls +// ------------------------- + +audio:not([controls]) { + display: none; +} + +// Base settings +// ------------------------- + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +// Focus states +a:focus { + .tab-focus(); +} +// Hover & Active +a:hover, +a:active { + outline: 0; +} + +// Prevents sub and sup affecting line-height in all browsers +// ------------------------- + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} + +// Img border in a's and image quality +// ------------------------- + +img { + /* Responsive images (ensure images don't scale beyond their parents) */ + max-width: 100%; /* Part 1: Set a maxium relative to the parent */ + width: auto\9; /* IE7-8 need help adjusting responsive images */ + height: auto; /* Part 2: Scale the height according to the width, otherwise you get stretching */ + + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} + +// Prevent max-width from affecting Google Maps +#map_canvas img, +.google-maps img { + max-width: none; +} + +// Forms +// ------------------------- + +// Font size in all browsers, margin changes, misc consistency +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} +button, +input { + *overflow: visible; // Inner spacing ie IE6/7 + line-height: normal; // FF3/4 have !important on line-height in UA stylesheet +} +button::-moz-focus-inner, +input::-moz-focus-inner { // Inner padding and border oddities in FF3/4 + padding: 0; + border: 0; +} +button, +html input[type="button"], // Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; // Corrects inability to style clickable `input` types in iOS. + cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others. +} +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others. +} +input[type="search"] { // Appearance in Safari/Chrome + .box-sizing(content-box); + -webkit-appearance: textfield; +} +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5 +} +textarea { + overflow: auto; // Remove vertical scrollbar in IE6-9 + vertical-align: top; // Readability and alignment cross-browser +} + + +// Printing +// ------------------------- +// Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css + +@media print { + + * { + text-shadow: none !important; + color: #000 !important; // Black prints faster: h5bp.com/s + background: transparent !important; + box-shadow: none !important; + } + + a, + a:visited { + text-decoration: underline; + } + + a[href]:after { + content: " (" attr(href) ")"; + } + + abbr[title]:after { + content: " (" attr(title) ")"; + } + + // Don't show links for images, or javascript/internal links + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + + thead { + display: table-header-group; // h5bp.com/t + } + + tr, + img { + page-break-inside: avoid; + } + + img { + max-width: 100% !important; + } + + @page { + margin: 0.5cm; + } + + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + + h2, + h3 { + page-break-after: avoid; + } +} diff --git a/docs/assets/less/twbs-222/responsive-1200px-min.less b/docs/assets/less/twbs-222/responsive-1200px-min.less new file mode 100755 index 000000000..4f35ba6ca --- /dev/null +++ b/docs/assets/less/twbs-222/responsive-1200px-min.less @@ -0,0 +1,28 @@ +// +// Responsive: Large desktop and up +// -------------------------------------------------- + + +@media (min-width: 1200px) { + + // Fixed grid + #grid > .core(@gridColumnWidth1200, @gridGutterWidth1200); + + // Fluid grid + #grid > .fluid(@fluidGridColumnWidth1200, @fluidGridGutterWidth1200); + + // Input grid + #grid > .input(@gridColumnWidth1200, @gridGutterWidth1200); + + // Thumbnails + .thumbnails { + margin-left: -@gridGutterWidth1200; + } + .thumbnails > li { + margin-left: @gridGutterWidth1200; + } + .row-fluid .thumbnails { + margin-left: 0; + } + +} diff --git a/docs/assets/less/twbs-222/responsive-767px-max.less b/docs/assets/less/twbs-222/responsive-767px-max.less new file mode 100755 index 000000000..1d5c1239c --- /dev/null +++ b/docs/assets/less/twbs-222/responsive-767px-max.less @@ -0,0 +1,193 @@ +// +// Responsive: Landscape phone to desktop/tablet +// -------------------------------------------------- + + +@media (max-width: 767px) { + + // Padding to set content in a bit + body { + padding-left: 20px; + padding-right: 20px; + } + // Negative indent the now static "fixed" navbar + .navbar-fixed-top, + .navbar-fixed-bottom, + .navbar-static-top { + margin-left: -20px; + margin-right: -20px; + } + // Remove padding on container given explicit padding set on body + .container-fluid { + padding: 0; + } + + // TYPOGRAPHY + // ---------- + // Reset horizontal dl + .dl-horizontal { + dt { + float: none; + clear: none; + width: auto; + text-align: left; + } + dd { + margin-left: 0; + } + } + + // GRID & CONTAINERS + // ----------------- + // Remove width from containers + .container { + width: auto; + } + // Fluid rows + .row-fluid { + width: 100%; + } + // Undo negative margin on rows and thumbnails + .row, + .thumbnails { + margin-left: 0; + } + .thumbnails > li { + float: none; + margin-left: 0; // Reset the default margin for all li elements when no .span* classes are present + } + // Make all grid-sized elements block level again + [class*="span"], + .uneditable-input[class*="span"], // Makes uneditable inputs full-width when using grid sizing + .row-fluid [class*="span"] { + float: none; + display: block; + width: 100%; + margin-left: 0; + .box-sizing(border-box); + } + .span12, + .row-fluid .span12 { + width: 100%; + .box-sizing(border-box); + } + .row-fluid [class*="offset"]:first-child { + margin-left: 0; + } + + // FORM FIELDS + // ----------- + // Make span* classes full width + .input-large, + .input-xlarge, + .input-xxlarge, + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + .input-block-level(); + } + // But don't let it screw up prepend/append inputs + .input-prepend input, + .input-append input, + .input-prepend input[class*="span"], + .input-append input[class*="span"] { + display: inline-block; // redeclare so they don't wrap to new lines + width: auto; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 0; + } + + // Modals + .modal { + position: fixed; + top: 20px; + left: 20px; + right: 20px; + width: auto; + margin: 0; + &.fade { top: -100px; } + &.fade.in { top: 20px; } + } + +} + + + +// UP TO LANDSCAPE PHONE +// --------------------- + +@media (max-width: 480px) { + + // Smooth out the collapsing/expanding nav + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); // activate the GPU + } + + // Block level the page header small tag for readability + .page-header h1 small { + display: block; + line-height: @baseLineHeight; + } + + // Update checkboxes for iOS + input[type="checkbox"], + input[type="radio"] { + border: 1px solid #ccc; + } + + // Remove the horizontal form styles + .form-horizontal { + .control-label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + // Move over all input controls and content + .controls { + margin-left: 0; + } + // Move the options list down to align with labels + .control-list { + padding-top: 0; // has to be padding because margin collaspes + } + // Move over buttons in .form-actions to align with .controls + .form-actions { + padding-left: 10px; + padding-right: 10px; + } + } + + // Medias + // Reset float and spacing to stack + .media .pull-left, + .media .pull-right { + float: none; + display: block; + margin-bottom: 10px; + } + // Remove side margins since we stack instead of indent + .media-object { + margin-right: 0; + margin-left: 0; + } + + // Modals + .modal { + top: 10px; + left: 10px; + right: 10px; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + + // Carousel + .carousel-caption { + position: static; + } + +} diff --git a/docs/assets/less/twbs-222/responsive-768px-979px.less b/docs/assets/less/twbs-222/responsive-768px-979px.less new file mode 100755 index 000000000..8e8c486a0 --- /dev/null +++ b/docs/assets/less/twbs-222/responsive-768px-979px.less @@ -0,0 +1,19 @@ +// +// Responsive: Tablet to desktop +// -------------------------------------------------- + + +@media (min-width: 768px) and (max-width: 979px) { + + // Fixed grid + #grid > .core(@gridColumnWidth768, @gridGutterWidth768); + + // Fluid grid + #grid > .fluid(@fluidGridColumnWidth768, @fluidGridGutterWidth768); + + // Input grid + #grid > .input(@gridColumnWidth768, @gridGutterWidth768); + + // No need to reset .thumbnails here since it's the same @gridGutterWidth + +} diff --git a/docs/assets/less/twbs-222/responsive-navbar.less b/docs/assets/less/twbs-222/responsive-navbar.less new file mode 100755 index 000000000..2a0b0c057 --- /dev/null +++ b/docs/assets/less/twbs-222/responsive-navbar.less @@ -0,0 +1,185 @@ +// +// Responsive: Navbar +// -------------------------------------------------- + + +// TABLETS AND BELOW +// ----------------- +@media (max-width: @navbarCollapseWidth) { + + // UNFIX THE TOPBAR + // ---------------- + // Remove any padding from the body + body { + padding-top: 0; + } + // Unfix the navbars + .navbar-fixed-top, + .navbar-fixed-bottom { + position: static; + } + .navbar-fixed-top { + margin-bottom: @baseLineHeight; + } + .navbar-fixed-bottom { + margin-top: @baseLineHeight; + } + .navbar-fixed-top .navbar-inner, + .navbar-fixed-bottom .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + // Account for brand name + .navbar .brand { + padding-left: 10px; + padding-right: 10px; + margin: 0 0 0 -5px; + } + + // COLLAPSIBLE NAVBAR + // ------------------ + // Nav collapse clears brand + .nav-collapse { + clear: both; + } + // Block-level the nav + .nav-collapse .nav { + float: none; + margin: 0 0 (@baseLineHeight / 2); + } + .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: @navbarText; + text-shadow: none; + } + // Nav and dropdown links in navbar + .nav-collapse .nav > li > a, + .nav-collapse .dropdown-menu a { + padding: 9px 15px; + font-weight: bold; + color: @navbarLinkColor; + .border-radius(3px); + } + // Buttons + .nav-collapse .btn { + padding: 4px 10px 4px; + font-weight: normal; + .border-radius(@baseBorderRadius); + } + .nav-collapse .dropdown-menu li + li a { + margin-bottom: 2px; + } + .nav-collapse .nav > li > a:hover, + .nav-collapse .dropdown-menu a:hover { + background-color: @navbarBackground; + } + .navbar-inverse .nav-collapse .nav > li > a, + .navbar-inverse .nav-collapse .dropdown-menu a { + color: @navbarInverseLinkColor; + } + .navbar-inverse .nav-collapse .nav > li > a:hover, + .navbar-inverse .nav-collapse .dropdown-menu a:hover { + background-color: @navbarInverseBackground; + } + // Buttons in the navbar + .nav-collapse.in .btn-group { + margin-top: 5px; + padding: 0; + } + // Dropdowns in the navbar + .nav-collapse .dropdown-menu { + position: static; + top: auto; + left: auto; + float: none; + display: none; + max-width: none; + margin: 0 15px; + padding: 0; + background-color: transparent; + border: none; + .border-radius(0); + .box-shadow(none); + } + .nav-collapse .open > .dropdown-menu { + display: block; + } + + .nav-collapse .dropdown-menu:before, + .nav-collapse .dropdown-menu:after { + display: none; + } + .nav-collapse .dropdown-menu .divider { + display: none; + } + .nav-collapse .nav > li > .dropdown-menu { + &:before, + &:after { + display: none; + } + } + // Forms in navbar + .nav-collapse .navbar-form, + .nav-collapse .navbar-search { + float: none; + padding: (@baseLineHeight / 2) 15px; + margin: (@baseLineHeight / 2) 0; + border-top: 1px solid @navbarBackground; + border-bottom: 1px solid @navbarBackground; + .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1)"); + } + .navbar-inverse .nav-collapse .navbar-form, + .navbar-inverse .nav-collapse .navbar-search { + border-top-color: @navbarInverseBackground; + border-bottom-color: @navbarInverseBackground; + } + // Pull right (secondary) nav content + .navbar .nav-collapse .nav.pull-right { + float: none; + margin-left: 0; + } + // Hide everything in the navbar save .brand and toggle button */ + .nav-collapse, + .nav-collapse.collapse { + overflow: hidden; + height: 0; + } + // Navbar button + .navbar .btn-navbar { + display: block; + } + + // STATIC NAVBAR + // ------------- + .navbar-static .navbar-inner { + padding-left: 10px; + padding-right: 10px; + } + + +} + + +// DEFAULT DESKTOP +// --------------- + +@media (min-width: @navbarCollapseDesktopWidth) { + + // Required to make the collapsing navbar work on regular desktops + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + } + +} diff --git a/docs/assets/less/twbs-222/responsive-utilities.less b/docs/assets/less/twbs-222/responsive-utilities.less new file mode 100755 index 000000000..2c3f6c15f --- /dev/null +++ b/docs/assets/less/twbs-222/responsive-utilities.less @@ -0,0 +1,43 @@ +// +// Responsive: Utility classes +// -------------------------------------------------- + + +// Hide from screenreaders and browsers +// Credit: HTML5 Boilerplate +.hidden { + display: none; + visibility: hidden; +} + +// Visibility utilities + +// For desktops +.visible-phone { display: none !important; } +.visible-tablet { display: none !important; } +.hidden-phone { } +.hidden-tablet { } +.hidden-desktop { display: none !important; } +.visible-desktop { display: inherit !important; } + +// Tablets & small desktops only +@media (min-width: 768px) and (max-width: 979px) { + // Hide everything else + .hidden-desktop { display: inherit !important; } + .visible-desktop { display: none !important ; } + // Show + .visible-tablet { display: inherit !important; } + // Hide + .hidden-tablet { display: none !important; } +} + +// Phones only +@media (max-width: 767px) { + // Hide everything else + .hidden-desktop { display: inherit !important; } + .visible-desktop { display: none !important; } + // Show + .visible-phone { display: inherit !important; } // Use inherit to restore previous behavior + // Hide + .hidden-phone { display: none !important; } +} diff --git a/docs/assets/less/twbs-222/responsive.less b/docs/assets/less/twbs-222/responsive.less new file mode 100755 index 000000000..7cfaf80b9 --- /dev/null +++ b/docs/assets/less/twbs-222/responsive.less @@ -0,0 +1,57 @@ +/*! + * Bootstrap Responsive v2.2.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + + +// Responsive.less +// For phone and tablet devices +// ------------------------------------------------------------- + + +// IE10 Metro responsive +// Required for Windows 8 Metro split-screen snapping with IE10 +// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ + +@-ms-viewport{ + width: device-width; +} + + +// REPEAT VARIABLES & MIXINS +// ------------------------- +// Required since we compile the responsive stuff separately + +@import "variables.less"; // Modify this for custom colors, font-sizes, etc +@import "mixins.less"; + + +// RESPONSIVE CLASSES +// ------------------ + +@import "responsive-utilities.less"; + + +// MEDIA QUERIES +// ------------------ + +// Large desktops +@import "responsive-1200px-min.less"; + +// Tablets to regular desktops +@import "responsive-768px-979px.less"; + +// Phones to portrait tablets and narrow desktops +@import "responsive-767px-max.less"; + + +// RESPONSIVE NAVBAR +// ------------------ + +// From 979px and below, show a button to toggle navbar contents +@import "responsive-navbar.less"; diff --git a/docs/assets/less/twbs-222/scaffolding.less b/docs/assets/less/twbs-222/scaffolding.less new file mode 100755 index 000000000..7a7496a64 --- /dev/null +++ b/docs/assets/less/twbs-222/scaffolding.less @@ -0,0 +1,52 @@ +// +// Scaffolding +// -------------------------------------------------- + + +// Body reset +// ------------------------- + +body { + margin: 0; + font-family: @baseFontFamily; + font-size: @baseFontSize; + line-height: @baseLineHeight; + color: @textColor; + background-color: @bodyBackground; +} + + +// Links +// ------------------------- + +a { + color: @linkColor; + text-decoration: none; +} +a:hover { + color: @linkColorHover; + text-decoration: underline; +} + + +// Images +// ------------------------- + +// Rounded corners +.img-rounded { + .border-radius(6px); +} + +// Add polaroid-esque trim +.img-polaroid { + padding: 4px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0,0,0,.2); + .box-shadow(0 1px 3px rgba(0,0,0,.1)); +} + +// Perfect circle +.img-circle { + .border-radius(500px); // crank the border-radius so it works with most reasonably sized images +} diff --git a/docs/assets/less/twbs-222/sprites.less b/docs/assets/less/twbs-222/sprites.less new file mode 100755 index 000000000..9cd2ae3bf --- /dev/null +++ b/docs/assets/less/twbs-222/sprites.less @@ -0,0 +1,193 @@ +// +// Sprites +// -------------------------------------------------- + + +// ICONS +// ----- + +// All icons receive the styles of the tag with a base class +// of .i and are then given a unique class to add width, height, +// and background-position. Your resulting HTML will look like +// . + +// For the white version of the icons, just add the .icon-white class: +// + +[class^="icon-"], +[class*=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + .ie7-restore-right-whitespace(); + line-height: 14px; + vertical-align: text-top; + background-image: url("@{iconSpritePath}"); + background-position: 14px 14px; + background-repeat: no-repeat; + margin-top: 1px; +} + +/* White icons with optional class, or on hover/active states of certain elements */ +.icon-white, +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"], +.dropdown-submenu:hover > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"] { + background-image: url("@{iconWhiteSpritePath}"); +} + +.icon-glass { background-position: 0 0; } +.icon-music { background-position: -24px 0; } +.icon-search { background-position: -48px 0; } +.icon-envelope { background-position: -72px 0; } +.icon-heart { background-position: -96px 0; } +.icon-star { background-position: -120px 0; } +.icon-star-empty { background-position: -144px 0; } +.icon-user { background-position: -168px 0; } +.icon-film { background-position: -192px 0; } +.icon-th-large { background-position: -216px 0; } +.icon-th { background-position: -240px 0; } +.icon-th-list { background-position: -264px 0; } +.icon-ok { background-position: -288px 0; } +.icon-remove { background-position: -312px 0; } +.icon-zoom-in { background-position: -336px 0; } +.icon-zoom-out { background-position: -360px 0; } +.icon-off { background-position: -384px 0; } +.icon-signal { background-position: -408px 0; } +.icon-cog { background-position: -432px 0; } +.icon-trash { background-position: -456px 0; } + +.icon-home { background-position: 0 -24px; } +.icon-file { background-position: -24px -24px; } +.icon-time { background-position: -48px -24px; } +.icon-road { background-position: -72px -24px; } +.icon-download-alt { background-position: -96px -24px; } +.icon-download { background-position: -120px -24px; } +.icon-upload { background-position: -144px -24px; } +.icon-inbox { background-position: -168px -24px; } +.icon-play-circle { background-position: -192px -24px; } +.icon-repeat { background-position: -216px -24px; } +.icon-refresh { background-position: -240px -24px; } +.icon-list-alt { background-position: -264px -24px; } +.icon-lock { background-position: -287px -24px; } // 1px off +.icon-flag { background-position: -312px -24px; } +.icon-headphones { background-position: -336px -24px; } +.icon-volume-off { background-position: -360px -24px; } +.icon-volume-down { background-position: -384px -24px; } +.icon-volume-up { background-position: -408px -24px; } +.icon-qrcode { background-position: -432px -24px; } +.icon-barcode { background-position: -456px -24px; } + +.icon-tag { background-position: 0 -48px; } +.icon-tags { background-position: -25px -48px; } // 1px off +.icon-book { background-position: -48px -48px; } +.icon-bookmark { background-position: -72px -48px; } +.icon-print { background-position: -96px -48px; } +.icon-camera { background-position: -120px -48px; } +.icon-font { background-position: -144px -48px; } +.icon-bold { background-position: -167px -48px; } // 1px off +.icon-italic { background-position: -192px -48px; } +.icon-text-height { background-position: -216px -48px; } +.icon-text-width { background-position: -240px -48px; } +.icon-align-left { background-position: -264px -48px; } +.icon-align-center { background-position: -288px -48px; } +.icon-align-right { background-position: -312px -48px; } +.icon-align-justify { background-position: -336px -48px; } +.icon-list { background-position: -360px -48px; } +.icon-indent-left { background-position: -384px -48px; } +.icon-indent-right { background-position: -408px -48px; } +.icon-facetime-video { background-position: -432px -48px; } +.icon-picture { background-position: -456px -48px; } + +.icon-pencil { background-position: 0 -72px; } +.icon-map-marker { background-position: -24px -72px; } +.icon-adjust { background-position: -48px -72px; } +.icon-tint { background-position: -72px -72px; } +.icon-edit { background-position: -96px -72px; } +.icon-share { background-position: -120px -72px; } +.icon-check { background-position: -144px -72px; } +.icon-move { background-position: -168px -72px; } +.icon-step-backward { background-position: -192px -72px; } +.icon-fast-backward { background-position: -216px -72px; } +.icon-backward { background-position: -240px -72px; } +.icon-play { background-position: -264px -72px; } +.icon-pause { background-position: -288px -72px; } +.icon-stop { background-position: -312px -72px; } +.icon-forward { background-position: -336px -72px; } +.icon-fast-forward { background-position: -360px -72px; } +.icon-step-forward { background-position: -384px -72px; } +.icon-eject { background-position: -408px -72px; } +.icon-chevron-left { background-position: -432px -72px; } +.icon-chevron-right { background-position: -456px -72px; } + +.icon-plus-sign { background-position: 0 -96px; } +.icon-minus-sign { background-position: -24px -96px; } +.icon-remove-sign { background-position: -48px -96px; } +.icon-ok-sign { background-position: -72px -96px; } +.icon-question-sign { background-position: -96px -96px; } +.icon-info-sign { background-position: -120px -96px; } +.icon-screenshot { background-position: -144px -96px; } +.icon-remove-circle { background-position: -168px -96px; } +.icon-ok-circle { background-position: -192px -96px; } +.icon-ban-circle { background-position: -216px -96px; } +.icon-arrow-left { background-position: -240px -96px; } +.icon-arrow-right { background-position: -264px -96px; } +.icon-arrow-up { background-position: -289px -96px; } // 1px off +.icon-arrow-down { background-position: -312px -96px; } +.icon-share-alt { background-position: -336px -96px; } +.icon-resize-full { background-position: -360px -96px; } +.icon-resize-small { background-position: -384px -96px; } +.icon-plus { background-position: -408px -96px; } +.icon-minus { background-position: -433px -96px; } +.icon-asterisk { background-position: -456px -96px; } + +.icon-exclamation-sign { background-position: 0 -120px; } +.icon-gift { background-position: -24px -120px; } +.icon-leaf { background-position: -48px -120px; } +.icon-fire { background-position: -72px -120px; } +.icon-eye-open { background-position: -96px -120px; } +.icon-eye-close { background-position: -120px -120px; } +.icon-warning-sign { background-position: -144px -120px; } +.icon-plane { background-position: -168px -120px; } +.icon-calendar { background-position: -192px -120px; } +.icon-random { background-position: -216px -120px; width: 16px; } +.icon-comment { background-position: -240px -120px; } +.icon-magnet { background-position: -264px -120px; } +.icon-chevron-up { background-position: -288px -120px; } +.icon-chevron-down { background-position: -313px -119px; } // 1px, 1px off +.icon-retweet { background-position: -336px -120px; } +.icon-shopping-cart { background-position: -360px -120px; } +.icon-folder-close { background-position: -384px -120px; } +.icon-folder-open { background-position: -408px -120px; width: 16px; } +.icon-resize-vertical { background-position: -432px -119px; } // 1px, 1px off +.icon-resize-horizontal { background-position: -456px -118px; } // 1px, 2px off + +.icon-hdd { background-position: 0 -144px; } +.icon-bullhorn { background-position: -24px -144px; } +.icon-bell { background-position: -48px -144px; } +.icon-certificate { background-position: -72px -144px; } +.icon-thumbs-up { background-position: -96px -144px; } +.icon-thumbs-down { background-position: -120px -144px; } +.icon-hand-right { background-position: -144px -144px; } +.icon-hand-left { background-position: -168px -144px; } +.icon-hand-up { background-position: -192px -144px; } +.icon-hand-down { background-position: -216px -144px; } +.icon-circle-arrow-right { background-position: -240px -144px; } +.icon-circle-arrow-left { background-position: -264px -144px; } +.icon-circle-arrow-up { background-position: -288px -144px; } +.icon-circle-arrow-down { background-position: -312px -144px; } +.icon-globe { background-position: -336px -144px; } +.icon-wrench { background-position: -360px -144px; } +.icon-tasks { background-position: -384px -144px; } +.icon-filter { background-position: -408px -144px; } +.icon-briefcase { background-position: -432px -144px; } +.icon-fullscreen { background-position: -456px -144px; } diff --git a/docs/assets/less/twbs-222/tables.less b/docs/assets/less/twbs-222/tables.less new file mode 100755 index 000000000..f3b9967f0 --- /dev/null +++ b/docs/assets/less/twbs-222/tables.less @@ -0,0 +1,237 @@ +// +// Tables +// -------------------------------------------------- + + +// BASE TABLES +// ----------------- + +table { + max-width: 100%; + background-color: @tableBackground; + border-collapse: collapse; + border-spacing: 0; +} + +// BASELINE STYLES +// --------------- + +.table { + width: 100%; + margin-bottom: @baseLineHeight; + // Cells + th, + td { + padding: 8px; + line-height: @baseLineHeight; + text-align: left; + vertical-align: top; + border-top: 1px solid @tableBorder; + } + th { + font-weight: bold; + } + // Bottom align for column headings + thead th { + vertical-align: bottom; + } + // Remove top border from thead by default + caption + thead tr:first-child th, + caption + thead tr:first-child td, + colgroup + thead tr:first-child th, + colgroup + thead tr:first-child td, + thead:first-child tr:first-child th, + thead:first-child tr:first-child td { + border-top: 0; + } + // Account for multiple tbody instances + tbody + tbody { + border-top: 2px solid @tableBorder; + } + + // Nesting + .table { + background-color: @bodyBackground; + } +} + + + +// CONDENSED TABLE W/ HALF PADDING +// ------------------------------- + +.table-condensed { + th, + td { + padding: 4px 5px; + } +} + + +// BORDERED VERSION +// ---------------- + +.table-bordered { + border: 1px solid @tableBorder; + border-collapse: separate; // Done so we can round those corners! + *border-collapse: collapse; // IE7 can't round corners anyway + border-left: 0; + .border-radius(@baseBorderRadius); + th, + td { + border-left: 1px solid @tableBorder; + } + // Prevent a double border + caption + thead tr:first-child th, + caption + tbody tr:first-child th, + caption + tbody tr:first-child td, + colgroup + thead tr:first-child th, + colgroup + tbody tr:first-child th, + colgroup + tbody tr:first-child td, + thead:first-child tr:first-child th, + tbody:first-child tr:first-child th, + tbody:first-child tr:first-child td { + border-top: 0; + } + // For first th or td in the first row in the first thead or tbody + thead:first-child tr:first-child > th:first-child, + tbody:first-child tr:first-child > td:first-child { + .border-top-left-radius(@baseBorderRadius); + } + thead:first-child tr:first-child > th:last-child, + tbody:first-child tr:first-child > td:last-child { + .border-top-right-radius(@baseBorderRadius); + } + // For first th or td in the last row in the last thead or tbody + thead:last-child tr:last-child > th:first-child, + tbody:last-child tr:last-child > td:first-child, + tfoot:last-child tr:last-child > td:first-child { + .border-bottom-left-radius(@baseBorderRadius); + } + thead:last-child tr:last-child > th:last-child, + tbody:last-child tr:last-child > td:last-child, + tfoot:last-child tr:last-child > td:last-child { + .border-bottom-right-radius(@baseBorderRadius); + } + + // Clear border-radius for first and last td in the last row in the last tbody for table with tfoot + tfoot + tbody:last-child tr:last-child td:first-child { + .border-bottom-left-radius(0); + } + tfoot + tbody:last-child tr:last-child td:last-child { + .border-bottom-right-radius(0); + } + + + // Special fixes to round the left border on the first td/th + caption + thead tr:first-child th:first-child, + caption + tbody tr:first-child td:first-child, + colgroup + thead tr:first-child th:first-child, + colgroup + tbody tr:first-child td:first-child { + .border-top-left-radius(@baseBorderRadius); + } + caption + thead tr:first-child th:last-child, + caption + tbody tr:first-child td:last-child, + colgroup + thead tr:first-child th:last-child, + colgroup + tbody tr:first-child td:last-child { + .border-top-right-radius(@baseBorderRadius); + } + +} + + + + +// ZEBRA-STRIPING +// -------------- + +// Default zebra-stripe styles (alternating gray and transparent backgrounds) +.table-striped { + tbody { + > tr:nth-child(odd) > td, + > tr:nth-child(odd) > th { + background-color: @tableBackgroundAccent; + } + } +} + + +// HOVER EFFECT +// ------------ +// Placed here since it has to come after the potential zebra striping +.table-hover { + tbody { + tr:hover td, + tr:hover th { + background-color: @tableBackgroundHover; + } + } +} + + +// TABLE CELL SIZING +// ----------------- + +// Reset default grid behavior +table td[class*="span"], +table th[class*="span"], +.row-fluid table td[class*="span"], +.row-fluid table th[class*="span"] { + display: table-cell; + float: none; // undo default grid column styles + margin-left: 0; // undo default grid column styles +} + +// Change the column widths to account for td/th padding +.table td, +.table th { + &.span1 { .tableColumns(1); } + &.span2 { .tableColumns(2); } + &.span3 { .tableColumns(3); } + &.span4 { .tableColumns(4); } + &.span5 { .tableColumns(5); } + &.span6 { .tableColumns(6); } + &.span7 { .tableColumns(7); } + &.span8 { .tableColumns(8); } + &.span9 { .tableColumns(9); } + &.span10 { .tableColumns(10); } + &.span11 { .tableColumns(11); } + &.span12 { .tableColumns(12); } +} + + + +// TABLE BACKGROUNDS +// ----------------- +// Exact selectors below required to override .table-striped + +.table tbody tr { + &.success td { + background-color: @successBackground; + } + &.error td { + background-color: @errorBackground; + } + &.warning td { + background-color: @warningBackground; + } + &.info td { + background-color: @infoBackground; + } +} + +// Hover states for .table-hover +.table-hover tbody tr { + &.success:hover td { + background-color: darken(@successBackground, 5%); + } + &.error:hover td { + background-color: darken(@errorBackground, 5%); + } + &.warning:hover td { + background-color: darken(@warningBackground, 5%); + } + &.info:hover td { + background-color: darken(@infoBackground, 5%); + } +} diff --git a/docs/assets/less/twbs-222/tests/buttons.html b/docs/assets/less/twbs-222/tests/buttons.html new file mode 100755 index 000000000..9b3c2c572 --- /dev/null +++ b/docs/assets/less/twbs-222/tests/buttons.html @@ -0,0 +1,139 @@ + + + + + Buttons · Bootstrap + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/less/twbs-222/tests/css-tests.css b/docs/assets/less/twbs-222/tests/css-tests.css new file mode 100755 index 000000000..9edaf69bf --- /dev/null +++ b/docs/assets/less/twbs-222/tests/css-tests.css @@ -0,0 +1,139 @@ +/*! + * Bootstrap CSS Tests + */ + + +/* Remove background image */ +body { + background-image: none; +} + +/* Space out subhead */ +.subhead { + margin-bottom: 36px; +} +/*h4 { + margin-bottom: 5px; +} +*/ + +.type-test { + margin-bottom: 20px; + padding: 0 20px 20px; + background: url(../../docs/assets/img/grid-baseline-20px.png); +} +.type-test h1, +.type-test h2, +.type-test h3, +.type-test h4, +.type-test h5, +.type-test h6 { + background-color: rgba(255,0,0,.2); +} + + +/* colgroup tests */ +.col1 { + background-color: rgba(255,0,0,.1); +} +.col2 { + background-color: rgba(0,255,0,.1); +} +.col3 { + background-color: rgba(0,0,255,.1); +} + + +/* Fluid row inputs */ +#rowInputs .row > [class*=span], +#fluidRowInputs .row-fluid > [class*=span] { + background-color: rgba(255,0,0,.1); +} + + +/* Fluid grid */ +.fluid-grid { + margin-bottom: 45px; +} +.fluid-grid .row { + height: 40px; + padding-top: 10px; + margin-top: 10px; + color: #ddd; + text-align: center; +} +.fluid-grid .span1 { + background-color: #999; +} + + +/* Gradients */ + +[class^="gradient-"] { + width: 100%; + height: 400px; + margin: 20px 0; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.gradient-horizontal { + background-color: #333333; + background-image: -moz-linear-gradient(left, #555555, #333333); + background-image: -webkit-gradient(linear, 0 0, 100% 0, from(#555555), to(#333333)); + background-image: -webkit-linear-gradient(left, #555555, #333333); + background-image: -o-linear-gradient(left, #555555, #333333); + background-image: linear-gradient(to right, #555555, #333333); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff555555', endColorstr='#ff333333', GradientType=1); +} + +.gradient-vertical { + background-color: #474747; + background-image: -moz-linear-gradient(top, #555555, #333333); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#333333)); + background-image: -webkit-linear-gradient(top, #555555, #333333); + background-image: -o-linear-gradient(top, #555555, #333333); + background-image: linear-gradient(to bottom, #555555, #333333); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff555555', endColorstr='#ff333333', GradientType=0); +} + +.gradient-directional { + background-color: #333333; + background-image: -moz-linear-gradient(45deg, #555555, #333333); + background-image: -webkit-linear-gradient(45deg, #555555, #333333); + background-image: -o-linear-gradient(45deg, #555555, #333333); + background-image: linear-gradient(45deg, #555555, #333333); + background-repeat: repeat-x; +} + +.gradient-vertical-three { + background-color: #8940a5; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#00b3ee), color-stop(50%, #7a43b6), to(#c3325f)); + background-image: -webkit-linear-gradient(#00b3ee, #7a43b6 50%, #c3325f); + background-image: -moz-linear-gradient(top, #00b3ee, #7a43b6 50%, #c3325f); + background-image: -o-linear-gradient(#00b3ee, #7a43b6 50%, #c3325f); + background-image: linear-gradient(#00b3ee, #7a43b6 50%, #c3325f); + background-repeat: no-repeat; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff00b3ee', endColorstr='#ffc3325f', GradientType=0); +} + +.gradient-radial { + background-color: #333333; + background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(#555555), to(#333333)); + background-image: -webkit-radial-gradient(circle, #555555, #333333); + background-image: -moz-radial-gradient(circle, #555555, #333333); + background-image: -o-radial-gradient(circle, #555555, #333333); + background-repeat: no-repeat; +} + +.gradient-striped { + background-color: #555555; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} \ No newline at end of file diff --git a/docs/assets/less/twbs-222/tests/css-tests.html b/docs/assets/less/twbs-222/tests/css-tests.html new file mode 100755 index 000000000..035ba8bd4 --- /dev/null +++ b/docs/assets/less/twbs-222/tests/css-tests.html @@ -0,0 +1,1345 @@ + + + + + CSS Tests · Twitter Bootstrap + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +

    CSS Tests

    +

    One stop shop for quick debugging and edge-case tests of CSS.

    +
    +
    + + +
    + +
    + + + + + + + +
    +
    +
    +

    h1. Heading 1

    +

    h2. Heading 2

    +

    h3. Heading 3

    +

    h4. Heading 4

    +
    h5. Heading 5
    +
    h6. Heading 6
    +

    Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    +
    +
    +
    +
    +

    h1. Heading 1

    +

    Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    +

    h2. Heading 2

    +

    Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    +

    h3. Heading 3

    +

    Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    +

    h4. Heading 4

    +

    Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    +
    h5. Heading 5
    +

    Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    +
    h6. Heading 6
    +

    Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

    +
    +
    +
    + + + + + + + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +

    + + + + + + + + +
    +
    +
    12 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    +
    +
    11 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    1 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    +
    +
    10 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    2 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    +
    +
    9 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    3 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    +
    +
    8 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    4 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    +
    +
    7 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    5 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    +
    +
    6 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    6 +
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    1
    +
    +
    +
    +
    + + + + + + + +
    +
    +

    Bordered without thead

    + + + + + + + + + + + + + + + + + + +
    123
    123
    123
    +

    Bordered without thead, with caption

    + + + + + + + + + + + + + + + + + + + +
    Table caption
    123
    123
    123
    +

    Bordered without thead, with colgroup

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    123
    123
    123
    369
    +

    Bordered with thead, with colgroup

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ABC
    123
    123
    123
    369
    +
    +
    +

    Bordered with thead and caption

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table caption
    123
    123
    123
    123
    369
    +

    Bordered with rowspan and colspan

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    123
    1 and 23
    123
    13
    2 and 3
    +
    +
    + + +

    Grid sizing

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    123
    1 and 23
    123
    13
    2 and 3
    +
    +
    + +

    Nesting and striping

    + + + + + + + + + + + +
    Test
    + + + + + + + + + + + + + + + + + + + + + +
    TestTest
    + test + + test +
    + test + + test +
    + test + + test +
    +
    + +

    Fluid grid sizing

    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    123
    1 and 23
    123
    13
    2 and 3
    +
    +
    + + + + + + + +

    Buttons and button groups

    +
    + + + +
    + +

    Horizontal form errors

    +
    +
    + +
    + + Please correct the error +
    +
    +
    + +
    +
    +

    Prepend and append on inputs

    +
    +
    +
    + @ + +
    +
    +
    +
    + + @ +
    +
    +
    +
    + $ + + .00 +
    +
    +
    +
    +
    +

    Prepend and append with uneditable

    +
    +
    + $ + Some value here +
    +
    + Some value here + .00 +
    +
    + $ + Some value here + .00 +
    +
    +
    +
    +

    Prepend with type="submit"

    + +
    + + +
    +
    + + + +
    +
    +
    + +

    Fluid prepended and appended inputs

    +
    +
    +
    +
    +
    + @ +
    +
    +
    +
    + @ +
    +
    +
    +
    + $.00 +
    +
    +
    +
    +
    + +

    Fixed row with inputs

    +

    Inputs should not extend past the light red background, set on their parent, a .span* column.

    + +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +

    Fluid row with inputs

    +

    Inputs should not extend past the light red background, set on their parent, a .span* column.

    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    +
    + +
    + +

    Inline form in fluid row

    + +
    +
    +
    + + + + +
    +
    +
    + + +
    + + +

    Fluid textarea at .span12

    +
    +
    + +
    +
    + + +
    + + +

    Selects

    +
    + +
    + + +
    + + + + + + + + +

    Dropdown link with hash URL

    + + +

    Dropdown link with custom URL and data-target

    + + +

    Dropdown on a button

    + + +
    + + + + + + +

    Default thumbnails (no grid sizing)

    +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    + + + +

    Standard grid sizing

    + + +

    Fluid thumbnails

    +
    +
    + +
    +
    + + + + + + + +
    + +
    +
    +

    I'm in Section 1.

    + +
    + +
    +
    +

    I'm in Section 1.1.

    +
    +
    +

    I'm in Section 1.2.

    +
    +
    +

    I'm in Section 1.3.

    +
    +
    +
    +
    +
    +

    Howdy, I'm in Section 2.

    +
    +
    +

    What up girl, this is Section 3.

    +
    +
    +
    + +
    + + + + + + +
    +
    +

    Inline label

    +

    Cras justo odio, dapibus ac facilisis in, egestas eget quam. Maecenas sed diam Label name eget risus varius blandit sit amet non magna. Fusce .class-name dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.

    +
    +
    +
    + + Hey! Read this. +
    +
    +
    + + +
    +
    + +
    + + + + + + + + + + + + + +
    + Maecenas faucibus mollis interdum. Nulla vitae elit libero, a pharetra augue. Donec ullamcorper nulla non metus auctor fringilla. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. + +
    + + + + +
    +
    + +

    Mini buttons: text and icon

    +
    + + +
    + +
    + + + + + + + +

    Visible on...

    +
      +
    • Phone✔ Phone
    • +
    • Tablet✔ Tablet
    • +
    • Desktop✔ Desktop
    • +
    +
      +
    • Phone + Tablet✔ Phone + Tablet
    • +
    • Tablet + Desktop✔ Tablet + Desktop
    • +
    • All✔ All
    • +
    + +

    Hidden on...

    +
      +
    • Phone✔ Phone
    • +
    • Tablet✔ Tablet
    • +
    • Desktop✔ Desktop
    • +
    +
      +
    • Phone + Tablet✔ Phone + Tablet
    • +
    • Tablet + Desktop✔ Tablet + Desktop
    • +
    • All✔ All
    • +
    + + + + + + + +

    Horizontal

    +
    + +

    Vertical

    +
    + +

    Directional

    +
    + +

    Three colors

    +
    + +

    Radial

    +
    + +

    Striped

    +
    + + + + + + + +
    + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/less/twbs-222/tests/forms-responsive.html b/docs/assets/less/twbs-222/tests/forms-responsive.html new file mode 100755 index 000000000..c3e208d02 --- /dev/null +++ b/docs/assets/less/twbs-222/tests/forms-responsive.html @@ -0,0 +1,71 @@ + + + + + Bootstrap, from Twitter + + + + + + + + + + + + + + + + + + + + + + +
    + + + +

    Vertical alignment

    + + + span1 + +

    Width across elements

    +
    + +
    +
    + +
    +
    + span2 +
    + + + + +
    + + + span1 +
    + +
    + + + diff --git a/docs/assets/less/twbs-222/tests/forms.html b/docs/assets/less/twbs-222/tests/forms.html new file mode 100755 index 000000000..a63d728a0 --- /dev/null +++ b/docs/assets/less/twbs-222/tests/forms.html @@ -0,0 +1,179 @@ + + + + + Bootstrap, from Twitter + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    + + + + +
    +
    + +
    + + + diff --git a/docs/assets/less/twbs-222/tests/navbar-fixed-top.html b/docs/assets/less/twbs-222/tests/navbar-fixed-top.html new file mode 100755 index 000000000..2d9a7a718 --- /dev/null +++ b/docs/assets/less/twbs-222/tests/navbar-fixed-top.html @@ -0,0 +1,104 @@ + + + + + Bootstrap, from Twitter + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +

    Navbar example

    +

    This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.

    +

    + View navbar docs » +

    +
    + +
    + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/less/twbs-222/tests/navbar-static-top.html b/docs/assets/less/twbs-222/tests/navbar-static-top.html new file mode 100755 index 000000000..4bead8ec6 --- /dev/null +++ b/docs/assets/less/twbs-222/tests/navbar-static-top.html @@ -0,0 +1,107 @@ + + + + + Bootstrap, from Twitter + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    +

    Navbar example

    +

    This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.

    +

    + View navbar docs » +

    +
    + +
    + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/less/twbs-222/tests/navbar.html b/docs/assets/less/twbs-222/tests/navbar.html new file mode 100755 index 000000000..d5ad4784e --- /dev/null +++ b/docs/assets/less/twbs-222/tests/navbar.html @@ -0,0 +1,107 @@ + + + + + Bootstrap, from Twitter + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + +
    +

    Navbar example

    +

    This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.

    +

    + View navbar docs » +

    +
    + +
    + + + + + + + + + + + + + + + + + + + diff --git a/docs/assets/less/twbs-222/thumbnails.less b/docs/assets/less/twbs-222/thumbnails.less new file mode 100755 index 000000000..a84a7d37d --- /dev/null +++ b/docs/assets/less/twbs-222/thumbnails.less @@ -0,0 +1,52 @@ +// +// Thumbnails +// -------------------------------------------------- + + +// Note: `.thumbnails` and `.thumbnails > li` are overriden in responsive files + +// Make wrapper ul behave like the grid +.thumbnails { + margin-left: -@gridGutterWidth; + list-style: none; + .clearfix(); +} +// Fluid rows have no left margin +.row-fluid .thumbnails { + margin-left: 0; +} + +// Float li to make thumbnails appear in a row +.thumbnails > li { + float: left; // Explicity set the float since we don't require .span* classes + margin-bottom: @baseLineHeight; + margin-left: @gridGutterWidth; +} + +// The actual thumbnail (can be `a` or `div`) +.thumbnail { + display: block; + padding: 4px; + line-height: @baseLineHeight; + border: 1px solid #ddd; + .border-radius(@baseBorderRadius); + .box-shadow(0 1px 3px rgba(0,0,0,.055)); + .transition(all .2s ease-in-out); +} +// Add a hover state for linked versions only +a.thumbnail:hover { + border-color: @linkColor; + .box-shadow(0 1px 4px rgba(0,105,214,.25)); +} + +// Images and captions +.thumbnail > img { + display: block; + max-width: 100%; + margin-left: auto; + margin-right: auto; +} +.thumbnail .caption { + padding: 9px; + color: @gray; +} diff --git a/docs/assets/less/twbs-222/tooltip.less b/docs/assets/less/twbs-222/tooltip.less new file mode 100755 index 000000000..93fac8d6b --- /dev/null +++ b/docs/assets/less/twbs-222/tooltip.less @@ -0,0 +1,70 @@ +// +// Tooltips +// -------------------------------------------------- + + +// Base class +.tooltip { + position: absolute; + z-index: @zindexTooltip; + display: block; + visibility: visible; + padding: 5px; + font-size: 11px; + .opacity(0); + &.in { .opacity(80); } + &.top { margin-top: -3px; } + &.right { margin-left: 3px; } + &.bottom { margin-top: 3px; } + &.left { margin-left: -3px; } +} + +// Wrapper for the tooltip content +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: @tooltipColor; + text-align: center; + text-decoration: none; + background-color: @tooltipBackground; + .border-radius(@baseBorderRadius); +} + +// Arrows +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip { + &.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -@tooltipArrowWidth; + border-width: @tooltipArrowWidth @tooltipArrowWidth 0; + border-top-color: @tooltipArrowColor; + } + &.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -@tooltipArrowWidth; + border-width: @tooltipArrowWidth @tooltipArrowWidth @tooltipArrowWidth 0; + border-right-color: @tooltipArrowColor; + } + &.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -@tooltipArrowWidth; + border-width: @tooltipArrowWidth 0 @tooltipArrowWidth @tooltipArrowWidth; + border-left-color: @tooltipArrowColor; + } + &.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -@tooltipArrowWidth; + border-width: 0 @tooltipArrowWidth @tooltipArrowWidth; + border-bottom-color: @tooltipArrowColor; + } +} diff --git a/docs/assets/less/twbs-222/type.less b/docs/assets/less/twbs-222/type.less new file mode 100755 index 000000000..683a30772 --- /dev/null +++ b/docs/assets/less/twbs-222/type.less @@ -0,0 +1,235 @@ +// +// Typography +// -------------------------------------------------- + + +// Body text +// ------------------------- + +p { + margin: 0 0 @baseLineHeight / 2; +} +.lead { + margin-bottom: @baseLineHeight; + font-size: @baseFontSize * 1.5; + font-weight: 200; + line-height: @baseLineHeight * 1.5; +} + + +// Emphasis & misc +// ------------------------- + +// Ex: 14px base font * 85% = about 12px +small { font-size: 85%; } + +strong { font-weight: bold; } +em { font-style: italic; } +cite { font-style: normal; } + +// Utility classes +.muted { color: @grayLight; } +a.muted:hover { color: darken(@grayLight, 10%); } + +.text-warning { color: @warningText; } +a.text-warning:hover { color: darken(@warningText, 10%); } + +.text-error { color: @errorText; } +a.text-error:hover { color: darken(@errorText, 10%); } + +.text-info { color: @infoText; } +a.text-info:hover { color: darken(@infoText, 10%); } + +.text-success { color: @successText; } +a.text-success:hover { color: darken(@successText, 10%); } + + +// Headings +// ------------------------- + +h1, h2, h3, h4, h5, h6 { + margin: (@baseLineHeight / 2) 0; + font-family: @headingsFontFamily; + font-weight: @headingsFontWeight; + line-height: @baseLineHeight; + color: @headingsColor; + text-rendering: optimizelegibility; // Fix the character spacing for headings + small { + font-weight: normal; + line-height: 1; + color: @grayLight; + } +} + +h1, +h2, +h3 { line-height: @baseLineHeight * 2; } + +h1 { font-size: @baseFontSize * 2.75; } // ~38px +h2 { font-size: @baseFontSize * 2.25; } // ~32px +h3 { font-size: @baseFontSize * 1.75; } // ~24px +h4 { font-size: @baseFontSize * 1.25; } // ~18px +h5 { font-size: @baseFontSize; } +h6 { font-size: @baseFontSize * 0.85; } // ~12px + +h1 small { font-size: @baseFontSize * 1.75; } // ~24px +h2 small { font-size: @baseFontSize * 1.25; } // ~18px +h3 small { font-size: @baseFontSize; } +h4 small { font-size: @baseFontSize; } + + +// Page header +// ------------------------- + +.page-header { + padding-bottom: (@baseLineHeight / 2) - 1; + margin: @baseLineHeight 0 (@baseLineHeight * 1.5); + border-bottom: 1px solid @grayLighter; +} + + + +// Lists +// -------------------------------------------------- + +// Unordered and Ordered lists +ul, ol { + padding: 0; + margin: 0 0 @baseLineHeight / 2 25px; +} +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} +li { + line-height: @baseLineHeight; +} + +// Remove default list styles +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} + +// Single-line list items +ul.inline, +ol.inline { + margin-left: 0; + list-style: none; + & > li { + display: inline-block; + padding-left: 5px; + padding-right: 5px; + } +} + +// Description Lists +dl { + margin-bottom: @baseLineHeight; +} +dt, +dd { + line-height: @baseLineHeight; +} +dt { + font-weight: bold; +} +dd { + margin-left: @baseLineHeight / 2; +} +// Horizontal layout (like forms) +.dl-horizontal { + .clearfix(); // Ensure dl clears floats if empty dd elements present + dt { + float: left; + width: @horizontalComponentOffset - 20; + clear: left; + text-align: right; + .text-overflow(); + } + dd { + margin-left: @horizontalComponentOffset; + } +} + +// MISC +// ---- + +// Horizontal rules +hr { + margin: @baseLineHeight 0; + border: 0; + border-top: 1px solid @hrBorder; + border-bottom: 1px solid @white; +} + +// Abbreviations and acronyms +abbr[title], +// Added data-* attribute to help out our tooltip plugin, per https://github.com/twitter/bootstrap/issues/5257 +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted @grayLight; +} +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +// Blockquotes +blockquote { + padding: 0 0 0 15px; + margin: 0 0 @baseLineHeight; + border-left: 5px solid @grayLighter; + p { + margin-bottom: 0; + #font > .shorthand(16px,300,@baseLineHeight * 1.25); + } + small { + display: block; + line-height: @baseLineHeight; + color: @grayLight; + &:before { + content: '\2014 \00A0'; + } + } + + // Float right with text-align: right + &.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid @grayLighter; + border-left: 0; + p, + small { + text-align: right; + } + small { + &:before { + content: ''; + } + &:after { + content: '\00A0 \2014'; + } + } + } +} + +// Quotes +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +// Addresses +address { + display: block; + margin-bottom: @baseLineHeight; + font-style: normal; + line-height: @baseLineHeight; +} diff --git a/docs/assets/less/twbs-222/utilities.less b/docs/assets/less/twbs-222/utilities.less new file mode 100755 index 000000000..314b4ffdb --- /dev/null +++ b/docs/assets/less/twbs-222/utilities.less @@ -0,0 +1,30 @@ +// +// Utility classes +// -------------------------------------------------- + + +// Quick floats +.pull-right { + float: right; +} +.pull-left { + float: left; +} + +// Toggling content +.hide { + display: none; +} +.show { + display: block; +} + +// Visibility +.invisible { + visibility: hidden; +} + +// For Affix plugin +.affix { + position: fixed; +} diff --git a/docs/assets/less/twbs-222/variables.less b/docs/assets/less/twbs-222/variables.less new file mode 100755 index 000000000..de36074fd --- /dev/null +++ b/docs/assets/less/twbs-222/variables.less @@ -0,0 +1,301 @@ +// +// Variables +// -------------------------------------------------- + + +// Global values +// -------------------------------------------------- + + +// Grays +// ------------------------- +@black: #000; +@grayDarker: #222; +@grayDark: #333; +@gray: #555; +@grayLight: #999; +@grayLighter: #eee; +@white: #fff; + + +// Accent colors +// ------------------------- +@blue: #049cdb; +@blueDark: #0064cd; +@green: #46a546; +@red: #9d261d; +@yellow: #ffc40d; +@orange: #f89406; +@pink: #c3325f; +@purple: #7a43b6; + + +// Scaffolding +// ------------------------- +@bodyBackground: @white; +@textColor: @grayDark; + + +// Links +// ------------------------- +@linkColor: #08c; +@linkColorHover: darken(@linkColor, 15%); + + +// Typography +// ------------------------- +@sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif; +@serifFontFamily: Georgia, "Times New Roman", Times, serif; +@monoFontFamily: Monaco, Menlo, Consolas, "Courier New", monospace; + +@baseFontSize: 14px; +@baseFontFamily: @sansFontFamily; +@baseLineHeight: 20px; +@altFontFamily: @serifFontFamily; + +@headingsFontFamily: inherit; // empty to use BS default, @baseFontFamily +@headingsFontWeight: bold; // instead of browser default, bold +@headingsColor: inherit; // empty to use BS default, @textColor + + +// Component sizing +// ------------------------- +// Based on 14px font-size and 20px line-height + +@fontSizeLarge: @baseFontSize * 1.25; // ~18px +@fontSizeSmall: @baseFontSize * 0.85; // ~12px +@fontSizeMini: @baseFontSize * 0.75; // ~11px + +@paddingLarge: 11px 19px; // 44px +@paddingSmall: 2px 10px; // 26px +@paddingMini: 0 6px; // 22px + +@baseBorderRadius: 4px; +@borderRadiusLarge: 6px; +@borderRadiusSmall: 3px; + + +// Tables +// ------------------------- +@tableBackground: transparent; // overall background-color +@tableBackgroundAccent: #f9f9f9; // for striping +@tableBackgroundHover: #f5f5f5; // for hover +@tableBorder: #ddd; // table and cell border + +// Buttons +// ------------------------- +@btnBackground: @white; +@btnBackgroundHighlight: darken(@white, 10%); +@btnBorder: #bbb; + +@btnPrimaryBackground: @linkColor; +@btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 20%); + +@btnInfoBackground: #5bc0de; +@btnInfoBackgroundHighlight: #2f96b4; + +@btnSuccessBackground: #62c462; +@btnSuccessBackgroundHighlight: #51a351; + +@btnWarningBackground: lighten(@orange, 15%); +@btnWarningBackgroundHighlight: @orange; + +@btnDangerBackground: #ee5f5b; +@btnDangerBackgroundHighlight: #bd362f; + +@btnInverseBackground: #444; +@btnInverseBackgroundHighlight: @grayDarker; + + +// Forms +// ------------------------- +@inputBackground: @white; +@inputBorder: #ccc; +@inputBorderRadius: @baseBorderRadius; +@inputDisabledBackground: @grayLighter; +@formActionsBackground: #f5f5f5; +@inputHeight: @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border + + +// Dropdowns +// ------------------------- +@dropdownBackground: @white; +@dropdownBorder: rgba(0,0,0,.2); +@dropdownDividerTop: #e5e5e5; +@dropdownDividerBottom: @white; + +@dropdownLinkColor: @grayDark; +@dropdownLinkColorHover: @white; +@dropdownLinkColorActive: @white; + +@dropdownLinkBackgroundActive: @linkColor; +@dropdownLinkBackgroundHover: @dropdownLinkBackgroundActive; + + + +// COMPONENT VARIABLES +// -------------------------------------------------- + + +// Z-index master list +// ------------------------- +// Used for a bird's eye view of components dependent on the z-axis +// Try to avoid customizing these :) +@zindexDropdown: 1000; +@zindexPopover: 1010; +@zindexTooltip: 1030; +@zindexFixedNavbar: 1030; +@zindexModalBackdrop: 1040; +@zindexModal: 1050; + + +// Sprite icons path +// ------------------------- +@iconSpritePath: "../img/glyphicons-halflings.png"; +@iconWhiteSpritePath: "../img/glyphicons-halflings-white.png"; + + +// Input placeholder text color +// ------------------------- +@placeholderText: @grayLight; + + +// Hr border color +// ------------------------- +@hrBorder: @grayLighter; + + +// Horizontal forms & lists +// ------------------------- +@horizontalComponentOffset: 180px; + + +// Wells +// ------------------------- +@wellBackground: #f5f5f5; + + +// Navbar +// ------------------------- +@navbarCollapseWidth: 979px; +@navbarCollapseDesktopWidth: @navbarCollapseWidth + 1; + +@navbarHeight: 40px; +@navbarBackgroundHighlight: #ffffff; +@navbarBackground: darken(@navbarBackgroundHighlight, 5%); +@navbarBorder: darken(@navbarBackground, 12%); + +@navbarText: #777; +@navbarLinkColor: #777; +@navbarLinkColorHover: @grayDark; +@navbarLinkColorActive: @gray; +@navbarLinkBackgroundHover: transparent; +@navbarLinkBackgroundActive: darken(@navbarBackground, 5%); + +@navbarBrandColor: @navbarLinkColor; + +// Inverted navbar +@navbarInverseBackground: #111111; +@navbarInverseBackgroundHighlight: #222222; +@navbarInverseBorder: #252525; + +@navbarInverseText: @grayLight; +@navbarInverseLinkColor: @grayLight; +@navbarInverseLinkColorHover: @white; +@navbarInverseLinkColorActive: @navbarInverseLinkColorHover; +@navbarInverseLinkBackgroundHover: transparent; +@navbarInverseLinkBackgroundActive: @navbarInverseBackground; + +@navbarInverseSearchBackground: lighten(@navbarInverseBackground, 25%); +@navbarInverseSearchBackgroundFocus: @white; +@navbarInverseSearchBorder: @navbarInverseBackground; +@navbarInverseSearchPlaceholderColor: #ccc; + +@navbarInverseBrandColor: @navbarInverseLinkColor; + + +// Pagination +// ------------------------- +@paginationBackground: #fff; +@paginationBorder: #ddd; +@paginationActiveBackground: #f5f5f5; + + +// Hero unit +// ------------------------- +@heroUnitBackground: @grayLighter; +@heroUnitHeadingColor: inherit; +@heroUnitLeadColor: inherit; + + +// Form states and alerts +// ------------------------- +@warningText: #c09853; +@warningBackground: #fcf8e3; +@warningBorder: darken(spin(@warningBackground, -10), 3%); + +@errorText: #b94a48; +@errorBackground: #f2dede; +@errorBorder: darken(spin(@errorBackground, -10), 3%); + +@successText: #468847; +@successBackground: #dff0d8; +@successBorder: darken(spin(@successBackground, -10), 5%); + +@infoText: #3a87ad; +@infoBackground: #d9edf7; +@infoBorder: darken(spin(@infoBackground, -10), 7%); + + +// Tooltips and popovers +// ------------------------- +@tooltipColor: #fff; +@tooltipBackground: #000; +@tooltipArrowWidth: 5px; +@tooltipArrowColor: @tooltipBackground; + +@popoverBackground: #fff; +@popoverArrowWidth: 10px; +@popoverArrowColor: #fff; +@popoverTitleBackground: darken(@popoverBackground, 3%); + +// Special enhancement for popovers +@popoverArrowOuterWidth: @popoverArrowWidth + 1; +@popoverArrowOuterColor: rgba(0,0,0,.25); + + + +// GRID +// -------------------------------------------------- + + +// Default 940px grid +// ------------------------- +@gridColumns: 12; +@gridColumnWidth: 60px; +@gridGutterWidth: 20px; +@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1)); + +// 1200px min +@gridColumnWidth1200: 70px; +@gridGutterWidth1200: 30px; +@gridRowWidth1200: (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1)); + +// 768px-979px +@gridColumnWidth768: 42px; +@gridGutterWidth768: 20px; +@gridRowWidth768: (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1)); + + +// Fluid grid +// ------------------------- +@fluidGridColumnWidth: percentage(@gridColumnWidth/@gridRowWidth); +@fluidGridGutterWidth: percentage(@gridGutterWidth/@gridRowWidth); + +// 1200px min +@fluidGridColumnWidth1200: percentage(@gridColumnWidth1200/@gridRowWidth1200); +@fluidGridGutterWidth1200: percentage(@gridGutterWidth1200/@gridRowWidth1200); + +// 768px-979px +@fluidGridColumnWidth768: percentage(@gridColumnWidth768/@gridRowWidth768); +@fluidGridGutterWidth768: percentage(@gridGutterWidth768/@gridRowWidth768); diff --git a/docs/assets/less/twbs-222/wells.less b/docs/assets/less/twbs-222/wells.less new file mode 100755 index 000000000..84a744b1c --- /dev/null +++ b/docs/assets/less/twbs-222/wells.less @@ -0,0 +1,29 @@ +// +// Wells +// -------------------------------------------------- + + +// Base class +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: @wellBackground; + border: 1px solid darken(@wellBackground, 7%); + .border-radius(@baseBorderRadius); + .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); + blockquote { + border-color: #ddd; + border-color: rgba(0,0,0,.15); + } +} + +// Sizes +.well-large { + padding: 24px; + .border-radius(@borderRadiusLarge); +} +.well-small { + padding: 9px; + .border-radius(@borderRadiusSmall); +} diff --git a/docs/assets/less/variables.less b/docs/assets/less/variables.less index 8fa8a3f84..4a7ada810 100755 --- a/docs/assets/less/variables.less +++ b/docs/assets/less/variables.less @@ -1,10 +1,9 @@ -// Variables.less -// Variables to customize the look and feel of Bootstrap -// ----------------------------------------------------- +// +// Variables +// -------------------------------------------------- - -// GLOBAL VALUES +// Global values // -------------------------------------------------- @@ -45,14 +44,13 @@ // Typography // ------------------------- -//@sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif; @sansFontFamily: proxima-nova, "Helvetica Neue", Helvetica, Arial, sans-serif; @serifFontFamily: museo-slab, "Helvetica Neue", Helvetica, Arial, sans-serif; @monoFontFamily: Menlo, Monaco, Consolas, "Courier New", monospace; @baseFontSize: 14px; @baseFontFamily: @sansFontFamily; -@baseLineHeight: 21px; +@baseLineHeight: 20px; @altFontFamily: @serifFontFamily; @headingsFontFamily: inherit; // empty to use BS default, @baseFontFamily @@ -60,6 +58,23 @@ @headingsColor: inherit; // empty to use BS default, @textColor +// Component sizing +// ------------------------- +// Based on 14px font-size and 20px line-height + +@fontSizeLarge: @baseFontSize * 1.25; // ~18px +@fontSizeSmall: @baseFontSize * 0.85; // ~12px +@fontSizeMini: @baseFontSize * 0.75; // ~11px + +@paddingLarge: 11px 19px; // 44px +@paddingSmall: 2px 10px; // 26px +@paddingMini: 0 6px; // 22px + +@baseBorderRadius: 4px; +@borderRadiusLarge: 6px; +@borderRadiusSmall: 3px; + + // Tables // ------------------------- @tableBackground: transparent; // overall background-color @@ -67,15 +82,14 @@ @tableBackgroundHover: #f5f5f5; // for hover @tableBorder: #ddd; // table and cell border - // Buttons // ------------------------- @btnBackground: @white; @btnBackgroundHighlight: darken(@white, 10%); -@btnBorder: #ccc; +@btnBorder: #bbb; -@btnPrimaryBackground: @linkColor; -@btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 15%); +@btnPrimaryBackground: #fffeb8; +@btnPrimaryBackgroundHighlight: #c49c38; @btnInfoBackground: #5bc0de; @btnInfoBackgroundHighlight: #2f96b4; @@ -89,7 +103,7 @@ @btnDangerBackground: #ee5f5b; @btnDangerBackgroundHighlight: #bd362f; -@btnInverseBackground: @gray; +@btnInverseBackground: #444; @btnInverseBackgroundHighlight: @grayDarker; @@ -97,31 +111,39 @@ // ------------------------- @inputBackground: @white; @inputBorder: #ccc; -@inputBorderRadius: 3px; +@inputBorderRadius: @baseBorderRadius; @inputDisabledBackground: @grayLighter; @formActionsBackground: #f5f5f5; +@inputHeight: @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border + // Dropdowns // ------------------------- @dropdownBackground: @white; @dropdownBorder: rgba(0,0,0,.2); +@dropdownDividerTop: #e5e5e5; +@dropdownDividerBottom: @white; + @dropdownLinkColor: @grayDark; @dropdownLinkColorHover: @white; -@dropdownLinkBackgroundHover: @linkColor; +@dropdownLinkColorActive: @white; +@dropdownLinkBackgroundActive: @linkColor; +@dropdownLinkBackgroundHover: @dropdownLinkBackgroundActive; // COMPONENT VARIABLES // -------------------------------------------------- + // Z-index master list // ------------------------- // Used for a bird's eye view of components dependent on the z-axis // Try to avoid customizing these :) @zindexDropdown: 1000; @zindexPopover: 1010; -@zindexTooltip: 1020; +@zindexTooltip: 1030; @zindexFixedNavbar: 1030; @zindexModalBackdrop: 1040; @zindexModal: 1050; @@ -143,25 +165,61 @@ @hrBorder: @grayLighter; +// Horizontal forms & lists +// ------------------------- +@horizontalComponentOffset: 180px; + + +// Wells +// ------------------------- +@wellBackground: #f5f5f5; + + // Navbar // ------------------------- +@navbarCollapseWidth: 979px; +@navbarCollapseDesktopWidth: @navbarCollapseWidth + 1; + @navbarHeight: 40px; -@navbarBackground: @grayDarker; -@navbarBackgroundHighlight: @grayDark; +@navbarBackgroundHighlight: #ffffff; +@navbarBackground: darken(@navbarBackgroundHighlight, 5%); +@navbarBorder: darken(@navbarBackground, 12%); -@navbarText: @grayLight; -@navbarLinkColor: @grayLight; -@navbarLinkColorHover: @white; -@navbarLinkColorActive: @navbarLinkColorHover; +@navbarText: #777; +@navbarLinkColor: #777; +@navbarLinkColorHover: @grayDark; +@navbarLinkColorActive: @gray; @navbarLinkBackgroundHover: transparent; -@navbarLinkBackgroundActive: @navbarBackground; +@navbarLinkBackgroundActive: darken(@navbarBackground, 5%); -@navbarSearchBackground: lighten(@navbarBackground, 25%); -@navbarSearchBackgroundFocus: @white; -@navbarSearchBorder: darken(@navbarSearchBackground, 30%); -@navbarSearchPlaceholderColor: #ccc; @navbarBrandColor: @navbarLinkColor; +// Inverted navbar +@navbarInverseBackground: #111111; +@navbarInverseBackgroundHighlight: #222222; +@navbarInverseBorder: #252525; + +@navbarInverseText: @grayLight; +@navbarInverseLinkColor: @grayLight; +@navbarInverseLinkColorHover: @white; +@navbarInverseLinkColorActive: @navbarInverseLinkColorHover; +@navbarInverseLinkBackgroundHover: transparent; +@navbarInverseLinkBackgroundActive: @navbarInverseBackground; + +@navbarInverseSearchBackground: lighten(@navbarInverseBackground, 25%); +@navbarInverseSearchBackgroundFocus: @white; +@navbarInverseSearchBorder: @navbarInverseBackground; +@navbarInverseSearchPlaceholderColor: #ccc; + +@navbarInverseBrandColor: @navbarInverseLinkColor; + + +// Pagination +// ------------------------- +@paginationBackground: #fff; +@paginationBorder: #ddd; +@paginationActiveBackground: #f5f5f5; + // Hero unit // ------------------------- @@ -189,10 +247,28 @@ @infoBorder: darken(spin(@infoBackground, -10), 7%); +// Tooltips and popovers +// ------------------------- +@tooltipColor: #fff; +@tooltipBackground: #000; +@tooltipArrowWidth: 5px; +@tooltipArrowColor: @tooltipBackground; + +@popoverBackground: #fff; +@popoverArrowWidth: 10px; +@popoverArrowColor: #fff; +@popoverTitleBackground: darken(@popoverBackground, 3%); + +// Special enhancement for popovers +@popoverArrowOuterWidth: @popoverArrowWidth + 1; +@popoverArrowOuterColor: rgba(0,0,0,.25); + + // GRID // -------------------------------------------------- + // Default 940px grid // ------------------------- @gridColumns: 12; @@ -200,7 +276,26 @@ @gridGutterWidth: 20px; @gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1)); +// 1200px min +@gridColumnWidth1200: 70px; +@gridGutterWidth1200: 30px; +@gridRowWidth1200: (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1)); + +// 768px-979px +@gridColumnWidth768: 42px; +@gridGutterWidth768: 20px; +@gridRowWidth768: (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1)); + + // Fluid grid // ------------------------- -@fluidGridColumnWidth: 6.382978723%; -@fluidGridGutterWidth: 2.127659574%; +@fluidGridColumnWidth: percentage(@gridColumnWidth/@gridRowWidth); +@fluidGridGutterWidth: percentage(@gridGutterWidth/@gridRowWidth); + +// 1200px min +@fluidGridColumnWidth1200: percentage(@gridColumnWidth1200/@gridRowWidth1200); +@fluidGridGutterWidth1200: percentage(@gridGutterWidth1200/@gridRowWidth1200); + +// 768px-979px +@fluidGridColumnWidth768: percentage(@gridColumnWidth768/@gridRowWidth768); +@fluidGridGutterWidth768: percentage(@gridGutterWidth768/@gridRowWidth768); diff --git a/docs/index.html b/docs/index.html index e16a92149..4180fa889 100644 --- a/docs/index.html +++ b/docs/index.html @@ -10,7 +10,9 @@ Font Awesome, the iconic font designed for use with Twitter Bootstrap - @@ -42,10 +44,10 @@
    -